00:04
呃,从CPU开始到开机,现在我们终于聊到操作系统了,老大终于闪亮登场,好吧,呃,剩下的大部分的时间,我都是在聊聊老大的内容,OK。启动时硬盘没有是什么意思?啥啥意思?硬盘没有就是没有插紧呗,还能什么意思,没有连上呗。嗯。好,我们来聊这个操作系统的一些知识,呃,这个我在公开课上也讲过不少,当然这个内容都比较简单,有一些呢,我就快速过,从鸿蒙开始聊操系统呢,从196几年吧,如果没记错的话开始,一直到现在已经经历了好多好多代了,里面的各种各样的悲欢离合的故事也都特别多。嗯。衍生到现在呢,衍生了各种各样不同分类的操作系统,呃,有什么。
01:07
做嵌入式的是吧,哎,比较小的,跑在一个比较小的资源上的,呃,有PC的服务器的分又分各种各样不同的门派和类别,有Linux的,Unix的,现在又分成ma的,可以自成一派的。呃,Windows的这个就不用说了,呃,又蹦出来我们的鸿蒙,呃,号称号称要做将来的物联网的第一操作系统,当然我是希望他成功了,能不能成呢,还得拼。开辟鸿蒙谁为情种是吧?任正非想做开辟鸿蒙的一个人,好,所以他叫鸿蒙。呃,操系统的概念和理论呢,超级多,操系统呢在计算机的整个体系里头,课程体系里头也是比较难的一门课,如果你是计算机系的,我相信你应该会有一些印象,操系统这门课要考试进来的话,难度还是挺大的,呃,我我给大家补的呢,就是Java程序员,我认为你应该掌握的一些知识啊,至于说它里边的每一个结构,里面的每一个位,每一个比特都代表什么?
02:21
这个事儿咱们就算了,好吧,我们先我就我我现在觉着呢,教东西也好,学东西也好,应该是分层的,就是说一个东西的知识体系你会,你能够慢慢体会得到,每一个点上如果往下挖,它都会挖的非常非常深,学东西的时候应该是一层一层来学,而并不是用这样的顺序来学,学到这个点之后,先把这个是点挖特别深,再回来,到另外一个点又挖特别深再回来,而是说应该先把大块的先走完,先学完最初级的这一层,在某个点上呢,再往下深挖一点又一层。这层的相应的东西知识学完了之后呢,再往下深挖一点又一层,所以它是用一个圆的方式不断的往外扩张,而并不是那种张牙舞爪的学习方式,咣叽到这儿来又回来,咣叽又到这儿又回来,这个学习方式就太痛苦。
03:14
嗯。各种操作系统呢,由于非常非常多,我们就只是从鸿蒙呢,只是说蹭个蹭个热点从它开始聊而已啊,鸿蒙或者叫微内核,它是针对5G和LT的。呃,号称叫全场景的弹性部署开源,还有它的方舟编译器,号称比较牛,编译一次呢,各种一各种程序,各种硬件上,你就从此之后不用再编译了,拿过来之后到处去运行。但实际上目前按照余承东的讲法,余承东那个是华为的执行总裁了,目前是他就是总裁轮流制,目前是余承东,余成东呢,按照他的讲法,实际上现在的这个鸿蒙还是一个半成品,他是Linux内核和原来华为自己的操作系统的一个内核,叫light OS,它们两个的一个组合。
04:09
现在是一个半成品啊,是一个混在一起的啊。呃,还目前还没有完全统一,呃,余成龙去年说要要用花三年时间才能把这两个统一起来,这个我们只能拭目以待,等着就行了,好吧。我们在这儿呢,他这些特性呢,我就在这儿不多说了,不是讲公开课,我不跟你不跟你聊这些没有用的东西啊嗯。五个主,它这些特性呢,也最主要就来源于这个微内核的概念,如果没有这个概念的话,所谓的什么弹性部署,所谓全场景,所谓5G和LT,其实都是完成不了的,所以它的核心概念就是微内核,呃,在这儿呢,就探讨出来,就有有一有一个点就需要探讨,就是到底。什么是内核?那什么就是微内核?和微内核相关的有什么其他的不同的架构吗?有。
05:06
呃,首先聊我们说硬件起到了操作系统之后,整个硬件就归他所有了,包括CPU。以后的所有的事都要请教他,都要找他,他他是什么?他叫操作系统,叫operating system,操作系统是个什么东西,什么概念,如果你看书上的那种。超级学术化的定义的话,它会比较枯燥,我觉得你自己大多数人都能理解,它其实就是一个特殊的软件,它也是个软件,它只不过这个软件比较特殊,是所有软件的老大。他一边管理着硬件资源,一边对外提供服务,所以大家伙起了机器之后,你跟打交道的这个东西就是操作系统,我们的Windows Linux这些全是操作系统的概念。一边管着硬硬件,一边呢提供一些其他软件方面的接口。
06:02
对对,我们的人提供来提供服务,好,这叫操系统啊,我觉得学术化的概念我就不想给了,你们自己去理解就完了,多数人也没有人向你考什么操作系统的,到底是个学术上什么概念啊,没没没没有这个意思啊,系统软念啊。呃,所以他两件事儿,第一个是管理硬件,第二个是管理应用,他就干这两件事儿。一个是向上,一个是向下,承上启下的这么一个软件叫操作系统。那么管理硬件是管理什么呢?和内存打交道,和硬盘打交道,和CPU打交道。和显卡打交道,和总线打交道,好,这都是操作系统干的事儿,一个是管理应用,比如说对你进行进程管理。我们所有的程序跑到操作系统上,对他来说都是一个进程,一会儿我们再聊进程到底是一个什么最核心,在操作系统看起来啊,最核心的,最底层的,它到底是个什么概念?再说。操作系统呢分成目前的多数的操作系统都分成两层,第一层呢叫做kernel,就是内核操作系统内核就最核心的那块,最核心为什么到最核心,是因为内核管理了硬件,所以记着这一点就行了。内核内核有什有什么作用,最主要的内核管理硬件。
07:17
其他的有些外围的。不像不是特别重要的这些基本上都是跟和谁打交道,和应用程序打交道的这些。这是内核,和应用程序打交道,这部分就外围程序。以后我们聊操作系统,听我说。以后聊操作系统聊的是Linux。好吧,如果没有他特殊情况说明的话,就是Linux不是Windows,也不是sor,也不是Mac。为什么Windows不开源?是鬼知道它内部怎么玩的,虽然你有时候从外面看是一个黑盒子,但是大概能猜出来一边是怎么玩,但是具体怎么玩你不知道。
08:02
所以不要去聊Windows也没有任何用处,我们服务器也没有人用Windows。这是为什么好多学点net的人,到到后来他的发展性不如学Java人好的原因。服务器没有。全是Linux Windows真的很少。嗯。呃,我们也不聊unix,有有一些unix已经被闭园了,你比如说sorry啊sorry,好像是是开源,现在还比如说那个那个Mac Mac实际上是unix一个分支啊,但是呢,它已经闭园了,你也不用去聊它,不用去管它。我们就是以Linux为主就行了,好吧,也没有几个服务器是用Mac的,没有。所以我们聊操作系统以后,记住了聊的就是Linux,不聊其他的。呃,在这儿呢,我也推荐一本书,关于Linux,我觉得这本书呢,写的还是比较浅显易懂,并没有特别特别深的,像你深究每一个为每一位都代表什么,像深就深入Linux那核原理就那么特别特别特别复杂的那本书,虽然很经典,但是它实在太难了。
09:13
在这儿我要,我要大家推荐一本书,鸟哥我去。那个是应用层面的。那应用层面的书你自己随便找啊,或者找找找都不用找,你听那个梁老师给大家讲的入门就行了,应用层面的,应用层面就是命令怎么用,你还值当的去给你推荐一本书吗?那种书我从来都不推荐。呃,操作系统层面的,好吧,这本书叫Linux内核设计与实现。Linux内核设计与实现,好,你们记下来好吧。
10:01
换一本书推荐,应该是这么说,相关书籍推荐的话。这个源码解析有点难啊,大家还是算了,这个这个这个就算了。换成一本书啊,换一本。叫Linux内核设计与实现。这本书名字看上去很大,例子内核设计与实现,诶,但实际上我翻了翻,它是介于什么层面的一本书呢?是介于源码分析和应用中间的这本书,是就就是正好它承上启下,把中间的这个这个呃,一个鸿沟给。呃,填给填了,写的还挺不错,呃,我翻了几张,我觉得他很浅显的,用很平实的一个语言,就把那个Linux内核的一个原理,哎,就给你勾勒出来了,我觉得这本书写的还是很不错的,当然有些章节写的一般,但是开卷有益,如果你。
11:02
经济上允许,你就买一本。不允许,你就弄找一本PDF版的是吧,翻一翻看,当然现在呢,你也不用翻,先听老师讲,老师讲完之后你再去翻的时候,你会省好多力气,好吧。啊,我小怪兽,我们Linux教材哦是吗?这是你们Linux教材啊,挺好懂的,对对,这本书写的叫做平时易懂,我觉得还是不错的啊。啊,那我们来说,呃,Kernel的概念,Kernel就内核,内核是最重要的内核,和硬件打交道,管理最核心最核心的内容。好内核主要是做什么?它主要是和硬件打交道啊,但但是内核它也会接触上层的东西嘛,所以它肯定是也有上层相关的,好作为内核来说,它最做的最多的功能这么几块。
12:02
管理内存,管理CPU,管理其他的硬件设备。管理文件系统。好进程调度。其他的你都可以认为在和硬件打交道,其实文件系统呢,也是一个虚文件系统,在Linux里面,呃,但是简单,你可以认为都是和硬件在打交道,管理管硬件就行了啊,管硬盘,管内存,管管管,管其他的各种设备,然后呢,还有一块就是进程调度。这是我在我们整个这个课程的第一版里头,主要给大家讲内容啊,就讲这么多,基本上面试也就面这些。作为科来说呢,它有好几种模式。我们平时。在我们自己的机器里头,它呢就可以称之为红内核,然后刚才我们所说,呃,鸿蒙叫微内核,呃对应的概念叫红内核。红内核什么意思?就是这些东西,这些个相关的程序全都装一块儿。
13:04
装到一起。存到一起。放到一块内存里,好,这个叫红内核,好,那如果微内核,微内核什么概念?微内核就是说我有一个最核心,最核心的可呢,它其实只有一个功能,我告诉你这哥们儿,微内核就只有一个功能,就是这个功能进程调度。嗯,我们我我我来好好想一下啊,我们一般的电脑就是我们普通接触的PC机手机。都是红内核,红内核什么意思,就是你的。Kernel,你的CPU的这个这个调度,你的内存的管理,你的中断啊,你的应用程序,你的文件系统这些东西啊。放到内存的一块位置,一块儿内存里头去,他不可能分开啊呃,那不可能说说那个我我我我这个CPU调度,我放到别的芯片上去,然后呢,我的内存啊管理上这个程序,我放到另外一块儿芯片上去,不是这样的。
14:04
这是红内核,好,那微内核什么概念?微内核的概念就是真的我的核心啊,我的核心是在一块芯片上,或者就在一块内存里头。但是其他这些都跟我不在一块儿,这就叫微内核。那如果你跟微内核系统打交道的话,你跟红内核系统打交道,你肯定这个人去,我我说去内存去访问一个东西,我我去文件读读一个东西,好,那这个。红内核呢,他就直接去去从里面自己自己找个程序对吧,自己找个程序,然后去直接去访问硬盘就读出来了,但是微内核什么概念,微内核的概念就是哥们儿,我跟内核说了啊,我这个应用程序我需要去硬盘读一个。啊,微内核说啊,等会儿啊,我这儿没有读硬盘的程序,我给你找找他在哪儿啊,他在另外一个芯片上,在这儿呢,或者甚至通过网络。通过局域网。
15:01
通过我自己家里的家庭网。我找到他其实是在另外,就是说他原来是在冰箱里。有人往冰箱里取东西啊,我去找那个冰箱找到啊,原来哥们儿你在这儿呢,好,我把要求你给我去干一件事,你再给我返回给内盒,内盒再返回给他。好,这叫做win。所以微内核、宏内核的概念,我觉得大家就应该能理解了,为什么鸿蒙说它是面向物联网的操作系统,面向万物互联的操作系统,面向5G的。为什么?因为5G的设备,物联网的设备,这些东西都不支持一个超级大的内核存在,那个超级大内核太耗资源了,我就用一个特别小的一个核心,它本身一块一一块一个冰箱上的那个,那个那个CPU,那个芯片,资源本身就没多少好装一个特别小的内核进去没有问题,我需要用其他的时候没有关系,我跟它连上就可以了。
16:05
可插拔式的微内核的设计好,这叫做。鸿蒙威的设计。它和原来的PC不一样,所以有些人不了解的时候就会说,哇,华为是不是要干掉微软了?华为是不是要干掉安卓了?No nono,完全不是一个概念,好吧,这就是微服务的概念。千万别这么认为,就是说有些东西他已经占据了这个市场先机的情况下,你想把它干掉挺费劲的,超级难。诶,但是呢,由于新的事物出现了,5G出现了,将来大家伙对于万物互联的这种需求特别广,好,那这个时候红内核不适合,这时候我推出我的操作系统,没准在将来。我会占有一席之地,甚至占有统治地位,没准像原来的PC时代,那就是window,就是Windows加英特尔它的统治地位,没准像手机时代,就是安卓加ARM的统治地位,没准将来的IOT。
17:09
5G万物互联的时代,说不准就是麒麟加上鸿蒙。芯片和操作系统,它们的结合太紧密了。所以微内核就干一件事。应用程序的调度。你要问我CPU的知识,我去找另外一块芯片上呢,我会告诉你,你在哪儿呢,来告诉我一下,反馈给我,我再反馈给用户。当然微内核、红内核的区别一说,说完这个你应该就明白了,你访问一个红内核的时候,你要访问一些硬件上的东西,你效率会高很多,因为他们在一起。但是对于你访问微克来说,它需要到另外一个地儿去调度,调度完了之后再反馈给你,它的效率会偏低一些。
18:01
这是它的缺点,它的优点就在于它部署起来特别灵活,所以它叫弹性部署。为什么叫弹性部署?如果你资源特别小,就是一个呃,也就是一个SIM卡,那我给你布一个kernel就可以了,如果你资源稍微大一些,我可以给你布一个kerel,再加一个CPU调度。两两两个模块,如果你更大,我可以把三个模块一块补进来。可插拔式的,这个模块不要了,拿走,这个模块不要了,拿走灵活。符合万物互联的特点,因为万物互联就在于不同的物件,不同的东西,它的那个硬件资源是不一样的,有的内存大,有的内存小,有的酸酸的速度快,有的酸的速度慢。啊,我的操作系统弹性的来对你来进行匹配,这叫做微内核叫弹性部署,这就余承东讲弹性部署的概念,所以你翻回头去,你看那个华为说他自己的这个操作系统的这些个基本的概念。
19:07
你相互相信就能理解了,其实它最核心的就在于微内核上,针对5G和LT Internet things叫万物互联。针对全场景的手机、PC、平板、车辆、智能穿戴、家居设备都可以,因为它的内核非常小,而且还可以弹,还可以模块上的网上插拔,所以他可以进行弹性部署开源,这就不得说了啊。所以前面的这些市场化的概念都是来源于一个技术概念,就叫做微内核,OK,不知道说清楚没?
我来说两句