Linux操作系统原理与应用.doc
《Linux操作系统原理与应用.doc》由会员分享,可在线阅读,更多相关《Linux操作系统原理与应用.doc(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流Linux操作系统原理与应用.精品文档.操作系统概述在计算机应用的过程中,人们接触最频繁的是操作系统,例如磁盘操作系统DOS、易于使用的图形界面操作系统Windows、开放源代码的操作系统Linux等。但是,操作系统往往是比较复杂的系统软件,相对于使用而言,要掌握它的运行机制就不是那么 容易。1.1 认识操作系统可以从不同的角度来认识操作系统。从使用者的角度看,操作系统使得计算机易于使用。从程序员的角度看,操作系统把软件开发人员从与硬件打交道的繁琐事务中解放出来。从设计者的角度看,有了操作系统,就可以方便地对计算机系统中的各种软、硬件资源进行
2、有效的管理。1.1.1 从使用者角度人们对操作系统的认识一般是从使用开始的。打开计算机,呈现在眼前的首先是操作系统。如果用户打开的是操作系统字符界面,就可以通过命令行完成需要的操作。例如,要在Linux下复制一个文件,则输入:cp /floppy/TEST mydir/test上述命令可以把/floppy目录下的TEST文件复制到mydir目录下,并更名为test。为什么可以这么方便地复制文件?操作系统为此做了什么工作?首先,文件这个概念是从操作系统中衍生出来的。如果没有文件这个实体,就必须指明数据存放的具体物理位置,即位于哪个柱面、哪个磁道、哪个扇区。其次,数据转移过程是复杂的I/O操作,一
3、般用户无法关注这些具体的细节。最后,这个命令的执行还涉及其他复杂的操作,但 是,因为有了操作系统,用户只需要知道文件名,其他繁琐的事务完全由操作系统去处理。如果用户在图形界面下操作,上述处理就更加容易。实际上,图形界面的本质也是执行各种命令,例如,如果复制一个文件,那么就要调用cp命令,而具体的复制操作最终还是由操作系统去完成。因此,不管是敲击键盘或者单击鼠标,这些简单的操作在指挥着计算机完成复杂的处理过程。正是操作系统把繁琐留给自己,把简单留给用户。1.1.2 从程序开发者角度从程序开发者的角度看,不必关心如何在内存存放变量、数据,如何从外存存取数据,如何把数据在输出设备上显示出来,等等。例
4、如,cp命令的C语言实现片段如下:inf=open(/floppy/TEST,O_RDONLY,0);out=open(/mydir/test,O_WRONLY,0600);dol=read(inf,buf,4096);write(outf,buf,l); while(l);close(outf);close(inf);在这段程序中,用到四个函数open(),close(),write()和read(),它们都是C语言函数库中的函数。进一步研究可知,这些函数都要涉及I/O操作,因此,它们的实现必须调用操作系统所提供的接口,也就是说,打开文件、关闭文件、读写文件的真正操作是由操作系统完成的。这些
5、操作非常繁琐,对于不同的操作系统其具体实现也可能不同,程序开发者不必关心这些具体操作。1.1.3 从操作系统在整个计算机系统中所处位置如果把操作系统放在整个计算机系统中考虑,则如图1.1所示。图1.1 计算机系统层次结构示意图因为操作系统这个术语越来越大众化,因此许多用户把他们在屏幕上看到的东西理所当然地认为是操作系统,例如Windows中的图形界面、IE浏览器、系统工具集等,这些都是操作系统的一部分。但是,本书讨论的操作系统是指内核(kernel)。用户界面是操作系统的外在表象,而内核是操作系统的内在核心,由它真正完成用户程序所要求的操作。从图1.1可以看出,一方面操作系统是上层软件与硬件相
6、联系的窗口和桥梁,另一方面操作系统是其他所有用户程序运行的基础。下面以一个程序的执行过程为例,看一下操作系统具体起什么样的作用。一个简单的C程序如下所示,其名为test.c。#includemain() printf(Hello worldn);用户对上述程序编译、连接后,生成一个可执行的二进制文件,其机器执行过程简述如下:(1)用户告诉操作系统执行test程序。(2)操作系统通过文件名找到该程序。(3)检查其类型,检查程序首部,找出代码和数据存放的位置。(4)文件系统找到第一个磁盘块。(5)操作系统建立程序的执行环境。(6)操作系统把程序从磁盘装入内存,并跳到程序开始处开始执行。(7)操作系
7、统检查字符串的位置是否正确。(8)操作系统找到字符串被送往的设备。(9)操作系统将字符串送往该设备。窗口系统确定这是一个合法的操作,然后将字符串转换成像素。(10)窗口系统将像素写入存储映像区。(11)视频硬件将像素表示转换成一组模拟信号,用于控制显示器(重画屏幕)。(12)显示器发射电子束,在屏幕上显示“Hello world”。从这个简单的例子可以看出,任何一个程序的运行只有借助于操作系统才能得以顺利完成,因此,从本质上说,操作系统是应用程序运行的基础设施。1.1.4 从操作系统设计者的角度操作系统是一个庞大、复杂的系统软件,其设计目标有两个,一是尽可能地方便用户使用计算机,二是让各种软件
8、资源和硬件资源高效、协调地运转。笼统地说,计算机的硬件资源包括CPU、存储器和各种外设。其中外设种类繁多,如磁盘、鼠标、网络接口、打印机等。操作系统对外设的操作是通过I/O接口进行的。软件资源主要指存放在存储介质上的文件。假设在一台计算机上有三道程序同时运行,并试图在一台打印机上输出运算结果,这意味着必须考虑以下问题:三道程序在内存中如何存放?什么时候让某个程序占用CPU?怎样有序地输出各个程序的运算结果?这些问题的解决都必须求助于操作系统,也就是说,操作系统必须对内存、CPU进行管理,当然也包括对外设的管理。因此,从操作系统设计者的角度考虑,一个操作系统必须包含以下几部分: 操作系统接口 C
9、PU管理 内存管理 设备管理 文件管理综上所述,操作系统的定义:操作系统是计算机系统中的一个系统软件,是一些程序模块的集合它们能以尽量有效、合理的方式组织和管理计算机的软、硬件资源,合理的组织计算机的工作流程,控制程序的执行,并向用户提供各种服务功能,使得用户能够灵活、方便、有效地使用计算机,使整个计算机系统能高效、顺畅地运行。1.2 操作系统的发展操作系统的发展过程是一个从无到有、从简单到复杂的过程。为了进一步理清思路,下面从操作系统的演变、硬件和软件的各自发展的角度来加深了解。1.2.1 操作系统的演变在计算机诞生的初期,硬件价格昂贵,没有操作系统。每一个用户都要自行编写涉及到硬件的源代码
10、。程序通过卡片输入计算机,一次只能完成一个功能(计算、I/O、用户思考/反应),工作效率非常低。 最早出现的操作系统是简单的单道批处理系统,它能串行执行预先组织好的一组任务。这种系统避免了此前系统一次只能运行一个任务,每个任务必须先装入系统,执行完之后才能装入下一个任务而浪费了装入时间的现象,提高了系统效率。但是,程序运行到I/O操作期间,CPU总是需要停下来等待数据传输完成,而I/O操作时间比CPU处理数据时间要高出数倍(往往是20倍以上),因此无形中浪费了大量宝贵的CPU时间,也使得任务组中后续程序的执行被延迟,那么,如何避免数据传输等待所带来的时间浪费?能否在传输期间解放CPU,使其可以
11、去执行别的任务?为解决这个问题,单道批处理系统发展成为多道批处理系统。所谓多道,就是指处理器(指单处理器系统)可以交错运行多个程序,在某个任务挂起时运行另一个程序。这样就解决了CPU等待数据传输所浪费的时间,进一步提高了系统效率。当计算机所处理的任务不再仅仅局限于科学计算,而是越来越多地涉及办公和日常活动时,程序在执行过程中常常需要和用户不断交互,任务执行结果随时都会因为用户的选择而改变,而且往往需要多个用户同时使用系统。由于这种交互模式和共享模式需要任务响应时间尽可能短(如果超过20秒,人的思维就容易被打断或变得不耐烦),为了让多数用户满意,操作系统开始采用分时技术,将处理器的运行时间分成数
12、片,平均或依照一定权重分发给系统中的各用户使用。这种使处理器虚拟地由多个用户共同使用的方法,不但可以满足快速响应要求,也可以使得所有用户产生计算机完全是在为自己服务的感觉。上面给出了操作系统发展的几个主要阶段:单道批处理多道批处理分时系统。除此以外,现在还出现了分布式操作系统、嵌入式系统,不过总体技术思路仍然脱离不了多道、分时等概念。1.2.2 硬件的发展轨迹操作系统理论是在计算机的应用中诞生并成长的,它的发展与计算机硬件的发展是密不可分的。表1.1是从硬件角度看操作系统的发展轨迹。表1.1 从硬件角度看操作系统发展轨迹年 代硬 件 特 点操作系统特点背 景机械计算机时代(17世纪20世纪初)
13、 纯机械结构,低速 只能进行简单的数学运算纯手工操作从计算尺到差分机再到分析机发展了数百年第一代计算机(1946年20世纪50年代末) 电子管计算机 体积大,能耗高,故障多,价格贵 难以普及应用无操作系统(程序以机器码编写,载体从插件板到卡片与纸带)1906年发明电子管;1946年第一台电子管计算机ENIAC研制成功第二代计算机(20世纪50年代末60年代中期) 晶体管计算机 采用印刷电路 稳定性与可靠性大大提高 批量生产成为可能 进入实际应用领域但数量有限 单道批处理系统 操作系统以监督软件形式出现 任务按顺序方式处理1947年发明晶体管第三代计算机(20世纪60年代中期70年代初) 集成电
14、路计算机 体积减小,性价比迅速提高 小型计算机发展迅速 进入商业应用领域 尚不适合家庭应用的需求 涌现大批操作系统,包括多道批处理系统、分时系统和实时系统 奠定了现代操作系统的基本框架1958年发明集成电路;1971年Intel公司发明微处理器第四代计算机(20世纪70年代中期至今) 大规模集成电路计算机 性能大幅度提高,价格不断下降 个人计算机成为市场的主流 计算机迅速普及 计算机应用进入高速发展的轨道 操作系统的理论基本完善 系统与网络通讯一体化(分布式操作系统和网络操作系统) 人机交互成为设计重点 操作系统性能日渐稳定1981年IBM-PC机诞生;1993年Internet开始商业化运作
15、从表1.1可以看出: 在硬件的性价比较低的时候,操作系统设计追求硬件的使用率,从批处理系统发展到分时系统。 随着硬件性价比越来越高,操作系统的设计开始追求系统的可靠性和稳定性,出现了多处理器系统和分布式系统。 计算机普及后,操作系统的设计开始追求用户界面的友好。 第一代和第二代计算机系统应用范围很小,操作系统的发展非常缓慢,直到第三代计算机系统出现后,才得以高速发展。 从第三代到第四代计算机,操作系统的功能模块划分没有变化,说明计算机硬件结构已经稳定,操作系统的发展逐渐摆脱随硬件一起发展的状况,形成自己的理论体系。 进入第四代计算机系统后,分布式系统和多处理器系统虽然极大地扩充了操作系统理论,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 操作系统 原理 应用
限制150内