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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

10900 次点击
所在节点    操作系统
102 条回复
padeoe
2019-08-14 09:09:35 +08:00
还真是技术问题啊,软件工程问题,不是会写代码就是有技术,设计和管理好大的软件项目也是技术,参考国产操作系统的历史,以及国内开源项目现状
sheny
2019-08-14 09:34:26 +08:00
有钱能解决一切,解决不了只因钱不够,楼主解决钱就行( doge
bulldozer
2019-08-14 09:52:11 +08:00
很多老板也是这么想的,技术算个屁啊。钱到位什么都能做出来,拳打 BAT,脚踢 FANG。当然多年的抄袭以及政策壁垒导致的部分成功更刺激了这种骄横心态。实际上不是这么回事。

另外,对操作系统而言,生态指的不光是运行其上的 APP, 是从 CPU 开始的,所有的上下游软硬件厂商的协作环境,以及技术共享、标准共享,可以说,在中国的环境下几乎没有可能制造出一个通用的、全平台 OS.
openbsd
2019-08-14 11:06:49 +08:00
LZ 是不是对“技术含量”有点误解?
造出原子弹和送火箭上天 的技术投入比任何一个能经过考验的通用操作系统都要少太多吧
darmau
2019-08-14 11:06:52 +08:00
@liprais 你能三十天做个玩具原子弹出来吗?玩具汽车(能载人)?
oshio
2019-08-14 11:37:13 +08:00
远古时期的 os 基本都是一个人搞起来的呀,unix,cp/m,qdos,linux,minix,这些还都是正儿八经的通用操作系统,也不是玩具 demo。
icy37785
2019-08-14 11:40:54 +08:00
@oshio #84 远古时期的操作系统用现在的眼光看就是玩具呀
icy37785
2019-08-14 11:41:36 +08:00
生态是问题,技术也是问题,只是先得解决了技术问题才有资格面对生态问题。做操作系统真的很难。
jay4497
2019-08-14 11:41:54 +08:00
楼主观点没问题,生态最重要完全没错的,只是技术到底占多少可能还待商榷。
倪光南不就早搞过操作系统了,还找人测试,最后不还是生态起不来不了了之。。。
damngood
2019-08-14 11:55:34 +08:00
生态起不起得来也取决于你系统做得好不好,系统越差生态越难起来
damngood
2019-08-14 11:57:37 +08:00
现在的瓶颈都还没到生态这步吧,先搞出系统再来说
别目前做个好系统的能力都不一定有就说我不做是因为生态难
mnssbe
2019-08-14 12:11:09 +08:00
@seraphv3 21 天精通 c++了解一下
kppwp
2019-08-14 12:59:59 +08:00
@anguiao 有一说一 linux 的 gui 纯粹是因为开发者在扯皮和摸鱼所以进展缓慢以至于可以说退步...
oshio
2019-08-14 16:43:19 +08:00
操作系统从技术上真没那么难,操作系统严格来说不是难(至少不是相对论,黎曼猜想那种难),是复杂,这种复杂一定程度上是可以分解的。

单从技术层面,就算华为,或者全中国的技术的不行,那 nokia,黑莓,palm,微软也是连开发现代手机系统的技术都没有吗?如果是觉得这些是过时的公司了,facebook,amazon 不开发操作系统,你们真的认为是没有开发操作系统的技术吗?
dreamage
2019-08-14 17:25:54 +08:00
那是啥问题 键盘问题?
ryd994
2019-08-15 10:22:46 +08:00
@oshio 这是典型的人月神话思路
诺基亚是首先没有追上智能机的潮流,然后被微软收购后又被 wp 坑了一把。黑莓其实也是被智能机挤下去了而已。只是上层应用失误,无法变现。开发智能机并不一定需要重写内核。
oshio
2019-08-15 11:36:36 +08:00
@ryd994
symbian,meego,BlackBerry OS,plam,windows mobile (现在还有人记得多普达吗),windows ce (猜猜魅族第一款手机是什么系统),windows phone,虽然这些都凉透了,但都是智能机系统,有些当年还如日中天。

如果人月神话是绝对真理,我用 100 人精英团队开发了十年,你是就算用 1000 个同样的精英,也得差不多十年,那么在这些系统已经积攒下大量技术优势的情况下,android ios 又是如何突破人月限制,后来居上的呢?又有什么技术限制了 facebook,amazon 不能再来一次呢?如果说是这些公司都是因为技术上犯错才被超越,那么 apple google 就一定不会重蹈覆辙呢?
ryd994
2019-08-15 15:31:10 +08:00
@oshio 1. 人月神话是一种谬误,能把人月神话理解成某种真理的,你先去读过这本书再说。整本书通篇都在批人月神话思维。
2. 安卓用的是 Linux 内核。安卓核心代码是 Dalvik,当然这个后来也换了。Linux 提供广泛的硬件支持,Dalvik 确保应用独立于硬件,到处可用。这是安卓相比塞班最大的优势。Dalvik 当然也不简单,但是并不是内核,只是一个比较特别的 runtime 而已。
3.没有任何技术限制。但是任何事情不是只靠想就能做到的。大公司想做什么,都可以砸钱,不过砸钱也不代表立刻就能有,这就叫人月神话。
4. 前述,重申,如果不包括内核,而只是一个比较特别的发行版,那我一点都不会觉得奇怪
Facebook 搞 hhvm,Amazon 搞虚拟化,这些都是已经出了成果的。为什么不搞内核,因为从头搞个新内核真的太贵了。何不专注自己擅长的领域?商业公司要恰饭的啊。
5.苹果虽然 osx/ios 是基于 bsd,但实际上有相当多的改动。当年搞 osx 就留下人员和经验了,那再搞个 ios 也不在话下。
6. 微软搞 wince 也是同样的理由,然而起得太晚,连晚集都没赶上。这恰恰是一个不应该随便自创内核的例子。因为就算自创了内核,上层的各种库各种 app 没到位,一样完蛋。而且自创内核会浪费太多时间。
7.综上,如果说华为的新系统是基于 aosp,我不会觉得丢人。但是非要说连内核都是完全自主,我很怀疑到底有多少是真的自主。像楼主那样张口闭口就是 30 天自制操作系统,吊打 Windows/Unix-like,这就叫外行看热闹。
oshio
2019-08-15 21:06:14 +08:00
@ryd994 忘了给人月神话加上书名号了。

最重要的是,我觉得不能因为现在手机系统都是基于 inux/unix,就认为只有这俩适合,毕竟这俩最初的目标都不是手机。这些公司选择内核时,有一个凑合能用的,自然不会从头再来去开发一个新的,但这不意味着他们选择的就是最合适的(比如微软),或者他们没有技术能力开发一个。随着物联网的发展,针对这些设备的特点,开发更合适的操作系统的需求我觉得是存在的,只要有需求,技术应该不会是最大的问题,当然这都是猜测。

至于华为,看 ppt 是要分几步走的,最终是要自己的内核的,至于是吹牛还是真有,那就不得而知了。
ryd994
2019-08-16 01:15:05 +08:00
@oshio Linux 根据编译参数不同,下可嵌入式,上可超算,对付个手机还是绰绰有余。
嵌入式早就有嵌入式的系统了,比如
便宜的嵌入式没系统,比如单片机。
高级的用 rtos 因为需要实时性。Linux 也有编译成实时的选项,但和真正 rtos 比还是不一样的。
需要开发方便的用 Linux,因为这类一般是常见的指令集。可以直接用编译好的各类 Unix 工具。

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

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

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

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

© 2021 V2EX