- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、本科操作系统的基本知识
二、1.unix/Linux 的发展历程, 内核版本号
版本号
一般地,可以从Linux 内核版本号来区分系统是否是Linux 稳定版还是测试版。以版本
2.4.0 为例,2 代表主版本号,4 代表次版本号,0 代表改动较小的末版本号。在版本号中,
序号的第二位为偶数的版本表明这是一个可以使用的稳定版本,如2.2.5,而序号的第二位
为奇数的版本一般有一些新的东西加入,是个不一定很稳定的测试版本,如2.3.1。这样稳
定版本来源于上一个测试版升级版本号,而一个稳定版本发展到完全成熟后就不再发展。
发展历史
1969 年,Unix 最早诞生于贝尔实验室; 1987 年Andrew S. Tanenbaum 开发完成Minix 操
作系统,它也是UNIX 的一种克隆系统; 1991 LinusTorvalds 发布了Linuxv0.01 版本;1994
年3 月,Linux1.0 发布;1996 年6 月,Linux 2.0 内核发布,此内核有大约40 万行代码,并
可以支持多个处理器。此时的Linux 已经进入了实用阶段
– Version 2.0 of June 1996 included SMP support and added support for more
processors.
– Version 2.2 of January 1999
– Version 2.4.0 of January 2001
– Version 2.6 - December 17, 2003
– Version 3.0-July 21,2011
2. 微内核和单一内核
内核:内核是操作系统的内部核心程序,它向外部提供了对计算机设备的核心管理调用。
我们将操作系统的代码分成2 部分。内核所在的地址空间称作内核空间。而在内核以外的
统称为外部管理程序,它们大部分是对外围设备的管理和界面操作。外部管理程序与用户进
程所占据的地址空间称为外部空间。通常,一个程序会跨越两个空间。当执行到内核空间的
一段代码时,我们称程序处于内核态,而当程序执行到外部空间代码时,我们称程序处于用
户态。
微内核的系统有WindowNT,Minix,Mach,etc.单内核的系统有Unix,Linux,etc.
单内核中:(Monolithic kernel)操作系统中所有的系统相关功能都被封装在内核中,
它是个很大的进程,他的内部又能够被分为若干模块 (或是层次或其他)。其模块间的通讯
是通过直接调用其他模块中的函数实现的。它会通过各种方式防止外部程序直接访问内核结
构。程序只能系统调用 (system call)的界面访问内核结构
微内核结构中,操作系统的内核只需要提供最基本、最核心的一部分操作 (比如创建和
删除任务、内存管理、中断管理等)即可,而其他的管理程序 (如文件系统、网络协议栈等)
则尽可能的放在内核之外。这些外部程序可以独立运行,并对外部用户程序提供操作系统服
务,服务之间使用进程间通信机制 (IPC)进行交互,只在需要内核的协助时,才通过一套
接口对内核发出调用请求
二者的区别:
1.单内核
单内核:整个系统是一个大模块,可以被分为若干逻辑模块,即处理器管理、存储器管
理、设备管理和文件管理,其模块间的交互是通过直接调用其他模块中的函数实现的。
单内核模型以提高系统执行效率为设计理念,因为整个系统是一个统一的内核,所以其
内部调用效率很高。
单内核的缺点也正是由于其源代码是一个整体而造成的,通常各模块之间的界限并不特
别清晰,模块间的调用比较随意,所以进行系统修改或升级时,往往 “牵一发而动全身”,
导致工作量加大,使其难于维护。
2.微内核
微内核是指把操作系统结构中的内存管理、设备管理、文件系统等高级服务功能尽可能
地从内核中分离出来,变成几个独立的非内核模块,而在内核只保留少量最基本的功能,使
内核变得简洁可靠,因此叫微内核。
微内核实现的基础是操作系统理论层面的逻辑功能划分。几大功能模块在理论上是相互
独立的,形成比较明显的界限,其优点如下:
·充分的模块化,可独立更换任一模块而不会影响其他模块,从而方便第三方开发、设
计模块。
·未被使用的模块功能不必运行,因而能大幅度减少系统的内存需求。
·具有很高的可移植性,理论上
文档评论(0)