基本简介 内核分类 1. 单内核 2. 微内核 3. 二者比较 4. 混合内核 5. 外内核 无核介绍 参考信息 发展改进
1. 源代码管理 2. 并行开发
3. 在实际应用中测试 4. Linux测试项目 5. 代码覆盖分析
6. 持续多日的内核回归测试 7. 可扩展测试平台 8. 追踪缺陷 9. 大量信息
10. 内核版本历史 11. 结束语 天文意义 基本简介 内核分类 1. 单内核 2. 微内核 3. 二者比较 4. 混合内核 5. 外内核 无核介绍 参考信息 发展改进
1. 源代码管理 2. 并行开发
3. 在实际应用中测试 4. Linux测试项目 5. 代码覆盖分析
6. 持续多日的内核回归测试 7. 可扩展测试平台
8. 追踪缺陷 9. 大量信息
10. 内核版本历史 11. 结束语 天文意义 展开 编辑本段 基本简介
直接对硬件操作是非常复杂的,所以内核通常提供一种硬件抽象的方法 ?? 内核
来完成这些操作。硬件抽象隐藏了复杂性,为应用软件和硬件提供了一套简洁,统一的接口,使程序设计更为简单。
严格地说,内核并不是计算机系统中必要的组成部分。程序可以直接地被调入计算机中执行,这样的设计说明了设计者不希望提供任何硬件抽象和操作系统的支持,它常见于早期计算机系统的设计中。最终,一些辅助性程序,例如程序加载器和调试器,被设计到机器核心当中,或者固化在只读存储器里。这些变化发生时,操作系统内核的概念就渐渐明晰起来了。
一个更重要的问题是,什么人才要了解内核。或者说,对内核的了解程度,会怎样影响一个人的工作,毕竟,它是复杂的。 编辑本段 内核分类 单内 ?? 内核
核 它为潜在的硬件提供了大量完善的硬件抽象操作。 微内核 只提供了很小一部分的硬件抽象,大部分功能由一种特殊的用户态程序:服务器来完成。
混合内核 它很像微内核结构,只不过它的的组件更多的在核心态中运行,以获得更快的执行速度。
外内核 这种内核不提供任何硬件抽象操作,但是允许为内核增加额外的运行库,通过这些运行库应用程序可以直接地或者接近直接地对硬件进行操作。 单内核 ?? 内核
单内核结构在硬件之上定义了一个高阶的抽象界面,应用一组原语(或者叫系统调用)来实现操作系统的功能,例如进程管理,文件系统,和存储管理等等,这些功能由多个运行在核心态的模块来完成。
尽管每一个模块都是单独地服务这些操作,内核代码是高度集成的,而且难以编写正确。因为所有的模块都在同一个内核空间上运行,一个很小的bug都会使整个系统崩溃。然而,如果开发顺利,单内核结构就可以从运行效率上得到好处。 很多现代的单内核结构内核,如Linux和FreeBSD内核,能够在运行时将模块调入执行,这就可以使扩充内核的功能变得更简单,也可以使内核的核心部分变得更简洁。
单内核结构的例子:
1.传统的UNIX内核,例如伯克利大学发行的版本 2.Linux内核 微内核 ?? 内核
微内核结构由一个非常简单的硬件抽象层和一组比较关键的原语或系统调用组成,这些原语仅仅包括了建立一个系统必需的几个部分,如 线程管理,地址空间和进程间通信等。 微核的目标是将系统服务的实现和系统的基本操作规则分离开来。例如,进程的输入/输出锁定服务可以由运行在微核之外的一个服务组件来提供。这些非常模块化的用户态服务器用于完成操作系统中比较高级的操作,这样的设计使内核中最核心的部分的设计更简单。一个服务组件的失效并不会导致整个系统的崩溃,内核需要做的,仅仅是重新启动这个组件,而不必影响其它的部分 ??
linux系统内核性能评测
微内核将许多OS服务放入分离的进程,如文件系统,设备驱动程序,而进程通过消息传递调用OS服务.微内核结构必然是多线程的,第一代微内核,在核心提供了较多的服务,因此被称为'胖微内核',它的典型代表是MACH,它既是GNU HURD也是APPLE SERVER OS 的核心,可以说,蒸蒸日上.第二代为微内核只提供最基本的OS服务,典型的OS是QNX,QNX在理论界很有名,被认为是一种先进的OS. 微内核的例子: 1.AIX 2.BeOS
3.L4微内核系列
4.Mach, 用于GNU Hurd和Mac OS X 5.Minix 6.MorphOS 7.QNX 8.RadiOS 9.VSTa 二者比较 ?? 内核
单内核结构是非常有吸引力的一种设计,由于在同一个地址空间上实现所有低级操作的系统控制代码的复杂性的效率会比在不同地址空间上实现更高些。
20世纪90年代初,单内核结构被认为是过时的。把Linux设计成为单内核结构而不是微内核引起了无数的争议。
现在,单核结构正趋向于容易被正确设计,所以它的发展会比微内核结构更迅速些。两个阵营中都有成功的案例。微核经常被用于机器人和医疗器械的嵌入式设计中,因为它的系统的关键部分都处在相互分开的,被保护的存储空间中。这对于单核设计来说是不可能的,就算它采用了运行时加载模块的方式。
尽管Mach是众所周知的多用途的微内核,人们还是开发了除此之外的几个微内核。L3是一个演示性的内核,只是为了证明微内核设计并不总是低运行速度。它的后续版本L4甚至可以将Linux内核在单独的地址空间作为它的一个进程来运行。 ?? 内核
QNX是一个从20世纪80年代就开始设计的微内核系统。它比Mach更接近微内核的理念。它被用于一些特殊的领域,在这些情况下由于软件错误导致系统失效是不允许的。例如航天飞机上的机械手,还有研磨望远镜镜片的机器,一点点失误就会导致上千美元的损失。 很多人相信,由于Mach不能够解决一些提出微内核理论时针对的问题,所以微内核技术毫无用处。Mach的爱好者表明这是非常狭隘的观点,遗憾的是似乎所有人都开始接受这种观点。
因篇幅问题不能全部显示,请点此查看更多更全内容