我用gulp4.0搭建一个前端脚手架
但都在一个体系内,总要想个办法来打破次元壁呀,这个重要的工作由谁来做呢?就是操作系统。所以从体系架构的角度看,操心系统是处在所有硬件的最上层,和所有软件的最下层,是一个“跨界”的角色。 操作系统很重要,那作为一门学科,难不难学呢?大家的态度走两个极端,一边的人觉得操作系统有什么可学的,不就是点鼠标划玻璃,太简单连小学的计算机课都不一定认真教,大学还专门设了专业课太夸张了。另一边的人又觉得操作系统太难,操作系统的玩家不是Linus这样的业界大神,就是微软、谷歌这样的行业大佬,萌新小本只好瑟瑟发抖。 这些观点对不对呢? 都有一些理解上的偏差。我们平时常说的“安装操作系统”,这里的“操作系统”,准确来说,应该叫“操作系统产品”,而操作系统这门课,主要内容讲的是操作系统的内核原理。 操作系统产品和操作系统内核二者的关系,有一点像计算机和CPU,没有它不行,光有它也不行。一款操作系统产品,首先肯定得有操作系统内核,但是光有内核是没法使用的,还得加上配套的周边功能。 虽然叫“周边配套”,但绝不是可有可无的意思,大部分我们所熟识操作系统功能,实际上都是属于“周边配套”,譬如说我们最最最熟悉的“桌面”,放着漂亮的壁纸,摆满各色各样的图标,是操作系统主要的用户交互界面,术语称为图形用户界面(Graphical User Interface,简称GUI)。 前面感觉自己“精通操作系统”的那位同学,其实精通的只是GUI的使用,而且很抱歉,GUI不在操作系统内核里面。 不过,话说回来,虽然专门有“操作系统内核”这样的术语,但并不意味着所谓的“内核”与“周边”之间,天然就存在一条清晰的界限。在操作系统里面,一直存在着宏内核和微内核两条路线的争论,争论的焦点,正是什么该划入“内核”,什么又该算作周边。 微内核的主张,顾名思义,就是最小化内核所需要提供的服务,只负责最基本的功能,把应用服务、驱动、GUI,甚至一些感觉上也挺基本的功能,譬如文件系统服务,都统统赶出内核。 这样做的好处是灵活方便,像是要提供新服务,那直接新增就可以了,不需要对内核进行额外的改动,但缺点也很突出,什么功能都赶出去了,真到用的时候还需要进行内核模式-用户模式的切换,模式切换会增加额外的开销,导致性能受损,因此就有人主张应该把常用的功能都接纳进来,这就是宏内核。 Windows早前采用的就是微内核架构,把GUI赶了出去,结果性能损失受不了,后来又重新请回来,一直到现在,GUI仍然是Windows内核的一部分。 02 操作系统的核心内容 操作系统这门课主要研究的是操作系统内核,这名字不太平易近人,容易给人“难学懂”的感觉。确实,现在操作系统的功能越来越丰富,连带着操作系统内核也越来越复杂。有一本操作系统业内很有名的书,叫《Windows Internals》,讲的是Windows操作系统的功能原理,从这本书就可以看出来操作系统的一个变化趋势。 《Windows Internals》是跟着Windows推陈出新的,Windows不断更新,这本书也不断再版,一个肉眼可见的变化就是书越写越厚,现在最新版干脆把一本书分成了上下两卷,内容太多,光一块砖头已经不够装了。 这还只是Windows,现在是移动互联网时代,还有操作系统还有一半多的江山被iOS和Android这哥俩占着,而且都以一年一个版本的速度迭代,要学的知识岂不是漫无边际? 其实不用担心,操作系统确实在迅速发展,但最最核心的还是那些老兄弟。操作系统有一本非常经典的教材,只要你问就一定会有人推荐,叫《Operating System Concept》,中文译为《操作系统概念》。因为这本书的封面画着恐龙,所以学界也称为“恐龙书”。
恐龙书不但介绍操作系统知识,还会引入“当前主流操作系统”作为研究案例。当然,恐龙书已经从第1版发展到了第9版,书里的“当前主流操作系统”也一换再换,默默地记录着操作系统的变化发展。 (编辑:阿坝站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |