专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

震撼的Linux全景图业界成熟的内核架构长什么样?

  分享下Intel傲腾项目关键开发者彭东对于这个话题的思考。
  你好,我是LMOS。
  什么?你想成为计算机黑客?
  梦想坐在计算机前敲敲键盘,银行账号里的数字就会自己往上涨。拜托,估计明天你就该被警察逮捕了。真正的黑客是对计算机技术有近乎极致的追求,而不是干坏事。
  下面我就带你认识这样一个计算机黑客,看看他是怎样创造出影响世界的Linux,然后进一步了解一下Linux的内部结构。
  同时,我也会带你看看WindowsNT和Darwin的内部结构,三者形成对比,你能更好地了解它们之间的差异和共同点,这对我们后面写操作系统会很有帮助。
  关于Linus
  LinusBenedictTorvalds,这个名字很长,下面简称Linus,他1969年12月28日出生在芬兰的赫尔辛基市,并不是美国人。Linus在赫尔辛基大学学的就是计算机,妻子还是空手道高手,一个码林高手和一个武林高手真的是绝配啊。
  Linus在小时候就对各种事情充满好奇,这点非常具有黑客精神,后来有了自己的计算机更是痴迷其中,开始自己控制计算机做一些事情,并深挖其背后的原理。就是这种黑客精神促使他后来写出了颠覆世界的软件Linux,也因此登上了美国《时代》周刊。
  你是否对很多垃圾软件感到愤慨,但自己又无法改变。Linus就不一样,他为了方便访问大学服务器中的资源,而在自己的机器上写了一个文件系统和硬盘驱动,这样就可以把自己需要的资源下载到自己的机器中。
  再后来,这成为了Linux的第一个版本。看看,牛人之所以为牛人就是敢于对现有的规则说不,并勇于改变。
  如果仅仅如此,那么也不会有后来的Linux内核。Linus随后做了一个重要决定,他把这款操作系统雏形开源,并加入到自由软件运动,以GPL协议授权,允许用户自由复制或者改动程序代码,但用户必须公开自己的修改并传播。
  无疑,正是Linus的这一重要决定使得Linux和他自己名声大振。短短几年时间,就已经聚集了成千上万的狂热分子,大家不计得失的为Linux添砖加瓦,很多程序员更是对Linus像神明一样顶礼膜拜。
  Linux内核
  好了回到正题,回到Linux。Linus也不是什么神明,现有的Linux,99。9的代码都不是Linus所写,而且他的代码,也不一定比你我的代码写得更好。
  Linux,全称GNULinux,是一套免费使用和自由传播的操作系统,支持类UNIX、POSIX标准接口,也支持多用户、多进程、多线程,可以在多CPU的机器上运行。由于互联网的发展,Linux吸引了来自全世界各地软件爱好者、科技公司的支持,它已经从大型机到服务器蔓延至个人电脑、嵌入式系统等领域。
  Linux系统性能稳定且开源。在很多公司企业网络中被当作服务器来使用,这是Linux的一大亮点,也是它得以壮大的关键。
  Linux的基本思想是一切都是文件:每个文件都有确定的用途,包括用户数据、命令、配置参数、硬件设备等对于操作系统内核而言,都被视为各种类型的文件。Linux支持多用户,各个用户对于自己的文件有自己特殊的权利,保证了各用户之间互不影响。多任务则是现代操作系统最重要的一个特点,Linux可以使多个程序同时并独立地运行。
  Linux发展到今天,不是哪一个人能做到的,更不是一群计算机黑客能做到的,而是由很多世界级的顶尖科技公司联合开发,如IBM、甲骨文、红帽、英特尔、微软,它们开发Linux并向Linux社区提供补丁,使Linux工作在它们的服务器上,向客户出售业务服务。
  Linux发展到今天其代码量近2000万行,可以用浩如烟海来形容,没人能在短时间内弄清楚。但是你也不用害怕,我们可以先看看Linux内部的全景图,从全局了解一下Linux的内部结构,如下图。
  啊哈!是不是感觉壮观之后一阵头晕目眩,头晕目眩就对了,因为Linux太大了,别怕,下面我们来分解一下。但这里我要先解释一下,上图仍然不足于描述Linux的全部,只是展示了重要且显而易见的部分。
  上图中大致分为五大重要组件,每个组件又分成许多模块从上到下贯穿各个层次,每个模块中有重要的函数和数据结构。具体每个模块的主要功能,我都给你列在了文稿里,你可以详细看看后面这张图。
  不要着急,不要心慌,因为现在我们不需要搞清楚这些Linux模块的全部实现细节,只要在心里默念Linux的模块真多啊,大概有五大组件,有好几十个模块,每个模块主要完成什么功能就行了。
  是不是松了口气,先定定神,然后我们就能发现Linux这么多模块挤在一起,之间的通信主要是函数调用,而且函数间的调用没有一定的层次关系,更加没有左右边界的限定。函数的调用路径是纵横交错的,从图中的线条可以得到印证。
  继续深入思考你就会发现,这些纵横交错的路径上有一个函数出现了问题,就麻烦大了,它会波及到全部组件,导致整个系统崩溃。当然调试解决这个问题,也是相当困难的。同样,模块之间没有隔离,安全隐患也是巨大的。
  当然,这种结构不是一无是处,它的性能极高,而性能是衡量操作系统的一个重要指标。这种结构就是传统的内核结构,也称为宏内核架构。
  想要评判一个产品好不好,最直接的方法就是用相似的产品对比。你说Linux很好,但是什么为好呢?我说Linux很差,它又差在什么地方呢?
  下面我们就拿出Windows和macOS进行对比,注意我们只是对比它们的内核架构。
  DarwinXNU内核
  我们先来看看Darwin,Darwin是由苹果公司在2000年开发的一个开放源代码的操作系统。
  一个经久不衰的公司,必然有自己的核心竞争力,也许是商业策略,也许是技术产品,又或是这两者的结合。而作为苹果公司各种产品和强大的应用生态系统的支撑者Darwin,更是公司核心竞争力中的核心。
  苹果公司有台式计算机、笔记本、平板、手机,台式计算机、笔记本使用了macOS操作系统,平板和手机则使用了iOS操作系统。Darwin作为macOS与iOS操作系统的核心,从技术实现角度说,它必然要支持PowerPC、x86、ARM架构的处理器。
  Darwin使用了一种微内核(Mach)和相应的固件来支持不同的处理器平台,并提供操作系统原始的基础服务,上层的功能性系统服务和工具则是整合了BSD系统所提供的。苹果公司还为其开发了大量的库、框架和服务,不过它们都工作在用户态且闭源。
  下面我们先从整体看一下Darwin的架构。
  什么?两套内核?惊不惊喜?由于我们是研究Darwin内核,所以上图中我们只需要关注内核用户转换层以下的部分即可。显然它有两个内核层Mach层与BSD层。
  Mach内核是卡耐基梅隆大学开发的经典微内核,意在提供最基本的操作系统服务,从而达到高性能、安全、可扩展的目的,而BSD则是伯克利大学开发的类UNIX操作系统,提供一整套操作系统服务。
  那为什么两套内核会同时存在呢?
  MACOSX(2011年之前的称呼)的发展经过了不同时期,随着时代的进步,产品功能需求增加,单纯的Mach之上实现出现了性能瓶颈,但是为了兼容之前为Mach开发的应用和设备驱动,就保留了Mach内核,同时加入了BSD内核。
  Mach内核仍然提供十分简单的进程、线程、IPC通信、虚拟内存设备驱动相关的功能服务,BSD则提供强大的安全特性,完善的网络服务,各种文件系统的支持,同时对Mach的进程、线程、IPC、虚拟内核组件进行细化、扩展延伸。
  那么应用如何使用Darwin系统的服务呢?应用会通过用户层的框架和库来请求Darwin系统的服务,即调用Darwin系统API。
  在调用Darwin系统API时,会传入一个API号码,用这个号码去索引Mach陷入中断服务表中的函数。此时,API号码如果小于0,则表明请求的是Mach内核的服务,API号码如果大于0,则表明请求的是BSD内核的服务,它提供一整套标准的POSIX接口。
  就这样,Mach和BSD就同时存在了。
  Mach中还有一个重要的组件Libkern,它是一个库,提供了很多底层的操作函数,同时支持C运行环境。
  依赖这个库的还有IOKit,IOKit管理所有的设备驱动和内核功能扩展模块。驱动程序开发人员则可以使用C面向对象的方式开发驱动,这个方式很优雅,你完全可以找一个成熟的驱动程序作为父类继承它,要特别实现某个功能就重载其中的函数,也可以同时继承其它驱动程序,这大大节省了内存,也大大降低了出现BUG的可能。
  如果你要详细了解Darwin内核的话,可以自行阅读相应的代码。而在这里,你只要从全局认识一下它的结构就行了。
  WindowsNT内核
  接下来我们再看下NT内核。现代Windows的内核就是NT,我们不妨先看看NT的历史。
  如果你是90后,大概没有接触过MSDOS,它的交互方式是你在键盘上输入相应的功能命令,它完成相应的功能后给用户返回相应的操作信息,没有图形界面。
  在MSDOS内核的实现上,也没有应用现代硬件的保护机制,这导致后来微软基于它开发的图形界面的操作系统,如Windows3。1、Windows9598ME,极其不稳定,且容易死机。
  加上类UNIX操作系统在互联网领域大行其道,所以微软急需一款全新的操作系统来与之竞争。所以,WindowsNT诞生了。
  WindowsNT是微软于1993年推出的面向工作站、网络服务器和大型计算机的网络操作系统,也可做PC操作系统。它是一款全新从零开始开发的新操作系统,并应用了现代硬件的所有特性,NT所指的便是新技术(NewTechnology)。
  而普通用户第一次接触基于NT内核的Windows是Windows2000,一开始用户其实是不愿意接受的,因为Windows2000对用户的硬件和应用存在兼容性问题。
  随着硬件厂商和应用厂商对程序的升级,这个兼容性问题被缓解了,加之Windows2000的高性能、高稳定性、高安全性,用户很快便接受了这个操作系统。这可以从Windows2000的迭代者WindowsXP的巨大成功,得到验证。
  现在,NT内核在设计上层次非常清晰明了,各组件之间界限耦合程度很低。下面我们就来看看NT内核架构图,了解一下NT内核是如何庄严宏伟。如下图:
  这样看NT内核架构,是不是就清晰了很多?但这并不是我画图画得清晰,事实上的NT确实如此。
  这里我要提示一下,上图中我们只关注内核模式下的东西,也就是传统意义上的内核。
  当然微软自己在HAL层上是定义了一个小内核,小内核之下是硬件抽象层HAL,这个HAL存在的好处是:不同的硬件平台只要提供对应的HAL就可以移植系统了。小内核之上是各种内核组件,微软称之为内核执行体,它们完成进程、内存、配置、IO文件缓存、电源与即插即用、安全等相关的服务。
  每个执行体互相独立,只对外提供相应的接口,其它执行体要通过内核模式可调用接口和其它执行体通信或者请求其完成相应的功能服务。所有的设备驱动和文件系统都由IO管理器统一管理,驱动程序可以堆叠形成IO驱动栈,功能请求被封装成IO包,在栈中一层层流动处理。
  Windows引以为傲的图形子系统也在内核中。
  显而易见,NT内核中各层次分明,各个执行体互相独立,这种高内聚、低偶合的特性,正是检验一个软件工程是否优秀的重要标准。而这些你都可以通过微软公开的WRK代码得到佐证,如果你觉得WRK代码量太少,也可以看一看REACTOS这个号称开源版的NT。
  重点回顾
  到这里,我们了解了Linux、DarwinXNU和Windows的发展历史,也清楚了它们内部的组件和结构,并对它们的架构进行了对比,对比后我们发现:Linux性能良好,结构异常复杂,不利于问题的排查和功能的扩展,而DarwinXNU和Windows结构良好,层面分明,利于功能扩展,不容易产生问题且性能稳定。
  下面我们来回顾下这篇的重点。
  首先,我们从一名计算机黑客切入,简单介绍了一下Linus,他由于沉迷于技术,对不好的规则敢于挑战而写出了Linux雏形,并且利用了GNU开源软件的精神推动了Linux后来的发展,这样的精神很值得我们学习。
  然后我们探讨了Linux内核架构,大致搞清楚了Linux内核中的各种组件,它们是系统、进程、内存、储存、网络。其中,每个组件都是从接口到硬件经过了几个层次,组件与组件之间的层次互联调用。这些组件组合在一起,其调用关系形成了一个巨大的网状结构。因此,Linux也成了宏内核的代表。
  为了有所对比,我们研究了苹果的DarwinXNU内核结构,发现其分层更细,固件层、Mach层屏蔽了硬件平台的细节,向上层提供了最基础的服务。在Mach层之上的BSD层提供了更完善的服务,它们是进程与线程、IPC通信、虚拟内存、安全、网络协议栈以及文件系统。通过Mach中断嵌入表,可以让应用自己决定使用Mach层服务还是使用BSD层的服务,因此DarwinXNU拥有了两套内核,DarwinXNU内核层也成为了多内核架构的代表。
  最后,我们研究了迄今为止,最成功的商业操作系统Windows,它的内核是NT,其结构清晰明了,各组件完全遵循了软件工程高内聚、低偶合的设计标准。最下层是HAL(硬件抽象),HAL层是为了适配各种不同的硬件平台;在HAL层之上就是微软定义的小内核,你可以理解成是NT内核的内核;在这个小内核之上就是各种执行体了,这些执行体提供了操作系统的进程、虚拟内存、文件数据缓存、安全、对象管理、配置等服务,还有Windows的技术核心图形系统。
  思考题
  WindowsNT内核属于哪种架构类型?很期待在留言区看到你的分享。

银行机关工作4年,硕士,每天做杂事,领导不负责,工作养老氛围很重,想辞职,大家可以给点意见吗?所谓银行机关,一般指的是银行网点以外的总分行部门。我就在总行部门工作过,对这种部门的工作情况相对较熟悉。总体来说,银行机关部室的工作有以下几个特点一进入门槛较高以校园招聘为例,如果一个人的工资是8000元一个月,有时还不到,这样的一个人赌博输了60万还有得救吗?1。我亲眼看到身边一个同事,工资只有2000,原本有房有车家庭条件也不错,日子很潇洒,退伍回来,退伍还有几万块补贴,结果输了,还倒欠了七八万,不甘心,接着赌,没有资本就去借钱,同事物业存在不符合人心,应该取消物业,由居委会统一服务,你认同吗?物业公司的存在,看谁是管理它,如果由街道办事处管理是可行的,因为它代表的是政府部门。现在物业公司由个人承包,而有的不少是涉黑社会公司,物业费很高,欺压业主,业主却成了管理对象,所以三四线事业单位一个月工资3000,为什么很多人挤破头想进?月工资3000,但工资以外的部分呢?1月工资只是收入的一部分。以我们十八线小城为例,事业单位每年还有精神文明奖和单位考核奖4W多,年底13薪,再加上公积金,每个月1W以上妥妥地。算普通人负债50多万逾期,该选择小生意还是本分上班?可以考虑找个时间宽松的工作,再加上做些兼职副业,这样每个月多少有工资可以应付生活,兼职赚的钱可以慢慢还款。当然兼职选得好,你会发现说不定兼职赚的都比正业赚得多。至于你那50多万的负我有驾照,但我名下无车辆。现在驾照有违章,是什么情况?什么情况?名下无车辆,驾照却有违章。对于这种情况,除非有以下几种情况发生。正常情况下,电子设备拍摄的违章都是车辆违章,不涉及驾照。只是在处理违章时,才要拿驾照去处理。所以,电子拍摄你还在继续买彩票吗?感谢邀请!本人是个老彩民,但是现在很少买彩票了,第一次接触彩票还是十几年前,记得第一次买彩票,对彩票规则不懂,以为必须7个数字全对上才有钱,那个时候住的地方就有彩票店,第一次进去玩如果女干部55岁退休了,怎么才能生活得更有意义?今个月我刚55岁退休,刚好不用上班就碰到疫情,每天宅在家,吃了睡,睡了吃,感觉得非常幸福,不用上班,没有压力,不用工作,就有饭吃,想干什么就干什么,随心所欲,感觉非常美好,这样生活请客聚餐该如何点菜?点菜是一门学问,既要保证色香味俱全,还要考虑到营养方面。不要以为在餐馆点菜没什么技术,其实点菜的技巧也是一门学问哦,当你和朋友一起去聚餐的时候,该怎么点菜,点什么菜合适,这些都是需为什么湖南的叫湖南大学,江西的叫南昌大学不叫江西大学?南昌大学最初就是江西大学和江西工业大学合并而来。未保留江西大学名称,考虑了两家大学的感受,最起码在字面上避免了被吞并的感觉。以前是江西大学,和原来的江西工学院合并后改名成了南昌大学中小学正高级教师,高级教师,一级教师退休后每月工资相差多少?在同等情况下,三者相比,退休之后每月工资相差与其职称差别是相对应的。有一个2015年退休的高级教师,其养老金是6300多元,比同一单位同一地区的另一个2016年退休的一级教师的养老
公司交社保,为啥还要分A类B类C类?各有何区别?两种方式,一种是个人缴纳社保,分为三挡,低中高三档,根据个人缴纳社保时进行选择缴纳,每个地区缴纳标准不同。另外一种模式人进了社会这个大染缸,不得不接受现实,身在江湖,无形中就被贴了朋友第一次来深圳,你会带她去哪些地方游玩?我在深圳也待了五六年了,比较喜欢户外风景一类的,给题主推荐几个吧莲花山公园,免费,在福田市区,山不高,属于公园休闲一类,山顶有邓爷爷的铜像,视野非常好,分享两张图片,这是我爸妈来深35岁不交社保,每年存1万块,存20年,够养老吗?哈哈,这倒是一个有点意思的话题,我们不妨通过算账对比的方式来看一下,究竟是一年存1万划算还是缴纳20年的养老保险领取养老金划算。第一,35岁不交社保,每年存1万能够养老吗?35岁开现在发觉路面都是网约车,真的这么好做吗?根本不好做!最挣钱的时候已经过去了!现在做网约车司机,到最后你会发现,除了留下一身的毛病和迷茫之外,一无所获!宁可做其他工作,也不要去做网约车司机!去年因为疫情失业我跑过10个月的你吃过最好的美食是什么?感谢您的提问77小哥为您作答,你吃过最好的美食是什么?天下之大可以说是美食遍地每个人的口味不同,心中所认知的美食也截然不同,那么我心中理解吃过最好的美食有两道,那是儿时来自父母制作新疆的拉面做得好还是兰州拉面做得好?这样说吧,新疆的拉条子和新疆的兰州牛肉面,都比兰州拉面(兰州牛肉面)做得好!而且好的不是一点点,尤其是新疆拉条子,吃口爽滑筋道,面香独特,加上拌菜,用搪瓷茶盘吃,可谓是风华绝代!面在昆明跑曹操靠谱吗?记得有一个宋丹丹和赵本山合演的一个回答奥运知识的小品,当提问者提问什么最快时,宋丹丹马上抢答,说是曹操,为什么说是曹操呢?她解释说,人们常说,说曹操曹操就到,因此曹操是最快的。这只长沙河西房子最好的3个地方,梅溪湖,洋湖,滨江新城,你会选择哪里?为什么呢?先选择,再解释。滨江新城梅溪湖南湖。解释之前,先做个问答题。这三个板块能带来什么?滨江新城位于湘江西岸,市政府边,定位湖南省金融中心,复合型都市中心CBD,面积6。7平方公里。带来中国农村现新青年创业潮,他们的收入远远高于城市白领,年薪甚至几十上百万,怎么看?问中国农村现新青年创业潮,他们的收入远远高于城市白领,年薪甚至几十上百万,怎么看?对于这个问题农人是真的感同身受,儿时的伙伴有在城市工作的,有在家里发展的,回来一聚,在城市发展的很在湖南岳阳,哪个价位的白酒适合办酒席?现在办酒席,都分高中低档好几个档次,就像你去酒店问一桌饭菜的价格一样,都分好几个档次的,实际所用的酒和能承受的价格是相关联的。目前,岳阳地区办酒席一般高端白酒一般是五粮液,国窖,梦如何评价俄罗斯的经济?有多穷直接看他们官方结论吧。今年4月俄国家统计局公布了一份统计资料,以去年ZF划定的维持生存最低标准,月收10722卢布为基准线,以最低标准2,月收21444卢布为贫困线,全俄有1
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网