学习LINUX之前--操作系统
时间:2006-09-11 来源:flammen
二、什么是操作系统
前面介绍了计算机这个东东,接下来说说什么是操作系统 (Operation System, OS) ,在讲这个之前,我们来看下计算机是如何工作的,比如说如果你想在电脑上看DVD,那你需要准备 1.)DVD碟片、 2.)DVD光驱、 3.)对数据进行处理的CPU、 4.)可以显示影像的显示卡、 5.) 可以传输声音的声卡、 6.)可以输出影像的显示器 7.)可以发出声音的喇叭! 那么问题来了,这些硬件知道如何播放DVD 呢?这就是因为有操作系统这个东东对各硬件进行管理呵!操作系统可以管理整部计算机的硬件,他可以控制 CPU 进行正确的运算, 他可以分辨硬盘里头的数据并进行读取,他还必须要能够认识所有的适配器,如果没有这个操作系统,那么您的计算机就等于是一堆废铁而已啊!
虽然操作系统可以完整的掌控所有的硬件资源,但是,对于使用者来说,还是不够的!因为操作系统虽然可以掌控所有的硬件,但是,如果使用者无法与操作系统沟通,那么这个操作系统就没有什么用处了。简单的来说,以上面的 DVD播放为例,虽然操作系统可以控制硬件播放DVD,但是,如果使用者没有办法控制何时播出以及如何播出的话,那么这也是不可以的。
所以说,一个比较『完整的操作系统』应该要包含两个东西,一个是『核心与其提供的接口工具』、 一个是『利用核心提供的接口工具所开发出来的软件』。我们以大家常使用的 Windows 计算机来做一个简单的说明好了。大家应该都使用过 Windows 计算机里面的『资源管理器』吧!当你开启资源管理器的时候,它就会显示你硬盘当中的数据, 这个『显示硬盘里面的数据,就是核心帮你做的』,但是,『你要核心去显示硬盘哪一个目录下的数据,则是由资源管理器这个软件帮你达成的』!这样可以理解吗?
那么核心有没有作不到的事?当然有的,举例来说, 如果您曾经自行安装过某些不知名品牌的显示卡在您的个人计算机上面, 那么应该常常会发生 Windows 计算机告知您:『找不到合适的驱动程序』的问题吧? 也就是说,『核心』无法操控这个显示卡。进一步来说,就是你的计算机的所以硬件都是由核心来管理的,而如果核心不认识你的硬件,那么你将无法使用该硬件设备,例如上面提到的显示卡。
在定义上,只要能够让计算机硬件正确无误的运作,那就算是操作系统了。 所以说,操作系统其实就是核心与其提供的接口工具,不过,就如同上面讲的,因为最阳春的核心缺乏了与使用者沟通的亲和接口,所以在目前,一般我们提到的『操作系统』都会包含核心与相关的使用者应用软件呢!
核心就是『Kernel』,他是一个操作系统的最底层的东西,由他来掌管整个硬件资源的工作状态,而每个操作系统都有自己的核心,所以说,当有新的硬件加入到你的系统中的时候,若你的『Kernel』并不支持它的时候,呵呵,这个新的硬件就肯定无法工作的,因为控制它的Kernel并不认识它呀!
一般来说,操作系统的为了达成使用者所需要的正确运算结果,他必须要管理的事项有:
- 系统呼叫接口(System call interface) :这个简易的接口主要是方便程序开发者和核心进行沟通,以调用各种由核心管理的硬件。
- 进程管理(Process control) :一部计算机可能同时间有很多的工作要 CPU运算处理, Kernel 这个时候必须要能够控制这些工作,让 CPU 的资源作有效的分配才行!
- 内存管理(Memory management):控制整个系统的内存,若内存不足, Kernel 最好还能够提供虚拟内存的功能!
- 文件系统管理(File system management):档案系统的管理,例如数据的输入输出 (I/O)等;还有不同档案格式的支持等。如果你的核心不认识某个文件系统, 那么您将无法使用该档案格式的文件!例如:Windows 98 就无法读取NTFS格式的硬盘上的文件;
- 驱动器驱动(Device drivers):就如同上面提到的,硬件的管理是Kernel的主要工作之一。
核心是控制整个硬件支持的东东,也是一个操作系统的最底层,然而要让整个操作系统更完备的话,仅有核心是不够的,还需要含有相当丰富的核心提供的工具,以及核心相关的应用软件来支持。
提到这里那么您知道Linux 是什么了吗?对啦!其实 Linux 就是一个操作系统,这个操作系统里头含有最主要的 kernel 以及 kernel 提供的工具啦!它提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构,这个架构是沿袭 Unix 良好的传统来的,所以相当的稳定而功能强大!此外,由于这个优良的架构可以在目前的个人计算机( X86 系统)上面跑,Unix不行的,所以很多的软件开发者将他们的工作心血移转到这个架构上面,从而产生了很多的应用软件!虽然Linux仅是其核心与核心提供的工具,不过,由于核心、核心工具与这些软件开发者提供的软件的整合,使得 Linux 成为一个更完整的、功能强大的操作系统啰!