族谱网 头条 人物百科

内核

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:276
转发:0
评论:0
分类内核在设计上,可以概分为宏内核与微内核两大架构。在微内核之下,有一种极端的设计方式,称为外内核。在宏内核与微内核之间,进行妥协的设计,这称为混合内核,但是混合内核能否被列为第三大架构,目前仍然有争议。宏内核单内核的示意图宏内核结构在硬件之上,定义了一个高阶的抽象界面,应用一组原语(或者叫系统调用(Systemcall))来实现操作系统的功能,例如进程管理,文件系统,和存储管理等等,这些功能由多个运行在核心态的模块来完成。尽管每一个模块都是单独地服务这些操作,内核代码是高度集成的,而且难以编写正确。因为所有的模块都在同一个内核空间上运行,一个很小的bug都会使整个系统崩溃。然而,如果开发顺利,单内核结构就可以从运行效率上得到好处。很多现代的宏内核结构内核,如Linux和FreeBSD内核,能够在运行时将模块调入执行,这就可以使扩充内核的功能变得更简单,也可以使内核的核心部分变得更简洁。宏...

分类

内核在设计上,可以概分为宏内核与微内核两大架构。在微内核之下,有一种极端的设计方式,称为外内核。在宏内核与微内核之间,进行妥协的设计,这称为混合内核,但是混合内核能否被列为第三大架构,目前仍然有争议。

宏内核

内核

单内核的示意图

宏内核结构在硬件之上,定义了一个高阶的抽象界面,应用一组原语(或者叫系统调用( System call ))来实现操作系统的功能,例如进程管理,文件系统,和存储管理等等,这些功能由多个运行在核心态的模块来完成。

尽管每一个模块都是单独地服务这些操作,内核代码是高度集成的,而且难以编写正确。因为所有的模块都在同一个内核空间上运行,一个很小的bug都会使整个系统崩溃。然而,如果开发顺利,单内核结构就可以从运行效率上得到好处。

很多现代的宏内核结构内核,如Linux和FreeBSD内核,能够在运行时将模块调入执行,这就可以使扩充内核的功能变得更简单,也可以使内核的核心部分变得更简洁。

宏内核结构的例子:

传统Unix核心

类Unix系统(Unix-like)的核心

DOS

Mac OS(从最初版到Mac OS 8.6版)

OpenVMS

XTS-400

微内核

内核

微内核的示意图

微内核结构由一个非常简单的硬件抽象层和一组比较关键的原语或系统调用组成;这些原语,仅仅包括了创建一个系统必需的几个部分;如线程管理,地址空间和进程间通讯等。

微核的目标是将系统服务的实现和系统的基本操作规则分离开来。例如,进程的输入/输出锁定服务可以由运行在微核之外的一个服务组件来提供。这些非常模块化的用户态服务器用于完成操作系统中比较高级的操作,这样的设计使内核中最核心的部分的设计更简单。一个服务组件的失效并不会导致整个系统的崩溃,内核需要做的,仅仅是重新启动这个组件,而不必影响其它的部分

微内核将许多OS服务放入分离的进程,如文件系统,设备驱动程序,而进程通过消息传递调用OS服务。微内核结构必然是多线程的,第一代微内核,在核心提供了较多的服务,因此被称为"胖微内核",它的典型代表是MACH,它既是GNU HURD也是APPLE SERVER OS的核心,可以说,蒸蒸日上。第二代微内核只提供最基本的OS服务,典型的OS是QNX,QNX在理论界很有名,被认为是一种先进的OS.

微内核结构的例子:

AIX

BeOS

L4微内核系列

Mach(用于XNU、GNU Hurd)

Minix

MorphOS

QNX

RadiOS

VSTa

单内核与微内核的比较

单内核结构是非常有吸引力的一种设计,由于在同一个地址空间上实现所有复杂的低阶操作系统控制代码的效率会比在不同地址空间上实现更高些。

20世纪90年代初,单内核结构被认为是过时的。把Linux设计成为单内核结构而不是微内核,引起了无数的争议(参见塔能鲍姆-林纳斯辩论)。

现在,单核结构正倾向于设计不容易出错,所以它的发展会比微内核结构更迅速些。两个阵营中都有成功的案例。微核经常被用于机器人和医疗器械的嵌入式设计中,因为它的系统的关键部分都处在相互分开的,被保护的存储空间中。这对于单核设计来说是不可能的,就算它采用了运行时加载模块的方式。

尽管Mach是众所周知的多用途的微内核,人们还是开发了除此之外的几个微内核。L3是一个演示性的内核,只是为了证明微内核设计并不总是低运行速度。它的后续版本L4,甚至可以将Linux内核作为它的一个进程,运行在单独的地址空间。

QNX是一个从20世纪80年代,就开始设计的微内核系统。它比Mach更接近微内核的理念。它被用于一些特殊的领域;在这些情况下,由于软件错误,导致系统失效是不允许的。例如航天飞机上的机械手,还有研磨望远镜镜片的机器,一点点失误就会导致上千美元的损失。

很多人相信,由于Mach不能够解决一些提出微内核理论时针对的问题,所以微内核技术毫无用处。Mach的爱好者表明这是非常狭隘的观点,遗憾的是似乎所有人都开始接受这种观点。

混合内核

内核

混合内核的示意图

混合内核的设计理念来自微内核,只不过它让一些微核结构运行在用户空间的代码运行在内核空间,这样让内核的运行效率更高些。这是一种妥协做法,微软视窗就是一个典型的例子。另外还有XNU,运行在苹果Mac OS X上的内核,也是一个混合内核。林纳斯·托瓦兹认为混合核心这种分类只是一种市场营销手法,因为它的架构实现与运作方式接近于宏内核。

混合内核的例子:

Windows NT、Windows 2000、Windows XP、Windows Server 2003以及Windows Vista和Windows 7等基于NT技术的微软视窗操作系统

Mac OS X(使用Mach内核来实现)

BeOS内核

DragonFly BSD

ReactOS内核

XNU(使用Mach内核)

外内核

外内核系统,也被称为纵向结构操作系统,是一种比较极端的设计方法。

它的设计理念是让用户程序的设计者来决定硬件接口的设计。外内核本身非常的小,它通常只负责系统保护和系统资源复用相关的服务。

传统的内核设计(包括单核和微核)都对硬件作了抽象,把硬件资源或设备驱动程序都隐藏在硬件抽象层下。比方说,在这些系统中,如果分配一段物理存储,应用程序并不知道它的实际位置。

而外核的目标就是让应用程序直接请求一块特定的物理空间,一块特定的磁盘块等等。系统本身只保证被请求的资源当前是空闲的,应用程序就允许直接访问它。既然外核系统只提供了比较低级的硬件操作,而没有像其他系统一样提供高级的硬件抽象,那么就需要增加额外的运行库支持。这些运行库运行在外核之上,给用户程序提供了完整的功能。

理论上,这种设计可以让各种操作系统运行在一个外核之上,如Windows和Unix。并且设计人员可以根据运行效率调整系统的各部分功能。

现在,外核设计还停留在研究阶段,没有任何一个商业系统采用了这种设计。几种概念上的操作系统正在被开发,如剑桥大学的Nemesis,格拉斯哥大学的Citrix系统和瑞士计算机科学院的一套系统。麻省理工学院也在进行着这类研究。

参考文献

参见

操作系统


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· Linux内核
历史法律层面许可证原先托瓦兹将Linux置于一个禁止任何商业行为的条例之下,但之后改用GNU通用公共许可证第二版。该协议允许任何人对软件进行修改或发行,包括商业行为,只要其遵守该协议,所有基于Linux的软件也必须以该协议的形式发表,并提供源代码。托瓦兹曾经公开声称将Linux置于GNU通用公共许可证之下是他一生中所做的“最好的决定”。固件争议许可证争议的一个重点是Linux使用固件二进制包以支持某些硬件设备。理察·马修·斯托曼认为这些东西让Linux某部分成为非自由软件,甚至以此散布Linux更会破坏GPL,因为GPL需要完全可获取的源代码。林纳斯·托瓦兹及Linux社区中的领导者,支持较宽松的许可证,不支持理察·马修·斯托曼的立场。社区中的Linux-libre提供完整的自由软件固件。GPL第三版目前Linux使用的版本为GPL2,2007年,自由软件基金会发布了GPL3。而目前存在一...
· 微内核
概论微核心的设计理念,是将系统服务的实现,与系统的基本操作规则区分开来。它实现的方式,是将核心功能模块化,划分成几个独立的进程,各自运行,这些进程被称为服务(service)。所有的服务进程,都运行在不同的地址空间。只有需要绝对特权的进程,才能在具特权的运行模式下运行,其余的进程则在用户空间运行。这样的设计,使内核中最核心的功能,设计上变的更简单。需要特权的进程,只有基本的线程管理,内存管理和进程间通信等,这个部分,由一个简单的硬件抽象层与关键的系统调用组成。其余的服务进程,则移至用户空间。让服务各自独立,可以减少系统之间的耦合度,易于实现与除错,也可增进可移植性。它可以避免单一组件失效,而造成整个系统崩溃,内核只需要重新引导这个组件,不致于影响其他服务器的功能,使系统稳定度增加。同时,操作系统也可以视需要,抽换或新增某些服务进程,使功能更有弹性。因为所有服务进程都各自在不同地址空间运行,...
· 大宋开国卷——宋朝的内核
走在回家的路上,赵匡胤的心变得越来越舒展开朗。离开封近了,离太原远了,四个月的刀剑风霜慢慢回味,他越来越觉得,没有任何东西是他所不满意的。环顾当时的舆论,还有后世的史书,提到宋太祖亲征北汉这一段,大都是“无功而返”或者“失利而回”,乃至于这时跟他走在一起的大兵和臣子们都加倍的小心,生怕惹他邪火上升,导致他们大门牙落地。可赵匡胤的心情就是那么的美——占了大便宜了。甚至目前这个结果是远远比拿下太原,占领北汉全境还要最妙,简直就是妙不可言。想一下,如果拿下了太原,就直接和契丹接壤了。就算契丹人不全力反攻,他都得在边境布置下大量兵力来防守,而且压力只会越来越大。那样的话,他还能腾出多少根手指头,去把南唐、南汉还有南方那么多的小割据集团一一摁死?现在的情况多理想啊,北汉已经完蛋了,就像一栋彻底烂了的房子,他们随时过去踢上一脚,它马上就会倒。而这间“破房子”却还在发挥着为他隔断契丹的重要功能,让他可以...
· 地球内核比想象的更老:老12亿年以上
据报道,最近,美国研究人员对地球上最古老的岩石进行研究后发现,地球的内核实际上可能比以前认为的至少要老12亿年以上,这一发现对整个地球科学界产生了重大影响。此项研究报告发表在最新一期的《地球和行星内部物理学》杂志上。地球内核美国密歇根理工大学(MichiganTechnologicalUniversity)的地球物理学助理教授阿列克谢-斯米尔诺夫(AlekseySmirnov)与罗切斯特大学和耶鲁大学的同事发现,地球的内核实际上可能比以前认为的至少要老12亿年以上。斯米尔诺夫利用古地磁数据进行此项研究,测量地球上最古老的岩石的磁场。通过对世界各地的岩石的抽样调查,他能够估算出地球内核的年龄,他声称这还涉及到板块构造的开始,“在板块俯冲过程中,一个板块俯冲到另一块的下面,下沉到地球的核心,当这个”冷“俯冲板块首次到达液体核边界,于是开始形成固态的内核。”研究表明,这一地球动力学过程,也极大地...
· 楚国屈原-“美政”思想的源流及内核,为啥楚国难容下他?
楚国屈原-“美政”思想的源流及内核,为啥楚国难容下他?屈原,屈氏,名平,出生于楚国秭归(位今湖北宜昌),是战国时期著名的政治家兼诗人。其出身贵族,自小受良好教育,拥有远大的抱负与理想,早年于楚怀王间任左徒、三闾大夫要职,深受战国诸子百家学术影响,崇尚圣贤,推行“美政”,在内任人唯贤,修明法度,外交上主张联合齐国抗击强秦。因触动到了当时贵族的利益,遭流放,一生为国为民,殚精竭虑,但最终遭受排坼,后因听到楚郢攻破后,投江自杀。屈原美政源流屈原出生于战国后期,深受诸子百家思想文化浸润,并将这种文化精神融合进自己的哲学、生命意识中,形成自己的“美政”思想。为了精确寻找源流,我们可以从其作品中探个究竟。屈原是楚辞的代表作家,是楚文化的杰出人物之一,《离骚》中篇章表达了自己的志向,希望楚君改革政治,施行“美政”,同时,美政的实施者要求是一位能够追随先贤圣王“德政”,品德高尚的“美人”,楚君只有远离丑恶...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信