前些天发了一篇漫画《20多年过去了,中国CPU为什么还是不行?》,有位读者留言到:
不把脖子伸出去,不就卡不到了嘛。不眼馋人家捣鼓出来的东西,还能怎么卡?
首先禁止采购国外芯片,再强制使用国产OS,既然有国产芯片,性能差点,好歹能用;
慢慢生态就扶持起来了嘛。无锡56所不就在从指令集,编译器,编程语言,系统全重新造车,这样的家伙亮出来,他难道还能把手伸过太平洋,伸进你家卡你脖子?
听起来很有道理的样子,后来陆续还有类似的留言,我觉得是时候专门写一篇文章了。
1
先推演一个极端的情况:我们一切都自己动手,国外的东西统统不用,会发生什么状况呢?
计算机体系从下往上,依次是:CPU-操作系统--编译器和编程语言--应用软件
先说CPU,自己定义指令集,这没问题,中科龙芯和江南所已经这么干了。(最新消息,龙芯已经公布了完全自主产权的LoongArch。)
但是怎么设计和制造呢?
Synopsys、Cadence、Mentor这三巨头垄断EDA软件90%以上的市场——没有EDA软件,是没法完成CPU设计的。
ASML几乎上垄断了光刻机——没有光刻机,是没法完成CPU制造的。
这一块儿我没有深入地研究过,姑且认为华大九天的EDA软件和上海微电子所的光刻机能解决的问题吧,但是性能如何就不好说了。
接下来是操作系统,这里有个有趣的问题:用什么编程语言来写呢?
这时候还是个裸机,哪有什么高级语言?能用汇编就不错了!
参考下Unix和C语言的发展过程:KenThompson和DennisRitchie等人在PDP-7上用汇编写了第一版的Unix,后来DennisRitchie发明了C语言,用C语言重写了Unix。
我们也可以用类似的方法来做,用自己CPU上的汇编来写操作系统,等到有一定规模了,我们再上面发明一个新的编程语言(就叫X语言吧),配上相关的编译器,然后用X语言重写。
当然,一个真正可用的操作系统有几千万行代码是很正常的(虽然有很多代码是驱动程序),这么大的代码量,不知道需要多少个人年,才能把它搞好,稳定下来。
到了应用层,生态系统最要命的事情出现了:
日常使用的所有软件:Office、浏览器、Photoshop、播放器、QQ、