您所在的位置:读书频道 > 操作系统 > Linux > 1.1.2 什么是操作系统

1.1.2 什么是操作系统

2007-09-26 15:04 鸟哥 人民邮电出版社 字号:T | T
一键收藏,随时查看,分享好友!

《鸟哥的Linux私房菜》全面而详细地介绍了Linux操作系统,第一章我们主要对Linux本身进行了详细的阐述,本文告诉我们什么是操作系统。

AD:

1.1.2  什么是操作系统

计算机是如何工作的?例如,计算机屏幕上显示的信息是如何显示出来的呢?是通过显示卡与屏幕显示的。那么,如果想要看VCD呢?就需要有存储有影音数据的光盘、可读取光盘的光驱、可以转换影音数据输出的中央处理器(CPU)、可以显示影像的显示芯片(显示卡)、 可以传输声音的音效芯片(声卡)、可以输出影像的显示器以及可以发出声音的喇叭。也就是说,所有在"工作"的设备都是"硬件"。

由于计算机所进行的工作都是计算机硬件实现的,那么,这些硬件如何知道播放VCD呢?这是因为有一种系统在正确地控制硬件工作,该系统就称为操作系统。操作系统可以管理整台计算机的硬件,它可以控制CPU进行正确的运算,可以分辨硬盘里的数据并进行读取,它还必须能够识别所有的适配卡,这样才能正确地使用所有的硬件。所以,如果没有这个操作系统,计算机就等于一堆废铁。

虽然操作系统可以完整地掌控所有的硬件资源,但是,对于用户来说,这是不够的。因为,操作系统虽然可以掌控所有硬件,但如果用户无法与操作系统沟通,这个操作系统就没有什么用处。简单地说,以VCD为例,虽然操作系统可以控制硬件播放VCD,但是,如果用户没有办法控制何时要播出VCD的话,怎么能看VCD呢?

所以,"比较完整的操作系统"应该包含两个组件,一个是"核心与其提供的接口工具",另一个是"利用核心提供的接口工具所开发的软件"。我们以常用的安装Windows操作系统的计算机为例进行说明。我们都使用过Windows里的资源管理器。打开资源管理器的时候,它会显示硬盘中的数据,显示硬盘里面的数据就是核心做的事情,但是,要核心去显示硬盘哪一个目录下的数据,则是由资源管理器实现的。

核心有没有做不到的事呢?当然有,举例来说,如果您曾经在个人计算机上安装过比较新的显示卡,应该常常会看到Windows计算机告诉您:"找不到合适的显卡驱动程序"。也就是说,即使有最新的显示卡安装在个人计算机上,而且也有播放VCD的程序,但因为"核心"无法控制这个最新的显示卡,也就无法正常显示VCD了。整个硬件是由核心来管理的,如果核心不能识别硬件,那么将无法使用该硬件设备,例如上面提到的最新的显示卡。

从定义来看,只要能让计算机硬件正确地运行,就算是操作系统了。所以,操作系统其实就是核心与其提供的接口工具。如上所述,因为最基本的核心缺乏与用户沟通的友好界面,所以在目前,一般提到的操作系统,都会包含核心与相关的用户应用软件。

核心就是"Kernel",它是操作系统最底层的东西,每个操作系统都有自己的核心,由它来掌管整个硬件资源的工作状态。所以,当有新的硬件加入到系统中时,若核心并没有支持它,这个新硬件就无法工作,因为控制它的核心并不认识它。这里对核心先大致了解一下,后面提到"核心编译"的时候会更详细地讲解相关内容。

一般来说,核心为了实现用户所需要的正确运算结果,必须要管理的事项有以下几项。
系统调用接口(System Call Interface):通过这个接口,程序开发人员可以轻松地与核心沟通,进一步利用硬件资源。
进程控制(Process Control):在多任务环境中,一台计算机可能同时有很多的作业等待CPU运算处理,核心这时必须能够控制这些作业并有效地分配CPU的资源。
内存管理(Memory Management):控制整个系统的内存;如果内存不足,核心还能提供虚拟内存的功能。
文件系统管理(File System Management):文件系统的管理,例如数据的输入/输出(I/O)及不同文件格式的支持等,如果核心不能识别某个文件系统,那么将无法使用该文件格式的文件。例如,Windows 98就不能识别NTFS文件格式的硬盘。
设备驱动程序(Device Drivers):如上所述,硬件管理是核心的主要工作之一,当然,设备驱动程序就是核心需要做的事情。"可加载模块"功能可以将驱动程序编辑成模块,而不需要重新编译核心。该内容会在后续的核心编译中介绍。

综上所述,所有硬件资源都是由核心来管理的。我们要实现一些工作时,除了通过核心本身提供的功能(如上面提到的资源管理器)之外,还可以通过其他应用软件来实现。举个例子,如果您要看VCD影片,那么,除了Windows提供的媒体播放程序之外,也可以自行安装VCD播放程序来播放VCD。这个播放程序就是应用软件,而这个应用软件可以帮您去控制核心的工作(就是放映影片)。因此,可以这样说,核心是控制整个硬件支持的东西,也是操作系统的最底层,然而,要让整个操作系统更完备的话,核心还需要提供相当丰富的工具,以及核心相关的应用软件的支持。

Linux就是一个操作系统。在这个操作系统中,含有最主要的核心以及核心提供的工具。它提供了一个完整的操作系统中最底层的硬件控制与资源管理的架构,这个架构沿袭了UNIX良好的传统,所以相当稳定且功能强大。此外,由于这个优良的架构可以在目前的个人计算机(x86系统)上运行,所以很多软件开发人员将他们的工作重心移到了这个架构上,即指很多的应用软件。虽然Linux仅是其核心与核心提供的工具,不过,由于核心、核心工具与这些软件开发人员提供软件的整合,Linux成为一个更完整的、功能强大的操作系统。Linux的系统与用户的相关性如图1-1所示。

图1-1 用户、用户界面与核心工具、核心及硬件之间的相关性

大致了解了Linux是什么之后,接下来,我们要谈一谈,“为什么说Linux是很稳定的操作系统呢?它是如何来的?”
Torvalds先生在编写Linux的时候,其实该核心仅能“驱动386所有的硬件”,即“让386计算机开始运行,并且等待用户指令输入”。事实上,当时能够在Linux上运行的软件还很少。

如上所述,我们知道,硬件是由核心来控制的,而每种操作系统都有自己的核心。这就引发了一个很大的问题,因为早期硬件开发人员所开发的硬件架构或多或少都不相同,举例来说,Macintosh开发自己的硬件与操作系统,Windows则是开发在x86架构上的操作系统之一。那么,Windows是否可以在Macintosh上运行?答案是,不行。
因为Windows操作系统本来就是针对个人计算机x86架构的硬件而设计的,所以只能在x86的个人计算机上运行,在不同的平台上就无法运行了。也就是说,每种操作系统都是在专门的机器上运行。不过,Linux由于是开放源码的操作系统,所以其程序代码可以修改成适合在各种机器上运行,也就是说,Linux具有“可移植性”,这是很重要的一个功能。

【责任编辑:雪花 TEL:(010)68476606】

回书目   上一节   下一节

分享到:

OSX系统管理和部署

《OS X系统管理和部署》讲述Mac计算机OS X系统的特性和实际应用[详细]

  1. Linux服务器配置全程实录
  2. 揭秘--优秀PPT这样制作

热点职位

更多>>

热点专题

更多>>

读书

精通SOA:基于服务总线的Struts+EJB+Web Service
Java的出现,实现了跨操作系统平台的程序开发,以Java为基础的J2EE技术已经成为因特网服务技术的主流。然而,以J2EE为基础的SOA

51CTO旗下网站

领先的IT技术网站 51CTO 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 51CTO学院