说鸿蒙和麒麟之前,回顾一哈电子行业的软硬件历史。
硬件方面,半个世纪了,一直是诺依曼体系。说白了,就是机器语言是按照顺序,一条一条地执行下去,直到结束。
每一条指令,其实可以把它理解成,它就是一个“CPU”。也就是说,每一条指令都必须拥有CPU的完整功能,才能让这条指令能“自动”地运行。
一般的CPU的指令数量,从几十条到上百条不等。也就是说,从原理上说,一个普通CPU芯片,它的内部应该有几十个,上百个的小“CPU”,也就是成千上百的CPU内核。
程序是指令的组合。 数量从几十条指令到上百万不等,甚至可以达到上千万,比如微软的操作系统。
在诺依曼的那个年代,为了运行一个程序,一个CPU内部需要集成千上万的CPU内核,这是不能想象的。因此诺依曼体系的最重要的一个特征就是,把需要运行的程序给“软件化”,也就是程序运行之前,先放到内存里。程序运行时,每一条指令被自动地,依次送到一个CPU里边运行。 运行完成后, 再把第二条指令送到CPU运行。。。直到最后。这就是 所谓的Storage programs。 第二个特征就是每一时间片刻,只能运行一个程序。
诺依曼体系体现在软件方面,尤其是高级语言上面,就是所有的程序,都必须放在function里运行。为什么?因为诺依曼体系,每一个时间节点只允许运行一条指令。而function是现代所有高级程序语言里,唯一能够做到,一个程序运行完之后,可以回到原来起点的装置。
世界最早的高级程序语言,比如ALGO, 它发明的初衷是用来运行代数表达式的(algebra---也就Algo语言的名称来源)。当时内存非常的小,只有几百个,上千个字节。所以它的编译器必须做到极简,直接。它采用了reverse polish的方式来改写代数表达式,然后用stack等方式来实现。举个例子,比如2+4*20,首先用shunting yard的算法,把它变成2 4 20 * +这样的polish reverse 表达式,然后把这个表达式里边的数,运算符号等,依次送入stack。运行时,当遇到第一个运算符号时,就弹出stack最上边的两个数,用这个运算符计算出结果,然后再把结果再次推入Stack。然后再计算。。。。
algo 这个最早的高级程序语言大获成功。从此而后,深深地影响了他以后几乎所有的它的徒子徒孙的高级语言,比如 B, C, C++, JAVA, c#, PYTHON。。。。。。
转眼间,时间进入2019年。硬件技术发生了天翻地覆地变化。
现在电子行业是个什么情况?
首先,一个cpu里边,可以集成十几个,几十个小CPU,所谓的内核。如果需要,甚至可以集成上百个,成千个内核。
其次,内存可以做到无限的大。几百G,甚至上T的内存,是可以轻而易举地做到。
第三,5G出现。电子设备之间的连接速度,可以达到G的级别,也就是传统计算机内部CPU与内存之间的传输速度。
鸿蒙操作系统系统就是在这种硬件下诞生的。 所以人们不难想象,现在的鸿蒙操作系统,它的体系一定会推翻诺依曼体系,搞并行,或者搞分布式。具体来说,一定是这样的:
首先,1, 麒麟未来的处理器,内部一定会集成几百个,甚至上千个内核,每一个内核就是一个cpu。
其次,2, 每一个麒麟处理器,一旦通电,就会自动地把内存,动态或者静态地划分给它内部几百个,上千个内核。将来机有可能,每一个内核,都带有自己独立的内存,容量从几百G到T不等。
1+2意味着, 麒麟处理内部的成百上千的内核,每一个内核都可以独立地运行一个程序。 也就是说,同一时间片刻,可以并行地运行几百上千个独立的程序。
上面是硬件,下边说软件,也就是鸿蒙操作系统。
非常显然,鸿蒙操作系统就是一个调度,并行,分布式的操作系统。它做的唯一的一件事,就是调度各个程序,各个硬件之间通讯。它本省是不做任何运算的。
比如,当张三打开word这个软件,鸿蒙随机地从它内部上千的内核中调用一个内核,这个内核就做一件事,运行word文档的编辑。
当李四打开网友浏览互联网时,鸿蒙操作系统随机地分配一个内核,专门做这个浏览网页的事。
。。。
麒麟里边有上千个内核,意味着,同一时间片刻,麒麟可以并行地运行数千个程序,而不是诺依曼的同一时刻,只能运行一个程序!诺依曼体系被抛弃了。
当张三的word文档编辑完成,需要存盘,它给麒麟的调度处理器(也是开机时候随机地分配的,直到关机前,这个随机的分配内核,就一直充当调度员,主处理器的脚色)发一个信号,一条信息,麒麟处理器然后随机分配一个内核去处理存取文件这个事。
最牛比的地方是,鉴于鸿蒙操作系统是一个分布式的操作系统,当麒麟处理器的全部内核已经分配使用完,也不能够collection 已经分配的内核,或者当它需要更强大算力,比如需要模拟核爆炸,那鸿蒙操作系统,可以运用5G技术,全球寻找闲置,或者某台超算,然后万里之外把那台计算机分配给手边的需要算力的这个程序。。。
google 即将发布的,替代安桌的新操作系统Fuchsia,有人透露基本就是上述体系的。但是,google只作软件,不做硬件,它是无法找到一个内部有上百上千内核的处理器,比如麒麟处理器,google 的Fuchsia只能做软件模拟, 因此肯定是干不过鸿蒙,被鸿蒙干掉,就是个时间问题。
版权所有,盗版有功。欢迎电邮任正非。