本文来自微信公众号:阿朱说(ID:azhushuo),作者:吕建伟,原文标题:《从内核聊到:中国华为鸿蒙和美国Google Fuchsia》
一、Windows NT
昨天我又读了一遍《观止》,讲的是Windows NT的研发故事。从1988年到1993年,历时五年。这是微软历史上最重要的一个产品,它不仅根除了Windows操作系统不稳定的恶名,而且还帮助微软成功地攻占了服务器操作系统市场。
卡特勒这帮人推出了世界上最流行的小型机VAX,但受制于当时DEC已经被IBM大型机和IBM PC兼容机的两头挤压,所以DEC要裁员,先把搞前沿创新探索的这帮人裁掉。卡特勒这帮人正愁将来怎么办的时候,早就垂涎服务器操作系统市场的盖茨听说了这个消息,立马约见卡特勒,希望他加入微软。
但卡特勒这帮人是又设计计算机硬件又开发操作系统软件,微软是做纯软件的,所以盖茨做了个特殊放宽,可以带硬件工程师,但人数不能超过五人,而且只能做原型硬件,原型硬件也只是为了配合研发未来的服务器操作系统,而不是设计真的计算机硬件产品。卡特勒也退了一步,成交。
其实卡特勒他们团队只是研发了一个内核。但这个内核的设计理念非常超前,是:Client-Server思想。基于这种思想,当然内核会超稳定超安全。但这种思想,也让上层支持各种launcher成为可能,这难道不是最早的虚拟机思想么?我想起,1964年IBM发布的世界上最惊世骇俗的System/360 OS,不也是这种思想么?
但是卡特勒这帮人不想干别的琐碎但必要的商业工程上的事,比如说:
外设:把所有外设硬件的驱动程序接进来;
网络:这是由微软网络开发团队做的;
API:卡特勒他们只做了最必要的API,至于和Windows兼容的API,都是由微软Windows团队做的;
图形界面:这是后来由Windows图形界面团队做的。
卡特勒团队主要聚焦在:
内核;
最底层最必要最基础的图形渲染文本显示技术;
文件系统:这就是有名的NTFS文件系统;
以及和内核、和文件密切相关的安全控制。
二、.NET战略
1994年,当时互联网爆发,但是当时的浏览器技术很单调,只能显示静态文本。Sun公司的Java团队说,我们有一种Applet浏览器插件技术,可以在浏览器里显示多媒体动态内容。随即,Java技术在业界流行起来。
但Java技术为什么声称能在资源调度力量薄弱的一个浏览器软件里搞这事?就是因为Java最初是为日本的家电厂商做智能化而搞的,后来日本在1991年进入了“失去了二十年”,日本家电厂商也放弃了家电升级为智能家电的愿景,所以Sun公司的Java团队正头疼要被裁掉卖掉的时候,互联网热这个枕头正好来了。真是运气好啊。
1999年,在Java(J2ME、J2SE、J2EE)猛烈局势下,盖茨给自己搞了一个新Title:首席架构师,亲自率领团队,要实现一个宏伟的大战略。
这个大战略分了三个重大的里程碑,用微软员工喜爱的一个加拿大滑雪胜地——惠斯特滑雪场来命名:
第一个里程碑是:Whistler,这是惠斯特滑雪场的第一个高峰;
第二个里程碑是:Longhorn,这是两座高峰之间的一个歇脚的小酒馆,歇会;
第三个里程碑是:Blackcomb,这是第二座高峰。
1999年~2002年,研发代号Whistler,最终产品是WinXP。内核是NT5.1。因为NT5.0,被2000年发布的Windows 2000占用了。在WinXP这个版本中,发布了.NET 1.0。.Net的虚拟机、类库、C#开发语言,都在WinXP这个版本中出现了。
2002年~2007年,研发代号Longhorn,最终产品是Vista。内核是NT6.0。在Vista这个版本中,发布了.NET 3.0,里面包含WPF、WCF、WF三大技术。但这是个失败的产品,在市场上一晃就消失了。不过和它当初的定位一样,只是两座高峰之间的一个歇脚的小酒馆,歇会。所以按照微软的战略目标来说,应该是达成了。
2007年~2009年,研发代号Blackcomb,最终产品是Windows7,内核是NT7.0。在Windows7这个版本中包含的.NET版本是3.5,没有重大技术发布。但是Windows7经过性能优化、细腻体验改进,是微软操作系统历史上仅次于Windows95、WindowsXP的第三畅销的操作系统。
2008年,盖茨宣布退休。因为他从1999年开始,花费了十年时间,历经三大里程碑,实现了他当初的战略构想。
三、万物互联万物智能OS
卡特勒曾经在1988年说过一句话:世界上,能做一个新的操作系统的机会已经不多了。
我想了想:
服务器端:除了1974年发布的Unix,就是1991年开源的Linux;
PC客户端:经过盖茨亲自操刀一顿猛折腾,现在就是NT内核的Windows了;
手机端:iOS的内核主要来自BSD Unix,Android的内核来自Linux;
下一个时代:万物智能、万物互联呢?操作系统怎么来呢?
5月26日,Google正式发布Fuchsia操作系统。这是历史上非常值得纪念的一个日子。但估计大家现在只道是平常。
Fuchsia的内核是Zircon,是一个完全新的内核。一开始用C/C++编写,现在已经有50%的代码用Rust重写了。而且这个内核是微内核,不像Linux还是宏内核。
Google这次走了一个非常取巧的策略:
用户能感知的到的,用了一个通用的独立的技术来屏蔽底层的多样性、差异性。那这个技术就是:Dart(类JavaScript)开发语言+Flutter跨无数设备的UI组件套件。
最底层的内核,自己新写了Zircon。
中间的各个层,你们业界都可以大卸八块随便替换。
6月2日,中国华为也发布了一个鸿蒙OS 2.0,内核有两个:一个是Linux宏内核,一个是华为自己研发的LiteOS微内核。
我在想这么多设备:
服务器;
笔记本电脑、平板电脑;
手机、智能电视、路由器;
手表、智能家电(如冰箱洗衣机空调、电饭煲烤箱)、智能家居(如智能门锁、智能窗帘)、智能个人健康设备;
智能新能源汽车、大型交通设备(高铁地铁、飞机、船舶);
无人零售商店、无人仓无人车、智能共享办公空间、智能建筑、智能建筑工程、无人黑灯工厂、智能环保监测、无人农业种植养殖、野外/危险作业现场、智能地下管网;
医疗设备。
估计明年,也就是2022年,Tesla会开源用于万物互联的操作系统。
不管是Tesla过去用激光雷达+传感器,还是现在放弃了激光雷达纯用摄像头AI识别+传感器,终究是物理世界—数字世界的交互。只有万物都用上了物联操作系统,不管是人、狗、建筑物、马路、井盖、路灯、交通灯等等,都用上了物联操作系统,那就是数字世界—数字世界的交互,那才是光速、稳定。
每个时代都有一个主干产品和主干公司。移动时代,有iPhone和苹果公司。下一个万物智能万物互联时代,主干产品肯定是智能汽车。不知道是不是Tesla汽车和Tesla公司。
本文来自微信公众号:阿朱说(ID:azhushuo),作者:吕建伟