Linux中的基本概念:内核和shell

时间:2021-02-18 13:57:40   收藏:0   阅读:0

本文将介绍一系列与Linux系统编程有关的概念。

操作系统的核心——内核

操作系统 System 、内核 kernel

  1. 广义指完整的软件包,这包括用来管理计算机资源的核心层软件,以及附带的所有标准软件工具,诸如命令行解释器、图形用户界面、文件操作工具和文本编辑器等。

  2. 狭义指管理和分配计算机资源(即CPU、RAM和设备)的核心层软件。

    术语“内核“通常是第二种含义,"操作系统”一般也是这层意思。

    内核为管理计算机的有限资源所提供了软件层

内核的职责

内核态和用户态

现代处理器架构一般允许CPU至少在两种不同状态下运行,即:用户态和核心态(有时也称之为监管态)

只有当处理器在核心态运行时,才能执行某些特定操作,比如宕机(halt)指令去关闭系统,访问内存管理硬件,以及设备I/O操作的初始化等。这确保了用户进程既不能访问内核指令和数据结构,也无法执行不利于系统运行的操作。

以进程及内核视角检视系统

在完成诸多日常编程任务时,程序员们习惯于以面向进程(process-oriented)的思维方式来考虑编程问题。然而为了更高视角看问题,有必要转换视角,站在内核的角度上来看问题。

对进程来说,许多事件的发生都无法预期。

内核则是运行系统的中枢所在,对于系统的一切无所不知、无所不能,为系统上所有进程的运行提供便利。

shell

shell是一种具有特殊用途的程序,主要用于读取用户输入的命令,并执行相应的程序以响应命令。有时,人们也称之为命令解释器

术语登录shell(login shell)是指用户刚登录系统时,由系统创建,用以运行shell的进程。对UNIX系统而言,shell只是一个用户进程。

纵观UNIX历史,出现过以下几种重要的shell。

 

--整理自《Linux/UNIX系统编程手册》

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!