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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

11139 次点击
所在节点    操作系统
102 条回复
q8164305
2019-08-13 13:17:31 +08:00
就是技术问题,考过试都知道,试卷从 60 考到 80 跟 80 分考到 100 分根本不是一个难度,越靠近极限难度越高,玩具 os 离真正的 os 还差得远
yukiww233
2019-08-13 13:18:59 +08:00
生态当然靠“兼容”啊
hoyixi
2019-08-13 13:23:27 +08:00
发动机原理都是公开的,然而不是人人都能造的,造出来了质量咋样也不好说;
CPU 原理也很简单,然而也不是人人都能造的,造出来了质量咋样也不好说~
reus
2019-08-13 13:23:55 +08:00
独立自主就是个笑话
参考朝鲜和韩国,同文同种,一个吃不饱饭一个四小龙
joouis
2019-08-13 13:24:57 +08:00
回复标题,至少技术是最大难点之一。我之前在阿里 yunos,巅峰时期一千来号开发人员,囊括了国内多少系统底层开发的大牛,结果呢... 3.0 和 4.0 系统烂成什么样,也不怪六七八线大叔大妈都不愿意用
BlackSas
2019-08-13 13:29:00 +08:00
其实我有点赞成楼主的。
Windows 多牛逼啊,wp 还不是死了。
美国公司的操作系统之间竞争,更多的是市场竞争。
国内出个 OS,如果真要扶起来,我觉得不是不可能。
nguoidiqua
2019-08-13 13:34:38 +08:00
现在做系统是不难,不过以 Linux 为例,它已经做了快三十年,投入人力不知道多少,你准备花多少人力和时间去做?上面有人说阿里 yunos 巅峰时期一千来人,Linux 内核的贡献者据说有两万人,整个 Linux 生态得有多少人投入?

就算你真的舍得花这钱这人这时间,问题还有个,你真的能找到比 Linux 那群开发者更好水平的人么?
anguiao
2019-08-13 13:34:42 +08:00
看看 Linux 的 GUI 都多少年了,也就现在这样,你真的觉得从头搞一个操作系统是个简单的事情?
Cooky
2019-08-13 13:35:07 +08:00
@BlackSas wp 死是因为微软作死,死透了是因为微软给用户喂屎,不是做不好,是根本没想好好做,到最后大势已去,说啥都没用
ryd994
2019-08-13 13:35:46 +08:00
不好意思你真做不到
真以为今天用的 Linux 是 linus 一个人写出来的?今天的 Linux,里面到底有没有他最初的代码都难讲。每个部分都重构过或者用了全新的 API。就算有老代码也不过是为了维持兼容性而已。

你花 30 天写的玩具 OS,别说 60 分,连 10 分都拿不到。

每年有过千的程序员向 Linux 提交代码,其中大部分是在公司支持下作为工作内容的一部分所提交的。华为虽然近年来有不少贡献,但也不过是众多公司中的一个而已。

https://www.linuxfoundation.org/2017-linux-kernel-report-landing-page/
sunocean
2019-08-13 13:52:19 +08:00
楼主想当然了。楼上说的对,还得多读书。
ryd994
2019-08-13 13:54:25 +08:00
"最大的难点根本不是技术问题"这点我不反对

但是你连技术问题都解决不了

Android 基于 Linux 你以为是 Google 不想纯自研? Fuchsia 吹这么就还不是没量产?

"并且作为一个更新的系统,只要开发人员不是太水,没有历史包袱在,做到比古老的 Windows,*nix 更优异不在话下。"
NT 叫古老? Linux 恐怕比你年轻多了。关键部分的性能一直是优化的重点。历史的包袱主要被开发者背了,对终端用户来说,性能要好最重要的是和硬件厂商的合作。其次是充分的性能优化经验。碰上蹊跷的性能问题,几十年的老工程师一样摸不着头脑。而且还没法挂 profiler。只能踏踏实实地控制变量收集数据,然后一行行分析源代码。
你张口就一句重写一定更好?你连现有的都不能理解就想弯道超车?

高级 Kernel Developer 值多少钱,你可以去问问

利益相关:我在工作中给 Linux 贡献过代码。工作时间,用公司的资源,拿着工资。
Macolor21
2019-08-13 14:07:17 +08:00
见过大部分框架,都是基于某些知名论文,如 Netty 也只是参照《 A Scalable Concurrentmalloc(3)Implementation for FreeBSD 》实现了 Java 版本的 jemalloc 然后对内存的管理。我相信中国也有许多能够阅读国外 paper 然后提炼出可用框架的人。但是什么时候能有写出这些论文的教授 OR Company 呢?
TobiahShaw
2019-08-13 14:16:28 +08:00
突然想到 Android 应该算是 GUI 最完善的 Linux 发行版(之一?)了吧,哈哈
Buges
2019-08-13 14:20:17 +08:00
@liprais #16 写个玩具数据库,没问题。Mysql,一个人肯定做不到。
@looseChen #17 做到比别人效率更高更好很难,但仅仅是为了不同而不同,绕过专利的话问题不大。

@yukiww233 #22
@joouis #25 兼容又是另一回事了。绕不过去的专利,许可,也没有了没历史包袱的优势。

@anguiao #28 Linux GUI 的生态...

@ryd994 #30 当然不是他一人。除了内核 Linux 生态更重要的是 GNU 套件编译器以及基础库等基本的软件。很多公司提交的代码是为了驱动自家硬件吧...
技术难点当然有,但论复杂度 Linux 内核较之于阿里这样的大厂上亿并发的整套系统恐怕也是不如的。
基于别人的系统套皮是因为省事而不是不能重写。(节省大量工作量)
不是重写就更好,而是舍弃历史包袱后会更好。像 Windows 下一代不再兼容 exe,(如果生态跟上的话)对整个系统是质的提升。即使技术有差距也能弥补了。

我想表达的是一个 OS 从技术上不存在什么鸿沟,壁垒。是工作量和投入的问题。cpu 架构也如此,仅仅为了不同而不同绕过专利不难,难的是相应平台上的系统,编译器等生态。当然光刻机工艺是另一回事。

不过目前国内正在做的对用户而言弊远大于利就是了。
gggxxxx
2019-08-13 14:21:15 +08:00
哪里来的风气那么喜欢吹生态?
就国内这种墙内环境,搞个红星系统都能用户数量过 10 亿,软件厂商扎堆。百度这种恶心人例子还看不到么?
国内连相关人才都没几个做个毛的 os。偷点开源代码就是能耐了?相关计算机理论论文有几篇是国人写的?没有真正的理论知识做基础怎么写 os ?难道像楼主说的照着教程抄一遍?自己的思考和理念在哪里?
nguoidiqua
2019-08-13 14:24:50 +08:00
说句实话吧,国外搞系统都几十年几代人才积累了,有丰富的经验,不管生态上是成功也好失败也好,别人是真的很容易凑百十号人就做出一个技术上能用的新系统。

但不要以为别人容易,就等于谁都容易,国内开发者其实很缺系统开发方面的经验,很多东西说起来容易,但知易行难啊。不做几个失败的系统,就很难做出成功的系统,问题是国内都想着让别人去培养人才积累经验……

其实华为的所谓微内核,没有 Fuchsia 的 Zircon 内核 在前面探路,不是那么容易做出来的。
Buges
2019-08-13 14:35:47 +08:00
@gggxxxx #36
@nguoidiqua #37
你说的对啊,”独立自主“的受益人可不是用户,是谁那就不能说了。
做出来的系统更好的 qj 用户也是事实。
自己的思考和理念? sorry,不存在的。那也不影响做系统,那国外先行者的借( chao )鉴( xi ),然后为了不同而不同就完事了~
写个系统的难度跟让别人为你的系统写软件是不能比的。
我 diss 的就是那些认为出 os 是技术独立创新优越的人,实际上在国内真出一个 OS 的话最能体现的是行政能力的优越才对🤣。
youngliu
2019-08-13 14:46:53 +08:00
看到你写的这个:“代码,根本就是小事。” 我就呵呵了
momocraft
2019-08-13 14:49:52 +08:00
从公开知识 (包括已有的正经研究和实现) 推测他们的细节很可能不准
能把几个内核掺在一起的 “微内核” 更可能是重新定义了内核

这股风吹起来,以后找工作就要会写分布式 UI 了 lol

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

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

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

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

© 2021 V2EX