Linux 操作系统资料_第1页
Linux 操作系统资料_第2页
Linux 操作系统资料_第3页
Linux 操作系统资料_第4页
Linux 操作系统资料_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

该文章涉猎了操作系统的来龙去脉后与大家携手步入Linux世界。我们力图展示

给大家一幅Linux系统的全景图,并为了加深对linux系统的全面认知,亲手搭

建了一个能运行在内存中的试验系统。同时为大家提供了几个shell脚本帮助建

立试验系统。

最熟悉的陌生人用萧亚轩的一首歌形容操作系统给我们的感觉再合适

不过了,“最熟悉的陌生人”。

说熟悉,因为几乎每天我们都在有意无意和它打着交道。无论是日常

办公,还是畅游网际,我们都无法离开操作系统的帮助。电脑初启,首当其冲运

行的就是操作系统。对于许多人而言,电脑就是那扇“窗”。即便远离电脑,我

们依然无法逃脱操作系统的“魔掌”。

在您收发短信、拨打电话的时候,手机屏幕背后一个嵌入操作系统正

在默默为您服务。越来越多的数字设备都开始拥有自己操作系统,虽然它们不同

于Bill为我们带来的“窗子”,但并无什么本质的差别。假如有一天,您的电

视机开始对您嘘寒问暖,请别忘记,有一个叫做操作系统的东西站在它的背后。

说陌生,因为直接为我们服务的大多属于应用软件,也许是文字史理、

也许电子邮件、也许网络游戏。他们都运行于操作系统之上,提供我们所需的服

务,这让我们很少直接面对操作系统。对大多数月户而言,操作系统的细节是不

可见的,所以虽说我们无时无刻不在使用操作系统,彼此之间却多了一层隔阂。

对于操作系统的认识,往往只能停留在间接地、片面地感性基础之上,其内部的

运作机制,我们无法一目了然。

无处不在却不以正面相示,让操作系统有了一种“犹抱琵琶”的美,

于是操作系统被冠以“最神秘,”的称号。

揭开这层神秘面纱,是我们杂志的初衷。我们希望能够诠释操作系统设计思想,

和您一起熟悉操作系统提供的各种服务,学习灵活运用这些服务的方法和技巧。

我们将以理论讨论结合实例实验方式,让您和我们一起拥有操作系统级开发软件

的本领。

好了,开始我们的内核之旅,走近这个“最熟悉的陌生人”吧!

[i]本期目标![/i]

在第一期中,我们将:

提纲挈领地介绍操作系统的基本概念;

理清楚操作系统和其它系统软件或应用软件之间的关系;

了解操作系统的体系结构;

在此基础上,提出操作系统内核概念。

简而言之,希望读者可以在读过本期的内容,能在脑海里勾勒出一幅操作系统的

全景图,为日后剖析内核、开发内核创造基础。

学习的最佳方法是实践。

我们的杂志将以实践为主,理论为辅。将实验贯穿到学习、分析当中。

在本期中,为了让读者能比较全面地理解操作系统,并加强对操作系统的感性认

识,我们将本期分为两大部分:

第一部分从理论上简要介绍操作系统的内涵,揭示操作系统在软件体系中的特殊

地位,然后讨论操作系统的体系结构和演化进程。

第二部重点分析Linux操作系统,介绍Linux操作系统的发源,特色以及内核结

构。最后通过和读者一同亲手搭建一个实验操作系统一一一个经过裁减具备基本

功能的小型Linux,让读者从实践中感受操作系统的体系结构和在计算机系统中

所起的作用。

什么是操作系统操作系统的概念虽然定义总是生硬、乏味、令人费解,但足它

毕竟是概括性最强、最能体现水平的,所以我们还是要在开始就给出操作系统定

义:

操作系统是应用程序的[i]运行环境。[/i][i][/i]

够精辟吧!

可能运行环境这个术语令你如坠云端,它太广泛、太抽象了。你一定在问运行环

境到底是什么?简单地讲,运行环境是一种即服务和控制于一体地[i]容器[/i]。

如果你没有理解环境这个概念,我可以举个并不贴切的社会实例。

在开发区中可以看到许多企业孵化池或产业园,其中入住了各种各样的企.业,孵

化池或产业园的管理机构会统一为其中的企业办理各种工商、保险、卫生医疗等

手续、提供后勤、治安等基础服务,企业需要某些政务服务时,可以通过管理机

构去和政府联系,处理相关事宜,而不需要亲自去处理这些和企业业务无关的政

务活动,因此可以抽出身来集中精力在业务上。孵化池和产业园为企业提供了统

一、普遍地服务和管理,是企业运作的外在环境。操作系统从这个意义上来说,

类似于产业园的管理结构,为应用程序一一好比企业一一提供基础服务和管理。

当然,我们现在并不指望你立刻认识到操作系统深刻内涵,对它的认识需要在不

断地使用和思考中消化和积累,在本期杂志中,我们将从各种角度介绍“运行环

境”这个术语的真实含义,并在今后各期杂志中分阶段、分层次的展开学习操作

系统的各个领域。相信在不久的将来,你就能和我们一起认清它的庐山真面目了。

操作系统产生背景想要认清一个人,最好是从小认识他。对技术的理解也是如此,

我们必须了解它的产生原因和发展过程,才能较为全面的认识该技术所解决的问

题,认识它在学科发展中所处的地位。对比技术发展各个阶段的特点,才能认清

该技术的优劣。同样,我们想要把握操作系统的特性,还是先把操作系统放在时

间轴上看看它的来龙去脉吧!

操作系统并不是计算机出现之初就有的,最初的计算机科学中并不存在操作系统

这个概念,所有任务都直接运行于硬件之上。那时的任务大多集中于科学计算领

域,系统硬件实现相对简单、直接,任务对I/O操作的要求也比较低,将结果记

录到磁带机之类的简单设备中足矣。老程序员们大多采用手工或是用打孔机的方

式将将二进制数据和程序输入机器内存,然后执行计算,最后,将结果保存到磁

带机上。一旦出现错误,机器上的调试灯会将保存在寄存器中的错误代码反映出

来,程序员们会据此去分析错误所在。

随着科学计算任务变得越来越复杂,计算机逐渐被应用到了科学计算以外的其它

领域。硬件设备比以前更加丰富和复杂了,I/O操作要求大幅提高,程序规模迅

速扩大,需要调试的错误更是直线上升,直接操作硬件,对程序员来说变得越发

困难。

于是出现了高级语言、编译系统,帮助程序员简化开发工作;出现了操作系统,

帮助程序员管理和操作硬件设备。程序员们可以将精力集中于开发需要的任务,

烦琐的如任务装载、分配/释放内存、内存寻址、设备驱动、数据存储等等硬件

相关操作统统交给操作系统管理一一真可以说是生产力的一次解放。

时代继续发展,多用户多任务时代的来临,使得系统管理更加强调资源共享性。

用户直接操作系统资源显然有悖于上述精神,因此资源合理分配与保护更为操作

系统发展提供了新的挑战和机遇,同时奠定了操作系统不可或缺的地位,从此,

操作系统成为为软件体系中最基础,最重要的组成部分了。

操作系统的任务从操作系统的起源可以看出,操作系统的核心任务是作为硬件和

应用程序之间的一个[:]中间层[i],[/i][/i]或者说是应用程序的一个[i]操作

平台[/i],通过它应用程序和系统硬件隔离开,应用程序利用它提供的服务完成

硬件相关操作。

总而言之,操作系统方便了应用程序运行,保护了系统资源。具体地讲,操作系

统为用户带来了几个方面的好处:

易操作性:操作系统是用户和计算机之间的接口,它大大简化了用户执行任务

的复杂程度。

作为应用程序的执行环境:它为程序员建立应用程序提供了必要的[i]编辑环[/

i]境、[i]编译环境[/i]和[i]调试工具;[/i]为程序的执行提供了载入服务和资

源分配服务;为数据存取提供了I/O访问服务;为数据格式转化和定位提供了文

件操作服务;为程序的安全运行提供了权限控制服务;为程序运行失败提供了错

误报告服务等等系统服务,从此,程序员和用户都不再需要关心那些令人生畏的

计算机体系结构细节,可以全心全意地开发应用程序了。

有效性:从另一个角度看待操作系统,可以将它认为是一个计算机[i]资源[/i]

管理系统。

由于系统中资源种类各异,用法也人不相同,如果直接由用户管理这些资源,比

如内存分配,时钟计时,I/O驱动,存储维护,势必要求用户具有丰富的软硬件

知识,深刻把握计算机系统结构,否则资源将难以合理使用,最终造成系统混乱,

甚至崩溃。而且现代的多用户操作系统更是要求系统资源共享,资源必须合理分

配给多用户、多任务,只有采用一定的调度策略和分配策略,才能保证资源被公

平有效的利用。所以,配置资源成了提高性能的关键一一如同资源配置是提高生

产力的关键一样。

安全性:安全性是操作系统为我们提供的另一个重要的特点,它为我们提供了多

层面的安全保障。

首先,操作系统作为系统硬件和用户的中间平台,禁止应用程序直接操作硬件,

禁止应用程序直接访问内存,执行特权指令。多数系统都将应用程序运行限制在

用户空间(低特权级),而操作系统则运行于内核空间(高特权级),应用程序

只有通过系统调用请求操作系统所提供的接口,才能通过操作系统间接执行和硬

件相关的操作或是执行特权指令。因此保护了系统不被恶意的应用程序破坏或非

法操作。

捻次,多任务多用户操作系统必须保证,不同任务之间信息不能泄漏,因此需要

为任务划分各自的私有空间和对其进行访问控制。对不同用户进行相应的授权和

变。这时的系统变得更公开、更普遍,往往允许多个用户可以同时使用。交互模

式和共用模式需要任务响应时间尽可能的快(超过20秒的话,人的思维就容易

被打断或变得很不耐烦),这样才能让多个用户都满意,于是操作系统开始采用

[i]分时[/i]技术,处理器的运行时间分成数片,均分或依照一定权重派发给系

统中的用户使用。这种将处理器虚拟给多用户共同使用的方法,不但可以满足快

速响应,而且也可以使得所有用户获得计算机完全是在为自己服务的假象。

上面给出了操作系统发展的主流路线:单道批处理一一多道批处理一一分时系

统,除此以外现在还出现了许多分布式操作系统,嵌入系统,不过总体技术思路

都仍然脱离不了多道,分时等概念。

操作系统内容操作系统的演化使得其功能变得愈来愈强大,但结构也越来越复

杂。在以方便用户(包括开发人员和终端用户)为宗旨的思想下,操作系统不断

集成新功能,新服务。回忆从前大家使用的DOS系统仅仅只需要一张软盘,而如

今的windows系统或Linux系统动辄就需要数张光盘,可见已经从过去的麻雀变

成了恐龙一一虽然它们都有五脏六腑。

虽然变成了恐龙,但是其结构还时相对稳定,清晰的。和软件工程提出的思想一

致,操作系统也采取了分层结构,越向上层抽象都越高,越接近用户;相反越向

下层,越靠近硬件,抽象也相对接近硬件。而且高层软件依靠下层软件提供的服

务,再加上本身提供附加服务为更高层服务。总体来讲呈现倒金子塔形式。

下面我们就简要分析一下操作系统的体系结构,然后再谈谈操作系统设计时需要

主要考虑的问题。

操作系统组成在形形色色的操作系统之中,组成结构不尽相同。因为同样目的

实现的手段可以自由选择,所以其组成也有很大差异,我们选取最普遍的操作系

统(UNIX)组成结构,向大家揭示操作系统的体系结构的大致框架。对于各种操

作系统之间的具体差异,大家可以以下面讲述的结构对比认识。(注意我们这里

所说的操作系统属于宏观概念,接近于操作系统发行版,不但包括了内核,还包

含了学多系统软件和基础应用软件。)

我们用一组简单的数学公式来描述操作系统的组成要素:

[i]操作系统=[/u[口内核系统程序[/i]

[i]系统程序=[/]以编译环境[/i][i]+AP:+AUI[/i]

[i]编译环境[/i][i]=[/J[i]编译程序+连接程序[/i][i]+装载

程序[/i]

[i]API

=系统调用[/i][i]+语言库函数(C,C++,Java,etc[/i][i])

[/i]

[i]AUI

shell+系统服务例程(如x[/i][i]服务器等)+[/i][i]应用程序([/i]

[i]浏览器,字处理,编辑器)[/i]

[i]

[/i][i][/i]

操作系统最底层的组件是内核,其上层搭建了许多系统软件。系统程序包括三个

部分。这三个部分分班是:编译环境、应用程序接口和用户接口。编译环境包含

汇编,C等低高级语言编译程序,连接程序和装载程序,这些程序负责将文本格

式的程序语言转变为机器能识别和装载的机器代码;应用程序接口(API)包含

内核提供的系统调用接口和语言库,系统调用是为了能让应用程序使用内核服

务,语言库函数则是为了方便应用程序开发,所以将一些常用的基础功能预先编

译以供使用,比如对C语言来说常用的C库有gunC等;用户接口(AUD包括我

们熟悉的shell(关于shell应该专门写一个教程)、系统服务程序和常用的应用

程序。

这些部分并非所有的操作系统都必须一个不少的包含,不过其中大多数功能都应

该提供,尤其内核,系统调用,shell这些基木组件,它们都属于操作系统必备

组件,其它组件是否包含需要根据具体系统的要求和应用环境决定,你也可以将

其归为操作系统之外的附加部分。

下图描述了操作系统的全部概念结构

[i]t/i]

[i]系统程序:系统程序是相对应用程序而言的,应用程序针对终端用户需求完

成功能,而系统程序则是为了简化应用程序的开发而存在的,比如数据库系统为

了应用程序提供了有效的数据传输,存储服务;还有编程语言的执行环境它

由C[/i][i]库实现一一也属于一种系统程序,它为应用程序开发提供了诸如1/

操作例程,图形库,计算库等等基础服务。可见系统程序范围覆盖很广,

只要面相服务群体不是最终用户的软件都可以划归到系统软件中来。[/i]

内核概念操作系统最核心,最基础的组件就要属内核了一一内核和操作系统的其

它系统软件或应用程序本质的区别在于内核运行在高特权级,和硬件直接交互,

操作权限几乎不收任何限制,因此内核程序编写也要求格外谨慎,必须保证效率

和可靠。

[i]特权级别:现代体系结构中往往为了保护操作系统(内核)专用的数据不被

应用程序访问,以免关键数据泄露或系统被破坏,将系统(硬件机制)划分为不

同的特权级别,敏感数据存在高特权级,且还规定了一些特权指令,其它级别的

任务不能访问敏感数据和使用这些特权指令,只有处于特权级别的任务才有权使

用。比如0x86[/i][i]体系结构中存在4[在][i]个特权级别(O[/i][i],l[/i]

[i],2[/i][i],3[/i][i])Linux[/i][i]操作系统将内核存在O[/i][i]级,其

它任务运行在级。级被称为内核空间,级被称为用

户空间。[/i]

内核设计的主要任务内核作为操作系统的核心,运行级别最高。其它系统程序

都必须通过它才可以使用系统资源,获取系统服务。所以内核使用最为频繁,

切系统行为无论巨细都要通过内核参与。

因此内核运行效率和正确性对整个系统的运行效率和可靠性至观重要,如果内核

效率稍微下降,那么在应用程序中就必然造成层层放大。

内核要求高效率,所以它必须自系统运行起就要载入内存,并且在运行期间一直

驻留在内存中,直到系统关闭。这是内核与其它应用程序或系统程序的另一个显

著区别。虽然说内存今天己经不再是天价了,但是毕竟内存容量有限,所以内核

大小不能过大(Linux内核只有几M或十几M,甚至可以裁减得更小),因此内

核只应该包含最基础和核心的功能,其它附加功能应该尽量提到用户空间完成。

那么到底有那些功能是操作系统使用最频繁,最需要在内核中实现的呢?内核直

接架构于硬件资源之上,因此首先要做的就是对硬件的资源管理。因此内核必须

负责:内存管理,进程和进程调度(对CPU的管理),文件系统管理,I/O处理

等任务。

我们的杂志核心就是在解释内核原理的基础上,带领大家学习内核级别的开发,

也就是说进行核心开发。本期仅仅给大家一个概念上的说明,描述内核设计需要

完成的主要任务,至于具体内核各部分的详细讨论在后续期刊中将逐步展开。

内核至少需要包含如下几个模块。

[i]进程管理[/i]:进程是操作系统中的执行代码,是任务在系统内的动态化身。

内核必须负责将任务抽象为进程,而且必须能将进程执行,能为进程分配资源,

维护进程的执行状态,提供进程间通讯方法。更进一步讲,进程管理还必须保证

进程运行的可靠性,因此需要提供进程同步,互斥,防死锁等等服务,另外进程

调度也是进程管理中的重要任务。

[i]内存管理[/□:计算机存储部件由快到慢、由小到大分为缓存、内存和磁盘。

其中最主要和必须是内存,内存管理包括内存的分配和释放,以及访问保护等。

另外对使用虚拟内存的系统,内存管理还包含虚拟内存管理,磁盘交换管理,内

存影射等等。

[i]文件系统[/i]:文件是多数系统中用户使用和管理数据的主要方式,文件系

统需要负责用户文件访问,访问权限控制,文件格式转换,数据传输等一系列问

题。

[i]设备管理[/i]:除了存储设备外,系统还有大量外设需要操作系统管理,比

如时钟,网卡,键盘,磁盘等等,设备管理需要负责驱动这些设备为上层调用服

务。

[i]I/O[/i][i]管理[/i][i]:[/i]操作系统中I/O管理负责处理复杂的I/O操作,

其中包括I/O缓冲和磁盘调度等。

另外[i]中断管理[/i]也是操作系统内核应该实现的功能。

以上是操作系统内核设计要考虑的主要问题,其中各种模块彼此相互交错、相互

利用。不过这些模块的划分并不是绝对的,在实际系统中可能有不同的组合或更

细致地划分,因此我们不必追究模块的具体内容,需要关注的是内核究竟需要完

成那些功能。

内核模块大致也有层次之分,我们可以这样理解层次含义:直接和硬件作用的是

[i]硬件抽象层[/i],和用户更靠近的属于[i]逻辑抽象层[/i]。

所谓硬件抽象层,是指管理帔件设备的模块,比如存储管理、设备管理这些模块

将硬件功能抽象为内核数据结构和接口函数,以供上层使用。比如磁盘设备驱动,

需要将磁盘设备功能抽象为打开。pen,写入(write),读取(read)等接口函数;

内存管理需要将内存抽象为页、段等结构体。然后分配、合并、释放等工作都是

通过操作这些抽象得来的结构体,再由这些结构影射到内存的物理实体上去的完

成实际操作的。

所谓逻辑抽象层最主要的目的是为了贴近用户需求,最重要的逻辑抽象模块就是

文件系统,文件系统的存在完全是从用户角度出发设计的,因为用户最能接受以

用文件形式包装的信息,所以文件系统属于逻辑上的抽象,因为物理设备中没有

对应文件的实体。

对于进程管理来说,其中进程执行和调度要和处理器打交道,应该说属于硬件抽

象层,但其中进程状态维护,进程通讯等更接近月户使用,因此可以归结到逻辑

抽象层。

另外I/O管理和中断管理些模块,在内核中属于为其它模块服务的借用力量,它

们主要被文件系统或设备管理模块使用,但总之是面向硬件的,所以也可以将其

归为硬件逻辑层。

下面图示了内核主要模块之间的联系。

Linux操作系统在众多商业操作系统和免费操作系统中,Linux占有独到地位,

它不但功能强大,接近于工业强度,而且结构设计幽雅,具有良好的扩展性和移

植性,接口定义规范,基本和Unix系统兼容。更为重要的优势在于Linux操作

系统是最具影响力的开源软件,它的产生揭开了开元运动的新纪元,对自由软件

发展起到了前所为有的推动作用。

Linux开放性,也就是它不拘一格的拿来主义精神,吸引了无数软件爱好者热情

的投入到其开发中去,因此Linux是当今发展最快,范围最广的开元软件之一。

它是社区中大家最乐意讨论和参与的项目,也正是这种开源精神使Linux成为操

作系统爱好者最好的良师益友,它在教育意义上的贡献是前所未有的。从这节起

我们将进入Linux世界去探索操作系统软件的严谨,去感受Linux的可爱。

Linux操作系统的起源Linux的第一个版本诞生于1991年,它的作者就是现在

大名鼎鼎LinusTorvalds,这个芬兰小伙子据说最初是在做一个作业调度系统

的学校家庭作业,后来他突发灵感开始着手将系统改造为一个实用的操作系统,

他在开发初期借助了当时最负盛名的教育类操作系统Minx的一些思想和成果,

但他的雄心是要将自己这个系统变的比Minx更实用、更强健,因此他决定:巴自

己的系统代码公布于众,并且欢迎任何支援者来修改和扩充Linux系统一一这正

是我们现在耳闻祥熟的GUN协议的权益一一Linux选择了当时在世界上最受推崇

的Unix系统接口标准:POSIX.1来作为自己的内核系统调用接口,从此Linux

成为了Unix风格操作系统家族中的新贵,而且是一个代码完全公开的操作系统。

Linux的生命力来自于它的开源思想,自Linus公开Linux代码一来,世界各地

的软件工程师和爱好这不断积极地对Linux系统今进行修改和加强,先后将其版

本从0.1提高到2.0、2.2、2.4到如今的2.6,同时Linux也被从初期的x86

平台移植到了Powcrpc>Sparc>MIPS、68K等几乎市面上能找到的所有体系结构

±o更另人激动的是,拜开源运动之新风,数不胜数的应用软件出现在Linux

系统之上,这样大大加强了Linux系统的实用能力。

Linux作为开源软件中的桂冠,越来越受到欢迎,毫尢疑问地成为人气最旺,最

活跃的gun项目,围绕Linux的社区雨后春笋般的出现,这一切都预示着Linux

将在教育领域,在工业领域在政治领域将得前所未有的成功。

Linux操作系统的技术特点Linux系统吸收了Unix操作系统的精华思想[i]

“简单就是美“,[/i]因此它采用了紧缩内核结构,只在内核中实现那些必要的

功能,尽量保持内核精悍短小。至于那些丰富多彩的附加功能统统交给用户空间

的库函数或其它系统软件或应用软件完成。

[i]有时大家将直接将Linux[/i][i]内核和Linux[/i][i]操作系统化等号,这

也没错的。而我们上文提到的操作操作系统多数情况不仅仅只内核而且还只内核

之上的系统程序,可以说是广义的操作系统概念,希望大家区别。[/i]

为/能受益于Unix系统的影响力,Linux采用了Unix的系统调用接口标准POX

IS.1,保证了和Unix系统的有限兼容,从而抓住了很大一部分Unix技术人员。

另外Linux起源于小型计、通用算机,并非针对大型和专用计算机设计,因此结

构复杂性和规范性都比较适中。

还有就是目前多数Linux操作系统版本都是以服务器为出发点,因此网络功能和

系管理能力突出,多数应用也是专为网络管理服务的,对于个人用户所关注的桌

面应用和嵌入应用关注的实时性支持尚且有限(今年Linux发展的一个重要议题

就是针对桌面和嵌入开发相应的内核版木)。

Linux内核的特点

Linux是一种是实用性很强的现代操作系统,开发它的中坚力量是软件工程师,

因此多以实用性和效率为出发点,很多地方还考虑了工业规范和兼容性等因素,

因此不同于教学性操作系统追求理论上的最先进性,Linux系统内核最注重的问

题是实用和效率。

下面我们简要归纳一下Linux内核的特色。

第一,Linux内核被设计成单巨内核(monolithic?)结构(相对微内核而言,

微内核是一种功能更贴近硬件的核心软件,它一般仅仅包括初等内存管理、同步

原语、程间通讯机制、I/O操作和中断管理,这样做有利于扩展性和移植性。但

是微内核与诸如文件管理、设备驱动、虚拟内存管理.、进程管理等其它上层模块

之间需要有较高的通讯开销,所以目前多集中在理论教学领域,对工业应用效率

难以保证。),因此效率高,紧凑性强。

第二,2.6版本前Linux内核是单线程结构一一所谓但线程结构是说同一时间

只有一个执行线程(内核中的执行程序)允许在内核中运行,不会被调度程序打

断运行其它任务,这种内核被成为非抢占的,它的好处在于内核中没有并发任务

(单处理器而言),因此避免了许多复杂的同步问题,但其不利影响是非抢占特

性延迟了系统响应速度,新任务必须等待当前任务在内核执行退出才能获得运行

机会。工业控制领域需要高响应速度,因此2.6版本后由于Robertlove等人的

贡献,将抢占技术引入了Linux内核,使得其变为内核抢占系统,当然付出的代

价是同步操作进一步复杂化了。

第三,为了保证能方便地支持新设备、新功能,又不会无限扩大内核规模,Lin

ux系统对设备驱动或新文件系统等采用了模块化方式,用户在需要时可以现场

动态加载,使用完毕可以动态卸载。同时对内核,用户也可以定制,选择适合自

己的功能,将不需要的部分剔除出内核。这两种技术都保证了内核的紧凑性和扩

展性。

第四,Linux内核纯粹是一种被动调用服务对象,所谓被动是因为它为用户服务

的唯一方式是用户通过系统调用来请求在内核空间运行某个函数。内核本身是一

种函数和数据结构的集合,不存在运行的内核进程为用户服务(虽然Linux的确

存在一种被称为内核线程的进程,但它并不是用来服务于用户的,仅仅作为系统

自身的服务目的)。

第五,Linux内核的采用虚拟内存技术使得内存空间虚拟扩展到了4GB之多,

其中0-3G属于用户空间,称为用户段,3G-4G属于用户空间,称为内核段。这

样使得用户编写程序正以使用远远大于实际内存的存储空间。

第六,Linux的文件系统最大特点是实现了一种抽象文件模型一一VFS(虚拟文

件系统),该文件系统属于Unix风格。使用虚拟文件系统屏蔽了各种不同文件

系统的内在差别,使得用户可以使用同样的方式访问各种不同格式的文件系统,

可以亳无区别地在不同介质不同格式的文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论