那些年UNIX教我们的事

前天CSDN创始人蒋涛、 HybridOS操作系统创始人魏永明、 CSDN副总裁、前微软研发总监邹欣 与《UNIX传奇》译者韩磊共同到直接间就《UNIX传奇》的话题进行了一次直播活动,这是近些年来唯数不多的几个笔者全程高度关注,目不转睛的节目之一,而今天看到这个征文活动,第一时间就来参加了。可以说Unix以及伴随着Unix出生的C语言是改变计算机历史的最重要事件。这里首先要向2011年离世的C语言与UNIX之父丹尼斯·里奇致敬!要不是安卓与各种基于Linux的云服务,我们这个世界恐怕还处于数字蛮荒时代,感谢你给这个世界带来的精彩!

《UNIX传奇》是一本读者不需要有太多的专业技术背景,就可以欣赏Unix背后的思想的书籍,因此本文笔者也尽量继承这种深入浅出的思想,少谈具体的技术与代码,多聊聊Unix的思想与创新点。

Unix到底有多强

Unix之所以伟大,最关键的一点在于这个操作系统在上世纪70年代的计算机远古时期,就为业界带来了几乎延用至今的POSIX操作系统标准。POSIX(Portable Operating System Interface,缩写为POSIX)可移植操作系统接口,最后的而X则表明其对Unix API的传承,比如像AIX、Linux、Nuttex等等其实都属于Unix一族。

一般情况下,应用程序通过应用编程接口(API)而不是直接通过调用底层硬件来编程。POSIX的API定义了一组应用程序使用的编程接口,它屏蔽了来自于底层硬件的差异,这使得不同的硬件平台完全可以给应用程序提供完全相同的接口,这种做法最大的好处就是能够大幅提升兼容性,代码在跨操作系统运行时不需要改写,只要重新编译即可以完成移植。而继承了POSIX标准API接口的Linux之所以能够迅速发展壮大,其关键就是在于它能够完美继承原本运行在Unix上的应用程序,从而扩冲自己的应用生态。

在未来要想打通IT体系内一切节点,关键在于操作系统,从本质上讲操作系统就是要解决性能指数级上涨的情况下,如何让计算机同时并行处理多个任务的问题。打个比方说明一下这个问题,如果把计算机比做一个酒店,那么操作系统就是酒店管家,在酒店规模很小的时候,一次只能接受一位顾客入住,顾客自己照顾自己就可以,有没有管家无所谓。但后来酒店规模扩大了,完全可以满足100位顾客同时入住的要求了,如果这时再不把内核这个管家请进来,那这100位顾客的电梯、热水等竞争性问题根本就无从解决,所以从这个角度上讲内核就是在做调度与隔离的工作,要让所有顾客都快速得到满足而且彼此互不影响。从目前的情况看Linux几乎是世界上工作最勤奋,效率也最高的优秀管家。

小米Vela使用的NuttX内核,在设计之初就考虑到与Linux的兼容性,并提供对于POSIX接口的原生支持,用作者名Nutt+X以表示其属于Unix类操作系统,比如鸿蒙的KAL内核层除了Lite OS之外,最主要的也是Linux kernel(https://developer.harmonyos.com/cn/docs/documentation/doc-guides/harmonyos-overview-0000000000011903)。

那些年UNIX教我们的事_第1张图片

Linux目前可谓四处开花,可以看到目前Linux几乎占据了100%的云计算市场份额,以及接近80%的移动端市场份额,我想今天Linux的盛况应该能如UNIX之父丹尼斯·里奇所愿了!

Linux/Unix还能火几年

我们知道IT界每十年就会产生一种新的生态,比如二十年前的Wintel的PC生态,再比如十年前安卓、IOS+ARM形成的移动终端生态,接下来的一两年很可能会有新生态的诞生,不过虽然Linux各方面指标都很强,不过一些新的情况也值得我们注意。比如谷歌Fuchsia操作系统明显有重起炉灶另开张的计划,按照谷歌的说法Fuchsia=“Pink(粉红)+Purple(紫色),即灯笼海棠,一个新的操作系统,由于Fuchsia的目标是替掉谷歌自己家的安卓系统,因此Fuchsia对于安卓所使用的Linux内核也并不怎么感冒,谷歌为Fuchsia选择了一款名为Zircon的微内核做为核心。笔者对于Zircon微内核了解并不多,不过既然是Zircon微内核那么这也决定了,它与Linux的宏内核不会有太多关系了。

有关宏内核与微内核的比较笔者在去年的文章《鸿蒙OS的微内核技术究竟是什么》已经介绍的比较详细了,宏内核将内核的功能都组合在一个内核态进程中完成,而微内核将许多在宏内核中的模块移出内核,使之运行于用户模式。宏内核的好处是各功能模块处于同一个地址空间,相互调用效率很高,弊端是体积太大,不利于在移动设备上进行部署。微内核的好处是功能模块各自独立,体积较少,方便进行移植也方便对其它体系的兼容。弊端是功能模块之间变进程间通信,CPU上下文切换代价很大,执行效率较低。因此Fuchsia作为一款划时代的新操作系统,选择Zircon微内核方案倒也并不奇怪。

最近华为全套自动驾驶方案帮助传统厂商造车,小米千亿资金下场造车,更不用说传统的百度阿波罗、还有特斯拉、小鹏等国内外智能汽车公司的悄然兴起,可以说智能汽车已经是今后10年科技公司的必争之地了,不过在这个对于硬实时性要求极高方向上,Linux这种宏内核也没有那么香,因为在行车过程中驾驶员总会遇到很多突发事件,快速响应、处理这些意外事件就成了车载OS的必备技能,因此在航空、航天、车载及军用领域实时性操作系统(RTOS)才是真正的C位,而正如前文所讲Linux这种宏内核,效率虽高,但是快速响应的能力不强,本质上也不是RTOS一族的成员,也许这会让汽车OS领域风云再起。

目前从国际市场上看最主流的CAR OS就是QNX了,这是一款微内核、嵌入式、非开源、安全实时的操作系统。其内核可剪裁至几十KB,非常小巧,实时响应速度也很快,而国内自主的操作系统方面,举目四望好像只有RT-Thread Smart也许能充当汽车OS的重任,RT-Thread Smart定位于成为一个专业的面向实时应用场合的高性能混合微内核操作系统,填补传统 RTOS 和大型操作系统之间的留白。而正如我们之前所谈到的,根据智能汽车的发展趋势,车载OS要在实时性、成本、安全性、启动速度等方面取得平衡,而RT-Thread Smart的混合微内核恰恰是这方面的平衡典范。不过由于汽车电子需要长时间以及各种严酷条件下的充分测试,因此RT-Thread Smart想在汽车OS领域有所建树,还是任重道远。

三流软件作产品,二流软件做服务,一流软件成标准,而Unix就是一流软件的典型,不但给世界带来的POSIX接口标准,更为我们带来了C语言,无论未来成败如何,UNIX都在计算机历史上留下了浓墨重彩的一笔。

 

 

你可能感兴趣的:(那些年UNIX教我们的事)