火药是中国发明的,外国人因此不用了吗?
能用的东西不用,是向大家证明自己是个傻逼。除此以外,还证明什么别的吗?
下面这个是当前Linux的的代码量数据:
如果你不懂软件开发,可以把它想象为一篇小说,行数就是小说的文字有多少行,Linux(仅仅是内核)的代码行数是1千8百万行,按这里给出的COCOMO模型来估计,完成这个开发的开发费用超过8亿美元。
这仅仅是内核,内核的功能只是调度计算机的资源给其他程序用,作为我们一般理解的操作系统,我们至少还需要10倍以上的代码负责画图,算多项式,和用户对话,处理字体,加密……等等等等。此外,我们还需要其他人比如做数据库的,做网站的,做网络前端的,做银行的,做基因测序的,做金融的,做政府工作流的,做Office的,把他们的软件移植(用新系统的接口来调用)过来。
多不多呢?对一个企业来说,太多的,但对国家来说,还给得起。
问题是,小说是只要码字就能看的吗?
我昨天看Linux内核的一个功能,发现年初的时候,有人在进行异常处理的时候,在里面增加了几行代码,把所有通用寄存器都清成0了。这个事情很影响效率,我很奇怪它为什么,所以我又查了一下历史记录,发现这是为了防止Cache侧信道攻击的第4种变体的一种辅助动作。这个第4种变体是什么个原理呢?——我为此看了一天的论文,而且没有完全看懂细节,只是知道原理,接受这种修改是必须的……
用普通人能听懂的话说:就算我写完了这一千八百万行代码了,我还需要花可能10到100倍的时间去打磨它,才能达到今天的水平,然后我还要追上Linux本身每天的发展。Linux、Windows、Mac等肯定走过一些错路,我们确实可以少走一部分,但至少也要一半的工作量才能走上来。而历史一次次证明,所有错误都是要重新犯一次的,比如最近某小岛以为自己不同制度就会免了大字报的历史阶段,现在不是一样的补课?——只要规模上去了,整个组织都会脱离人的意志,走入一种客观规律。所谓“黑暗森林”,本质就是这样这个模型:一个人是否对未知开枪,这有随机性,但一大群人,是否对未知开枪,这是有肯定性的。
Windows对此都气喘吁吁(搞到要集成Linux到自己的方案中),你让我们国家另做一个东西去追赶?——在这个东西直接可用的情况下?有这么挥刀自宫的神功的吗?
Linux不是不能放弃,那要等整个计算机发生质的改变,Linux设计的基础都不存在了的时候,才有可能,但显然不是现在。
所以,Deepin的问题不是用不用Linux的问题,而是基于Linux怎么能解决我们够不够用的问题,这个对这样一个小公司来说,已经是巨大的挑战了,它本身不能靠政府和社会帮,但这样一个生态的营造,需要政府和社会去帮,我们才能顶住未来的竞争。
这种时候还谈要不要从内核写起这种蠢问题,根本就没有脑子,你别理他们就行了。给傻逼讲道理,只会让自己变成傻逼的。
补充1:讨论里有读者误会我的意思,以为我反对写非Linux Kernel的内核。我不是认为写非Linux Kernel是傻逼,我是说,用这个东西是不是自己写的觉得用不用它,这是傻逼思维。Linux Kernel有它的缺点,或者说,它的长处就是它的缺点。比如太大了,一个VxWorks的内核100k以下,一个Linux的内核,正常编译16M左右,裁剪后也一两兆,再裁就不是Linux了,如果正经用,加上用户态的东西,可能要16M以上的存储空间才能用,这就已经带来很多问题了。它大量使用的Lazy算法,保证了处理性能,但对时延带来很多问题,要立即反应的地方(比如机械控制),它也不合适。但Linux Kernel长成今天这样,和他包容最大的市场有关系的。在主力市场上,你想绕过他,是非常困难的。我一点都不反对在特定市场上使用特定的OS(实际上我们自己就针对特定的市场开发好几种OS),但在主力市场上,你给自己设限,非要说自己重新搞一次,我只能认为你是个神经病。
补充2:看到其他回答中在鬼扯什么微内核的问题,我附一个关于这个问题的讨论在这里:Linux 为什么还要坚持使用宏内核?。微不微内核这种问题,根本就是学院派的YY,就不值得讨论。新做一个系统,以微内核为基础没有什么不行的,但这个不是设计一个操作系统最关键的问题。
补充3:还有人觉得,自己写一个操作系统就没有后门或者漏洞了。这完全是外行。你们没有构架经验的话,想象一下你怎么设计一个公园的安全方案的——安全漏洞不来自你的设计,安全漏洞来自你的预防。一个公园安不安全,不看你要不要买票,在于你在入门,围墙,维护人员管理……所有功能上的防Bug手段。没有一个基础重新设计,你的Bug只会更多,不会让你更安全好不好?你认为linux哪里不安全重新设计那个地方好了,重写就会没bug的吗?或者你可以看看这个:in nek:给普通人解释Spectre和Meltdown安全漏洞 对安全是什么有点直观感觉。
补充4:再说一个误区,操作系统只是个名字,操作系统和操作系统不是一个东西,我们谈的是大型操作系统,不是十几万行代码的嵌入式系统,而且就是嵌入式系统,在技术上实现领先也是一件很困难事情,请不要把你们那些玩具拿出来丢人,说什么“你也有”。你一个月赚一两万个也叫赚钱,人家一个月赚几个亿也叫赚钱,这是一个东西吗?
补充5:这个问题下,Pansz的进攻防御说我也是反对的。用不用Linux是个起点平台问题,进攻防御是个技术本身的问题,你有一个好的调度技术,在一个玩具操作系统上实施,就算有技术优势,这个技术也没有进攻性。要不要进攻,要看你的技术,不是看你用不用Linux开发。
刚开始非常辛苦,后来形成自己观点了,就不觉得了。因为你的观点总被人攻击,你总要还击。就比如你在逼乎发了个帖子被别人怼,你觉得你不回骂过去能睡得着觉? 学术成果就是在不断的撕逼过程中不断积累。 就比如我敬爱的Fama大神,活到老,撕到老,生命不息,撕逼不止。
基于linux可以做到自主,但是不够可控。国产化以及自主可控本身都不是最终目标,产业安全和国家安全更加重要,Linux的问题就在于不够安全。
linux的问题在于代码量太大,团队太杂。千万级别的代码,而且是宏内核架构,大量来自各种团队的设备驱动和内核模块,任何一个点出问题都可能被获得系统控制权。除部分资源受限的嵌入式设备外,使用linux的厂商大概也没多少动力进行裁剪。目前的针对涉密网办公用的国产OS通过各种审计,监控,异形物理接口等手段进行安全增强,但是如果有预埋的内核漏洞想一想仍然有机会激活。而更多的应用场景比如工控机,上位机不太可能上厚重的保护手段,成本和意识都跟不上。
bsd是更加安全稳定的方案,但是bsd在美国控制之下,长久看来也不够可控。
作为自主可控的基石,需要一个纯粹的微内核架构。现在问题是目前所有的微内核OS都必须解决性能问题,否则无法做到足够的通用性,就像QNX,无法解决大部分问题。很多厂商包括IBM都曾经在微内核上下注,还没有得到十足的成功。
目前潜在的比较令人期待的微内核通用系统有两个,fuchsia和鸿蒙。这两个都有大厂背景,表现出了商用的潜力,fuchsia已经展现了一些平台特性,鸿蒙作为TEE架构的TEE部分也已经初步商用。如果能够成功,相当于在linux、bsd之外又多了一个或两个posix兼容内核的选择,可以作为基础制作新的更加安全可控的发行版(忘记hurd吧)