2.2 What is an Operating System (什么是操作系统?)
没有软件,电脑只是一堆发热的电子元件。假如说硬件是电脑的心脏,则软件就是他的灵魂。操作系统是允许用户运行应用程式的一组系统程式。操作系统将系统的硬件抽象,呈现在用户和应用程式之前的是个虚拟的机器。是软件造就了电脑系统的特点。大多数 PC 能够运行一到多个操作系统,而每一个操作系统从外观和感觉上都大不相同。 Linux 由不同功能的部分构成,这些部分总体组合构成了 Linux 操作系统。 Linux 最明显的部分就是 Kernel 自身,但是假如没有 shell 或 libraries 相同没有用处。
为了了解什么是操作系统,看一看在您输入最简单的命令时发生了什么:
$ls
Mail c images perl
Docs tcl
$
这里的 $ 是登录的 shell 输出的提示符(此例是 bash ):表示 shell 在等候您(用户)输入命令。输入 ls 引发键盘驱动程式识别输入的字符,键盘驱动程式将识别的字符传递给 shell 去处理。 shell 先查找同名的可执行映象,他找到了 /bin/ls, 然后调用核心服务将 ls 执行程式加载到虚拟内存中并开始执行。 ls 执行程式通过执行核心的文档子系统的系统调用查找文档。文档系统可能使用缓存的文档系统信息或通过磁盘设备驱动程式从磁盘上读取文档信息 , 也可能是通过网络设备驱动程式同远程主机交换信息而读取本系统所访问的远程文档的周详信息(文档系统能够通过 NFS 网络文档系统远程安装)。不管文档信息是如何得到的, ls 都将信息输出,通过显示驱动程式显示在屏幕上。
以上的过程看起来相当复杂,但是他说明了即使是最简单的命令也是操作系统各个功能模块之间一起协作的结果,只有这样才能提供给您(用户)一个完整的系统视图。
2.2.1 Memory management (内存管理)
假如拥有无限的资源,例如内存,那么操作系统所必须做的很多事情可能都是多余的。任何操作系统的一个基本技巧就是让少量的物理内存工作起来似乎有相当多的内存。这种表面看起来的大内存叫做虚拟内存,就是当软件运行的时候让他相信他拥有很多内存。系统将内存分为容易处理的页,在系统运行时将这些页交换到硬盘上。而应用软件并不知道,因为操作系统还使用了另一项技术:多进程。
2.2.2 Processes ( 进程 )
进程能够看作一个在执行的程式,每一个进程都是正在运行的特定的程式的单独实体。假如您观察一下您的 Linux 系统,您会发现有很多进程在运行。例如:在我的系统上输入 ps 显示了以下进程:
$ ps
PID TTY STAT TIME COMMAND
158 pRe 1 0:00 -bash
174 pRe 1 0:00 sh /usr/X11R6/bin/startx
175 pRe 1 0:00 xinit /usr/X11R6/lib/X11/xinit/xinitrc --
178 pRe 1 N 0:00 bowman
182 pRe 1 N 0:01 rxvt -geometry 120x35 -fg white -bg black
184 pRe 1 < 0:00 xclock -bg grey -geometry -1500-1500 -padding 0
185 pRe 1 < 0:00 xload -bg grey -geometry -0-0 -label xload
187 pp6 1 9:26 /bin/bash
202 pRe 1 N 0:00 rxvt -geometry 120x35 -fg white -bg black
203 ppc 2 0:00 /bin/bash
1796 pRe 1 N 0:00 rxvt -geometry 120x35 -fg white -bg black
1797 v06 1 0:00 /bin/bash
3056 pp6 3 < 0:02 emacs intro/introduction.tex
3270 pp6 3 0:00 ps
$
假如我的系统拥有多个 CPU 那么每个进程可能(至少在理论上如此)都在不同的 CPU 上运行。不幸的是,只有一个,所以操作系统又使用技巧,在短时间内依次运行每一个进程。这个时间段叫做时间片。这种技巧叫做多进程或调度,他欺骗了每一个进程,似乎他们是唯一的进程。进程相互之间受到保护,所以假如一个进程崩溃或不能工作,不会影响其他进程。操作系统通过给每一个进程一个单独的地址空间来实现保护,进程只能访问他自己的地址空间。
2.2.3 Device Drivers (设备驱动程式)
设备驱动程式组成了 Linux 核心的主要部分。象操作系统的其他部分相同,他们在一个高优先级的环境下工作,假如发生错误,可能会引发严重问题。设备驱动程式控制了操作系统和他控制的硬件设备之间的交互。比如:文档系统向 IDE 磁盘写数据块是使用通用块设备接口。驱动程式控制细节,并处理和设备相关的部分。设备驱动程式和他驱动的具体的控制器芯片相关,所以,假如您的系统有一个 NCR810 的 SCSI 控制器,那么您需要 NCR810 的驱动程式。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




