独立自主开发一个 OS 最大的难点根本不是技术问题

2019-08-13 12:09:21 +08:00
 Buges

外界总有一个误解,好像开发一个 OS 是一项非常了不得的事,国内技术不行,先进的技术都被外国垄断卡了脖子。做出自己的操作系统就像造出原子弹送火箭上天一样艰苦卓绝,意义重大。

“独立自主”有什么含义暂且不表,但作为业内技术人士,总不能也抱有这样的认知吧?

随便google 一下,铺天盖地的教程和文档起码一个不算太差的计算机专业的本科生花上 30 天做个玩具 demo 还是没太大难度。

即使不看这些,稍微动脑子想一想,linus 做得,你就做不得?

所以开发一个 OS 最大的难点根本不是技术问题,甚至技术问题都占不得九牛一毛。

技术角度无非就是内核,基本系统软件(图形,架构,运行时等),稍微有点规模的公司都能做得。

并且作为一个更的系统,只要开发人员不是太水,没有历史包袱在,做到比古老的 Windows,*nix 更优异不在话下。(这些系统由于历史遗留问题从而令人诟病的地方有多多不用我多说)

一个系统最根本最关键的是生态,如何让用户使用?如何让软件厂商为你的系统开发软件?如何让硬件厂商为你的系统适配驱动,推出使用你的系统的产品?

以上这些都不是技术的范畴。可以说是商业问题,经济问题,甚至是政治问题。

现有的操作系统最不可动摇的就是生态,也许 30 年前你开发一个足够优异的系统可以占领市场,但放到现在,哪怕写的再好,也几乎没可能动摇市场霸主的地位。就像铁轨的宽度决定于两匹马屁股的宽度一样,习惯的力量不可动摇。

要推广生态,要么是海量资金硬砸,要么是物联网这样的底层硬件变革新领域的机遇,要么就是行政手段强制进行。

所以吹牛造势似乎并没有什么问题,只要大势造成,攻克生态的最大难题,即使一行代码还没写也没关系。代码,根本就是小事。

如果有一天,行政力量要求封杀某些系统强推某些系统,那么提前宣传造势 ppt 的重要性也就不言而喻了。

11143 次点击
所在节点    操作系统
102 条回复
habrade
2019-08-13 17:20:34 +08:00
再来个大跃进,亩产万斤吗?
赞同 @ryd994 所说的。
问题还是要一步步解决的,不可能说花时间就可以解决,就不算问题了。
Buges
2019-08-13 17:29:03 +08:00
@GenkunAbe #58 难点是生态,我一直都在这么说。
技术问题只占小部分,并且技术问题量占主要部分。

推广生态要么海量砸钱,要么底层硬件有变革,要么就是行政手段了。

所以当某“独立自主”的 OS 出现并推行的时候,代表的不是技术的优越,而是行政力量的优越。
passerbytiny
2019-08-13 17:42:55 +08:00
我本以为最后会有反转,然而看到加粗的“生态”两个字,说吧,贾某某是你几代师父。真要你说得这么简单,那富可敌国的微软,只要搞定几个人就可以让 windows phone 在中国垄断了。
CantSee
2019-08-13 17:55:51 +08:00
说的很在理啊
ryd994
2019-08-13 18:00:38 +08:00
@Buges “至于人才,现代软件技术越来越让菜鸟也能做大项目”
现在你知道为什么 Linus 说 C++ is a horrible language 了。
自动化只能让你写得更快,不能让你写的更好。垃圾写的再快也是垃圾。
C 语言在底层的地位无法动摇。除非计算原理从根本上改变,比如量子计算。

“壁垒在于生态。只要行政力量强制用户迁移平台,问题却是解决了”
是解决了问题还是解决了指出问题的人?先把 12306 迁徙过去试试看?你真以为计算机行业只涉及互联网那点事?慢点就慢点无所谓?直接回 20 世纪吧,重新发明计算机,弯道超车。短期内嘛,算盘又不是不能用。真以为强制推行就能解决一切问题?真以为所有技术问题都可以堆人力解决?工程进步是需要时间需要迭代的。很多坑不踩过的人根本不会知道。人家花了这么多年摸着石头过河。就你聪明会搭桥?

“你不能以工时来统计程序员的工作量”
就算阿里全是十倍程序员,也不可能单挑全世界的 Linux 开发者。何况 Linux 开发者的平均水平和一般公司比只高不低。能在 Linux 里有几千行代码的人,到任何一个公司都是至少技术核心,更常见的是小庙供不起大和尚。数量质量,你都比不过。人家几十年的经验,你以为全在写代码?九成九踩坑重写。你能想到的,放心,早就有无数人想到过,然后撞过墙。号称推倒重来,弯道超车的,怎么不想想人家为什么不超?

微软又不是没推到重来过,NT 就是重写的。为什么没搞个 NNT 出来? Linux 又不是没扩展过 ABI。新 API 完全平行于旧框架,根本就是两套系统,存在哪门子的兼容问题?

“新版不兼容老组件就得重写老组件”
Python 3,如何?
Linux 现在的驱动还有多少在用老框架?不兼容老组件就不兼容,只要老组件不爆炸就行。你们应用不兼容就继续用 XP 好了。RedHat 现在还不是再用 3.x ? 2.6 内核都有人在支持。内核 API/ABI 从来都是只扩充不修改,就是这个原因。你现在拿十几年前的应用放到最新的内核跑,大概率跑不动会报错,但一定不会导致系统崩溃。

“然后优化什么的不算重点,何况有那么多可以借( chao )鉴( xi )”
还是那句话,给你抄你也抄不来。底层性能调优不仅耗时间,还要经验。这些经验都在老工程师的脑子里。很多甚至没有理由。感觉这个方向比较有可能,预测对了就能省下几十倍的蛮力。

“ exe 指目前的直接发行的二进制可执行文件。api 鉴权,管理,包管理等各个方面都混乱无比,linux 的碎片化更不用多说。这些没法做,做了就没法兼容。你说加一套?软件继续用旧的。不兼容旧版?生态不允许。这样的碎片化就是指的历史包袱。”
你不就想说自创的应用市场么? WPF 微软又不是没试过。安卓应用市场又不是没试过。你想象的完美生态,不出 5 年,就会有新技术出来,到时候你也一样逃不过历史包袱。到时候再重写一遍?
明显就是没在大公司做过的。随便你做什么,有无数人排着队等着重写一个更好的。这是所有职场新人都有的雄心壮志。出水才见两脚泥。

@seraphv3 我 30 分钟能拼出一辆奥迪双钻。请问奥迪双钻和特斯拉之间还差多远?不都是电动车?
justfly
2019-08-13 18:13:23 +08:00
说的很对,微软就是最好的例子。

PS. 谷歌断供并不是 AOSP 用不了了,源码还是随便用,说是自研操作系统的原因很牵强,而且自研谷歌服务该不让你用还是不让你用,海外市场还是没门。

所以,做个物联网系统没啥问题,看到了当前手机操作系统弊病决心颠覆它也没啥问题,但说成替代 AOSP 虽然能带来快感但是从逻辑上说不通。
ryd994
2019-08-13 18:19:46 +08:00
你吹生态就吹生态,没必要说的好像除了生态其他都一文不值。

国产 OS 不难,深度 Linux 不也有人用了说好?修修补补定制化。一个小公司尚且可以做到这个程度。zf 推动一把,搞个发行版有何难?上面想搞什么生态搞什么生态。

但是要从零起步,三五年内,任何一间公司都做不到。微软凭借人才储备可以。Google,Apple,也未尝没有这个实力。

国内的大公司,问题倒不是说钱或者人的数量。而是踩坑的经验,和决定性的人物。要么直接挖人。国产自动驾驶不就是这个路线。然而真正做起来还是遥遥无期。何况真正核心的专家,手里拿着那么多股票,本就是和公司共进退的。这才叫技术合伙人。
gamexg
2019-08-13 18:26:09 +08:00
@Buges #45 行政力量可能真的强推不动。
看历史,当年强推过 WAPI,行货手机禁止 WIFI,必须用 WAPI,这样做都没能强推起来。
Buges
2019-08-13 20:07:10 +08:00
@ryd994 #65
>是解决了问题还是解决了指出问题的人?
在某些国家这好像是一码事...

从来没提到过超越,差也差不到算盘的程度。做个能用起码没问题。

而内核有很多共通的地方,细节算法上的实现上有别人采过的坑,你可以说国内程序员没能力实现但借( chao )鉴( xi )的能力不至于也没有。

至于扩展,多版本并行。这取决于设计之初的可扩展性,如果认为重来和修修补补一样的话,那也没必要整天重构了。你新版兼容就有(部分)应用用旧 api,不兼容有(部分)用户用旧版(反过来需要软件兼容),最后碎片化,混乱无比。
况且,再怎么说,现在终端的用户无论桌面还是服务器,一直都在忍受着碎片化的混乱。
甩掉历史包袱的好处,确切地说是整个生态(如果跟得上的话)全部整合更新的好处。

应用市场是分发方式,与这个无关。指的是更先进的包管理与 api 鉴权机制,由于兼容性碎片化无法推行。

>到时候你也一样逃不过历史包袱。到时候再重写一遍?

是这样的,早期设计早晚有跟不上变化的时候。不过是 5 年还是 50 年,取决于最初设计的可扩展性以及设计者是否能正确预料未来的发展。

没有认为其他的都一文不值。只不过我认为生态是其中最重要也是最难实现的部分。
还有,你的观点中似乎特别注重人才。我不这么想,计算机行业正在快速的去精英化过程中,我认为人才没那么重要并且变得越来越不重要。(虽然作为技术人我也不希望如此)
loryyang
2019-08-13 20:56:14 +08:00
我觉得技术和生态两者都有影响,一个完善的操作系统也不是那么容易的,需要一定时间打磨
paparika
2019-08-13 20:57:05 +08:00
补充一个,信用问题
codermagefox
2019-08-13 21:13:27 +08:00
"即使不看这些,稍微动脑子想一想,linus 做得,你就做不得?"

"技术角度无非就是内核,基本系统软件(图形,架构,运行时等),稍微有点规模的公司都能做得。"


V 站的程序员水平已经到 Linus 都瞧不上的地步了吗....对不起,我给大家拖后腿了
coolair
2019-08-13 21:55:06 +08:00
生态都是屁话,没有什么一开始就有生态的。关键是,人心浮躁,做这个花钱快,来钱慢,没有可持续性。
cuminflea
2019-08-13 23:06:25 +08:00
可以再往下推一步放到同一位面考虑。
比如觉得技术不是最大的问题而生态是,那么意味着构建一个生态的资金成本和社会成本远超构建一个技术上合理的产品。
那最后做得做不得,做好做不好还是投入产出合适不合适的问题。。。
juded
2019-08-14 00:36:49 +08:00
个人认为什么独立自主向来不是关键,关键是你能否控制。
good1uck
2019-08-14 02:14:51 +08:00
稍微动动脑子想想 linus 能做 你就做不得?
这套逻辑牛批 简直没有做不了的事了
IDCFAN
2019-08-14 05:17:33 +08:00
楼主说的没错,技术不是问题,特别是在这种举国体制下
wyfyw
2019-08-14 07:21:36 +08:00
稍微动动脑子想想 linus 能做 你就做不得?—— LoL

你看看当年 Linus 写的代码 Linux 内核 0.01 和现代的 Linux 内核的差距。如果想另立门户,搞一个完善的操作系统,人月神话了解一下。
liuxey
2019-08-14 08:17:19 +08:00
平平无奇 Linus, 无利起早 Bill Gates
murmur
2019-08-14 08:20:27 +08:00
@Buges 不在兼容 exe 咋了,多少 xp 还在跑,win7 的网吧都不准备换了,win10 按这个架势保守再战 20 年

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/591451

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX