范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

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

  分享下 Intel 傲腾项目关键开发者「彭东」对于这个话题的思考。
  你好,我是LMOS。
  什么?你想成为计算机黑客?
  梦想坐在计算机前敲敲键盘,银行账号里的数字就会自己往上涨。拜托,估计明天你就该被警察逮捕了。真正的黑客是对计算机技术有近乎极致的追求,而不是干坏事。
  下面我就带你认识这样一个计算机黑客,看看他是怎样创造出影响世界的Linux,然后进一步了解一下Linux的内部结构。
  同时,我也会带你看看Windows NT和Darwin的内部结构,三者形成对比,你能更好地了解它们之间的差异和共同点,这对我们后面写操作系统会很有帮助。
  关于Linus
  Linus Benedict Torvalds,这个名字很长,下面简称Linus,他1969年12月28日出生在芬兰的赫尔辛基市,并不是美国人。Linus在赫尔辛基大学学的就是计算机,妻子还是空手道高手,一个"码林高手"和一个"武林高手"真的是绝配啊。
  Linus在小时候就对各种事情充满好奇,这点非常具有黑客精神,后来有了自己的计算机更是痴迷其中,开始自己控制计算机做一些事情,并深挖其背后的原理。就是这种黑客精神促使他后来写出了颠覆世界的软件——Linux,也因此登上了美国《时代》周刊。
  你是否对很多垃圾软件感到愤慨,但自己又无法改变。Linus就不一样,他为了方便访问大学服务器中的资源 ,而在自己的机器上写了一个文件系统和硬盘驱动,这样就可以把自己需要的资源下载到自己的机器中。
  再后来,这成为了Linux的第一个版本。看看,牛人之所以为牛人就是敢于对现有的规则说不,并勇于改变。
  如果仅仅如此,那么也不会有后来的Linux内核。Linus随后做了一个重要决定,他把这款操作系统雏形开源,并加入到自由软件运动,以GPL协议授权,允许用户自由复制或者改动程序代码,但用户必须公开自己的修改并传播。
  无疑,正是Linus的这一重要决定使得Linux和他自己名声大振。短短几年时间,就已经聚集了成千上万的狂热分子,大家不计得失的为Linux添砖加瓦,很多程序员更是对Linus像神明一样顶礼膜拜。
  Linux内核
  好了回到正题,回到Linux。Linus也不是什么神明,现有的Linux,99.9%的代码都不是Linus所写,而且他的代码,也不一定比你我的代码写得更好。
  Linux,全称GNU/Linux,是一套免费使用和自由传播的操作系统,支持类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进行对比,注意我们只是对比它们的内核架构。
  Darwin-XNU内核
  我们先来看看Darwin,Darwin是由苹果公司在2000年开发的一个开放源代码的操作系统。
  一个经久不衰的公司,必然有自己的核心竞争力,也许是商业策略,也许是技术产品,又或是这两者的结合。而作为苹果公司各种产品和强大的应用生态系统的支撑者——Darwin,更是公司核心竞争力中的核心。
  苹果公司有台式计算机、笔记本、平板、手机,台式计算机、笔记本使用了macOS操作系统,平板和手机则使用了iOS操作系统。Darwin作为macOS与iOS操作系统的核心,从技术实现角度说,它必然要支持PowerPC、x86、ARM架构的处理器。
  Darwin 使用了一种微内核(Mach)和相应的固件来支持不同的处理器平台,并提供操作系统原始的基础服务,上层的功能性系统服务和工具则是整合了BSD系统所提供的。苹果公司还为其开发了大量的库、框架和服务,不过它们都工作在用户态且闭源。
  下面我们先从整体看一下Darwin的架构。
  什么?两套内核?惊不惊喜?由于我们是研究Darwin内核,所以上图中我们只需要关注内核-用户转换层以下的部分即可。显然它有两个内核层——Mach层与BSD层。
  Mach内核是卡耐基梅隆大学开发的经典微内核,意在提供最基本的操作系统服务,从而达到高性能、安全、可扩展的目的,而BSD则是伯克利大学开发的类UNIX操作系统,提供一整套操作系统服务。
  那为什么两套内核会同时存在呢?
  MAC OS X(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内核的话,可以自行阅读相应的代码。而在这里,你只要从全局认识一下它的结构就行了。
  Windows NT内核
  接下来我们再看下 NT 内核。现代Windows的内核就是NT,我们不妨先看看NT的历史。
  如果你是90后,大概没有接触过MS-DOS,它的交互方式是你在键盘上输入相应的功能命令,它完成相应的功能后给用户返回相应的操作信息,没有图形界面。
  在MS-DOS内核的实现上,也没有应用现代硬件的保护机制,这导致后来微软基于它开发的图形界面的操作系统,如Windows 3.1、Windows95/98/ME,极其不稳定,且容易死机。
  加上类UNIX操作系统在互联网领域大行其道,所以微软急需一款全新的操作系统来与之竞争。所以,Windows NT诞生了。
  Windows NT是微软于1993年推出的面向工作站、网络服务器和大型计算机的网络操作系统,也可做PC操作系统。它是一款全新从零开始开发的新操作系统,并应用了现代硬件的所有特性,"NT"所指的便是"新技术"(New Technology)。
  而普通用户第一次接触基于NT内核的Windows是Windows 2000,一开始用户其实是不愿意接受的,因为Windows 2000对用户的硬件和应用存在兼容性问题。
  随着硬件厂商和应用厂商对程序的升级,这个兼容性问题被缓解了,加之Windows 2000的高性能、高稳定性、高安全性,用户很快便接受了这个操作系统。这可以从Windows 2000的迭代者Windows XP的巨大成功,得到验证。
  现在,NT内核在设计上层次非常清晰明了,各组件之间界限耦合程度很低。下面我们就来看看NT内核架构图,了解一下NT内核是如何"庄严宏伟"。如下图:
  这样看NT内核架构,是不是就清晰了很多?但这并不是我画图画得清晰,事实上的NT确实如此。
  这里我要提示一下,上图中我们只关注内核模式下的东西,也就是传统意义上的内核。
  当然微软自己在HAL层上是定义了一个小内核,小内核之下是硬件抽象层HAL,这个HAL存在的好处是:不同的硬件平台只要提供对应的HAL就可以移植系统了。小内核之上是各种内核组件,微软称之为内核执行体,它们完成进程、内存、配置、I/O文件缓存、电源与即插即用、安全等相关的服务。
  每个执行体互相独立,只对外提供相应的接口,其它执行体要通过内核模式可调用接口和其它执行体通信或者请求其完成相应的功能服务。所有的设备驱动和文件系统都由I/O管理器统一管理,驱动程序可以堆叠形成I/O驱动栈,功能请求被封装成I/O包,在栈中一层层流动处理。
  Windows引以为傲的图形子系统也在内核中。
  显而易见,NT内核中各层次分明,各个执行体互相独立,这种"高内聚、低偶合"的特性,正是检验一个软件工程是否优秀的重要标准。而这些你都可以通过微软公开的WRK代码得到佐证,如果你觉得WRK代码量太少,也可以看一看REACT OS这个号称"开源版"的NT。
  重点回顾
  到这里,我们了解了Linux、Darwin-XNU和Windows的发展历史,也清楚了它们内部的组件和结构,并对它们的架构进行了对比,对比后我们发现:Linux性能良好,结构异常复杂,不利于问题的排查和功能的扩展,而Darwin-XNU和Windows结构良好,层面分明,利于功能扩展,不容易产生问题且性能稳定。
  下面我们来回顾下这篇的重点。
  首先,我们从一名计算机黑客切入,简单介绍了一下Linus,他由于沉迷于技术,对不好的规则敢于挑战而写出了Linux雏形,并且利用了GNU开源软件的精神推动了Linux后来的发展,这样的精神很值得我们学习。
  然后我们探讨了Linux内核架构,大致搞清楚了Linux内核中的各种组件,它们是系统、进程、内存、储存、网络。其中,每个组件都是从接口到硬件经过了几个层次,组件与组件之间的层次互联调用。这些组件组合在一起,其调用关系形成了一个巨大的网状结构。因此,Linux也成了宏内核的代表。
  为了有所对比,我们研究了苹果的Darwin-XNU内核结构,发现其分层更细,固件层、Mach层屏蔽了硬件平台的细节,向上层提供了最基础的服务。在Mach层之上的BSD层提供了更完善的服务,它们是进程与线程、IPC通信、虚拟内存、安全、网络协议栈以及文件系统。通过Mach中断嵌入表,可以让应用自己决定使用Mach层服务还是使用BSD层的服务,因此Darwin-XNU拥有了两套内核,Darwin-XNU内核层也成为了多内核架构的代表。
  最后,我们研究了迄今为止,最成功的商业操作系统——Windows,它的内核是NT,其结构清晰明了,各组件完全遵循了软件工程高内聚、低偶合的设计标准。最下层是HAL(硬件抽象),HAL层是为了适配各种不同的硬件平台;在HAL层之上就是微软定义的小内核,你可以理解成是NT内核的内核;在这个小内核之上就是各种执行体了,这些执行体提供了操作系统的进程、虚拟内存、文件数据缓存、安全、对象管理、配置等服务,还有Windows的技术核心图形系统。
  思考题
  Windows NT内核属于哪种架构类型?很期待在留言区看到你的分享。

瑞士信贷出什么事了?2008年,美国四大投行之一有着158年历史的雷曼兄弟由于在次贷危机中出现重大亏损而宣布申请破产,从而掀起全球金融市场动荡,引发史无前例的世界金融危机。当时负债6130亿美元的雷曼护住你的存款银行发布最新的通知,以后存钱要记得先看这一点随着社会经济的飞速发展,人们的收入水平逐渐提高。除去必要的日常开支后,相信,如果大多数人手中有剩余资金,他们将希望使用各种方法来获得所拥有的东西,金钱可以变得更有价值。护住你的存款今晨惊闻华为三分天下有其二的丁耘在28公里的晨跑之后再未醒来10月7日深夜,华为内部社区心声社区发布一则讣告华为现任公司监事会副主席丁耘因突发疾病,在10月7日凌晨不幸去世,享年53岁。今天早晨七点在华为家属群里突然看到这个消息,甚是震惊,零跑C01来了,零百加速3。66秒,定位中大型车,为年轻人打造新能源汽车的竞争越来越激烈了,我们也能看到,国产新能源汽车有了很大的进步,是越做越好了,我们今天就介绍一台很有竞争力的中大型新能源汽车,就是零跑C01,这台车一上市,就赢得了很多消RedmiK60配置曝光搭载无线充电骁龙8Plus中关村在线消息今日微博博主曝光了RedmiK60的相关配置信息,新机将搭载新一代骁龙8Plus处理器,普通版支持67W有线充电以及30W无线充电,Pro版本支持120W快充以及30第三代半导体布局提速国产势力能否换道超车?本报记者秦枭北京报道半导体材料目前已经发展至第三代,从传统Si(硅)功率器件IGBT(绝缘栅双极型晶体管)MOSFET(金氧半场效晶体管),到以SiC(碳化硅)和GaN(氮化镓)为盘点刚刚发布的荣耀Play6C的配置参数信息1荣耀Play6C搭载高通5G芯片(具体型号未知),性能方面基本上就别抱太大希望了,日常够用的水平,运行一些大型游戏就比较吃力了正面是一块6。52英寸的LCD直屏,支持90Hz的刷华为P60Pro渲染图曝光荣耀X40GT官宣有大招?华为P60Pro渲染图曝光10月8日,星期六,欢迎收看今天的科技V报,我是Geek枫云,华为Mate50系列旗舰智能手机已经发布,那么接下来用户关心的就是下一代P60系列。现在,网今天,我们把小米户外电源1000Pro摔了,损失惨重?前言望着窗外的大好风景,内心又有多少次想要来一场说走就走的自驾旅行呢!而在户外,电能储备又成为最难解决的问题之一。而笔者了解到,在各家千瓦级别户外电源的激烈竞争情况下,小米进军户外突发!任正非痛失爱将,华为巨星陨落一个科技巨星,陨落了。来源投资家(IDtouzijias)作者老高一个科技巨星,陨落了。全球科技巨头华为10月7日晚间发布了一则令人悲痛的讣告华为监事会副主席丁耘因突发疾病去世,享9月安卓手机性价比榜单来咯!华为Mate50系列入选近日,安兔兔发布了9月份的安卓手机性价比榜单。该榜单根据价格分为五个部分,涵盖了从0到5000元以上的所有产品。榜单具体排名如下01999元价位段,性价比第一的是RedmiNote
姚明现状惹人担忧!现身球赛体重达到400斤,身形臃肿健康隐患大提起来篮球巨星,想必绝大多数国人第一个想到的名字就是姚明。作为世界闻名的篮球运动员,巅峰时期的姚明创造了属于他的辉煌时代,也为中国篮球事业的发展做出了巨大的贡献。退役之后姚明没有考赵丽颖与凤行还没播出,已经曝光12套造型,一套比一套美赵丽颖与凤行又曝光了一组新路透,这一次赵丽颖仍然是一袭白色古装,黑色长发披肩,笑容婉约清丽,已经34岁的她,皮肤状态非常好。赵丽颖本身长了一张讨喜的小圆脸,此前拍剧一直被人嫌弃有些本土新增24110939月7日024时,31个省(自治区直辖市)和新疆生产建设兵团报告新增新冠肺炎本土确诊病例241例(四川69例,内蒙古67例,广东27例,西藏18例,山东15例,广西8例,北京7例,典故卞和典故卞和同源典故三献三献三刖三献玉三献荆山再献甘灭趾刖人哭刖足卞和卞和三献卞和不斲卞和刖卞和耻卞和泣卞和玉卞和胫卞子抱玉卞山璞卞泣卞玉卞璞卞疑和氏三献和氏璧和氏宝和氏愆和氏泪和氏献民进党当局已沦为美政客攫取私利的提款机来源人民网海外版美国共和党参议员葛理汉今年4月窜台时,曾当面要求台湾地区领导人蔡英文购买24架波音787客机,当电视画面流出,岛内舆论为之哗然,民进党当局极力否认,斥之认知作战。近韦伯首次展示系外行星前所未见的惊人细节,距地仅385光年美国宇航局(NASA)的詹姆斯韦伯太空望远镜(JWST)已经捕捉到了它的第一张关于距离地球仅385光年的系外行星的图像,这些图像展示了人类眼睛从未见过的不可思议的细节。韦伯太空望远今日油价9月3日最新9295汽油价格,柴油价格,油价调整或上涨头条创作挑战赛下次油价零售调整预测或上涨0。18元升近三日国际原油出现大跌,国内成品油价格趋势涨势依然坚挺。今天是2022年9月3日星期六,国内成品油价格距离下次调整还有三天,昨日澳大利亚叛变了?主动使用人民币交易,美元恐将成为过去式?老美的噩梦已经开始了,去美元化进程正在加快,其霸主地位马上就会崩塌,就连手底下最忠诚的小弟都开始叛变了,居然主动提出用人民币结算出口到我国的铁矿石,不仅如此,还支持货到付款,运输途刘强东的金牌女助理,30岁名下有427家公司,身家已达180亿文柳洋优秀的人身边,总是伴随着优秀的人。物以类聚,人以群分。说的就是这个道理。说到刘强东大家并不陌生,他一手创办的京东,现已成为国内第一大民企,员工超40万。虽在今年4月7日,刘强欧盟拟对俄天然气限价,或为目前价格的20,俄威胁断供环球时报驻德国特约记者青木欧盟委员会主席冯德莱恩7日表示,将提议对俄罗斯天然气价格实施限制,以削减俄罗斯的财政收入。不过,在能源危机愈发严重的背景下,欧盟的这一提议遭到部分国家反对来啦!iPhone14Pro超长药丸,价格有点意外苹果秋季发布会终于结束啦!发布会提到内容,几乎与泄露信息差不多,如果你有所了解爆料信息,虽然有些是假消息,但爆料真的消息也挺多,先来看看本次发布,亮相产品有哪些?AppleWatc