为何 Linus 一个人就能写出这么强的系统,中国却做不出来?
知乎用户 默然 发表 你看 Linus 自传就完事了。 Linus 研究生时期开始写操作系统(大约是 91 年),那时候个人电脑(PC)虽然兴起一些年了,但是还只是小部分程序员和狂热爱好者的玩具。硬件基本上都靠自己攒,软件也是用开源系统各种 …
你看 Linus 自传就完事了。
Linus 研究生时期开始写操作系统(大约是 91 年),那时候个人电脑(PC)虽然兴起一些年了,但是还只是小部分程序员和狂热爱好者的玩具。硬件基本上都靠自己攒,软件也是用开源系统各种魔改。所以普通人根本没有折腾 PC 的动力和理由。
Unix 已经霸占了许多生产力场景,唯一的缺点就是贵,而且很多发行版是闭源的。个人用户根本不要考虑。
那时候 Linus 自己攒了一套 386,但是找不到好用,廉价 / 免费的操作系统用。当时社区里当然也有一票免费且开源的系统,但是要不就是兼容性差,要不就是各种坑,要不就是没软件,总之各种各样的问题。而兼容性是最主要的问题,那时候的 CPU 不像现在的流行架构就那么两种(x86,Arm),那时候叫的上名的架构有十几种,所以操作系统的兼容性是非常重要的。
Linus 开始自学操作系统,发现了一本很好的教材《操作系统:设计与实现》,然后花了一个暑假看完,开始自己写操作系统。
《操作系统:设计与实现》这本书的作者是塔雷鲍姆,写书的时候已经是业界大牛了,他在大学为了教学操作系统,但苦于学生买不起太贵的 Unix 发行版,于是自己写了一个兼容 Unix 标准操作系统(主要是兼容 POSIX 标准),叫 Minix(名字上就很对仗,Universe - mini)。
Minix 这个系统就是为了教学而生的,只要买了这本书,就免费邮寄一份 Minix 源代码。Minix 为了方便教学,保持代码的简洁,塔雷鲍姆拒绝向里面添加太多复杂的功能,。所以 Minix 虽然实现得优雅,但是社区的玩家要自己日常用,要魔改很多东西。
对了,Minix 是微内核的。对,微内核的概念存在几十年了,而不是 2019 年诞生的。
微内核的结构非常优雅,文件系统,内存管理,硬件驱动都是以进程形式存在的,而不是内核代码,这意味着驱动挂了不会带着内核一起挂。缺点就是系统调用开销太大,以至于慢到无法接受。所以现在的桌面系统,没有纯微内核的。
对于教学系统来说,微内核不是问题,毕竟是教学,不是生产工具。
社区和 Linus 都很喜欢 Minix,但是都不满足于 Minix 作者因为教学目的而放弃兼容性和可扩展性。于是 Linus 在自己运行 Minix 的 PC 开始了 Linux 的开发。Linux 是宏内核的。Linux 本来不叫 Linux,Linus 是一个很内向的人,不好意思取这么自恋的名字,但是合作者强烈建议用这个名字,所以就用了,x 代表 unix 的联系(都兼容 POSIX)。提一句,Unix 不是为开源和免费而生的,而是为商业而生的,但是 Unix 的发展催生了最好的开源环境(比如 GNU)。
注意,这几年的社区,属于『军阀混战』,大家都缺一款好用的免费操作系统,但并不只是 Linus 想到要解决这个问题,理查德斯托曼领导的 GNU 组织在 90 年代就一直酝酿一款免费的操作系统,因为他们的目的是与商业的 Unix 对抗,光有一个 GCC 编译器还不够,还需要有自己的操作系统。
社区里各种技术人员也对 GNU 的操作系统非常期待,但是这玩意儿难产了。直到很久之后,Linux 流行起来后,依然没做出来。
最开始的 Linux 版本,只有几千行代码,现在基础扎实的 CS 本科生,花一段时间都可以看懂,甚至有些 OS 教材就是用 Linux 最初的版本来教学的,比如哈工大李志军的课程。
Linus 从一开始就不断在 minix 论坛上发布自己的进展,搞得论坛上一堆人非常感兴趣,于是许多人加入了开发,这时候 Linus 用邮件接收每个人的代码,然后手动合并。没过一段时间,minix 论坛上就全是讨论 Linux 的了,虽然塔雷鲍姆不是个小气的人,但是这么搞也让塔雷鲍姆很不爽。
不久之后 Linus 和塔雷鲍姆之间爆发了一次冲突。塔雷鲍姆在论坛上写了一篇文章,论证微内核与宏内核的优缺点,其实主要是攻击宏内核,说宏内核除了性能好点,全是缺点,说 Linux 过时了。Linus 是脾气暴躁的人,在技术问题上从不妥协。于是开始嘲讽 minix。Linux 的可移植性比 minix 更好,而且免费开源(minix 需要买书后获得)。
然后来来去去吵了很多次,具体可以看
https://www.oreilly.com/openbook/opensources/book/appa.htmlwww.oreilly.com
只是他们两个当时谁也没想到,这次论坛上的口水战会成为几十年后人们依然提起的操作系统之争。
Linus 并不恨塔雷鲍姆,他说后来有一次去了塔雷鲍姆的演讲,完了之后拿着那本书想要塔雷鲍姆的签名,但是没有等到人。
我想 Linus 多少还是尊敬他的,毕竟是自己学习操作系统的领路人。
在 Linus 和社区人员的努力下,通过扩展 GCC 支持 Linux,Linux 也兼容了越来越多的平台。其他各类软件移植到 Linux 也就变得容易了,尤其是在那个许多软件以源代码方式发行的时代,只要有对应平台的编译器,编译一次就算移植好了。
赶上 PC 发展的浪潮,但还不够,毕竟苹果微软不是好对付的,商业操作系统的易用性依然很强。
但是 Linux 开始被各类企业青睐了,因为不是每个企业都有钱花高价买一套 Unix 来用,或者是更贵的软件 + 硬件一体的大型机来用。Linux 让他们看到了省钱的希望。
GNU 开始支持 Linux,Linux 成为了 GNU 的官方操作系统,所以现在叫 GNU/Linux。可以说 Linux 和 GCC 几乎是最伟大的两个开源项目。它们合起来就更强悍了。
GCC 让软件方便移植,Linux 软件生态就好了,软件生态好了用户就多,用户多了就让硬件公司眼馋,各路硬件公司都为 Linux 开发驱动和各种扩展,以支持自家硬件,这样用户就更多。这个倍增效应是很强的。
Linus 在项目达到一定规模后就不再亲自写代码了,主要是合并代码,毕竟全球那么多人提交代码,他一个人审核合并就够忙了,亲自写代码也没时间。
直到有一天他觉得忙不过来了,审核代码会遇到很多傻逼代码和开发者,于是他开发了现在最流行的版本控制工具,git,字面意思就是饭桶。
从整个发展历程来看,Linux 在几个十字路口都做了非常精准的选择。
从 1991 年 0.0.1 版到 1994 年 1.0 版,这期间 Linux 进行了极其快速的迭代,社区玩家在使用中给出了宝贵的意见,最好的测试就是让用户去测试,这保证所有的更新都是实际有效的。
要知道,Linus 在 1991 年开始开发时,根本没想过 Linux 有一天能改变世界,那个时候,他跟所有的社区玩家一样,期待着 GNU 的系统,所以他在论坛上解释,做 Linux 只是一个业余爱好,最多用来填补 GNU 系统出来之前的这段空白时间。
但 GNU 由于各种名誉加身,导致目标定得很高,于是项目一直延期,同时市面上的系统也在发展,GNU 又继续调高目标,然后继续延期,最后难产。
而 Linus 从一开始,就没什么心理压力,每一点成果都在社区上公布,快速获得反馈,然后及时调整。这种开发方式无意中就超越了 GNU 的闭门造车。
RedHat 这种系统免费,服务收费的模式也取得了成功,这大大激励了其他发行版开发商的信心。目前 Linux 的发行版,没有一千也有一百。
96 年 2.0 版发布,开始支持多核 CPU,这个重要的更新,让很多企业开始考虑 Linux。
之后几年 Linux 在服务器的份额快速上升。
03 年 2.6 版发布,稍微了解过 Linux 的人都只要这意味着什么。2.6 版本跨越 03 年 - 11 年,中间有许多小版本更新。2.6 版意味着 Linux 第一次真正具有了高稳定性,高可用性,高可伸缩性的工业级别操作系统。
05 年 git 诞生,Linus 和核心团队摸也索出一套稳定实用的合作开发方式。
之后就是遍地开花的发展历程了。
不得不说,他对操作系统发展方向的把控是精准的。
总结一下,Linux 的成功,以下几个条件必不可少:
再总结一下,一个人的命运,当然要靠自我奋斗,但也要考虑到历史的进程。
Github 上 Linux 贡献者数量是∞
说实话,是你想多了……
Linus 确实在 Linux 的内核开发上做了很多工作,诸如项目发起,最初版内核的设计等等,但是你如今拿到手的任何一个 Linux 发行版中,包含了至少上百个 GNU 项目,无数的其它开源项目,以及数十万人贡献的代码。这里所言道的 Linux,是指 Linux 这个内核,而内核这玩意不包括任何应用层,甚至那个黑框框命令行都并不是 Linux 的一部分。内核暴露的是硬件到软件的抽象、任务和资源调度,给出的是调用系统的编程接口,仅此而已。
Linus 所做的 1991 年的第一版内核有些什么功能呢?简单的说,是这样的:
一个有着硬件平台限制,能够运行起来的,与当时便不是特别热门的叫做 Minix 的操作系统内核大部分功能兼容的内核。
要说能力,那是非常强的,因为二十多年后的今天的大学生们即使上了操作系统课程做大作业要写个 OS 内核,通常也不会做得多全面,更不提完全兼容某标准(当然更可能是因为没有做那么精细的需求)。但若只是如此,Linux 也就止步于「优秀的大学生课程作业」水平了。
真正有意义的是他把 Linux 扔网上与社区协作开发(后来加上了 GPL 协议),而后在 2 年之内有超过百人折腾这个内核。而在当时的商用环境普遍使用 Unix 而主要发行版的 Unix 都贵破天际的情况下,在 4 年后终于有人觉得这个开源内核加上 GNU 工具能够起到替代部分 Unix 节省成本,才真正意义上火起来的。而彼时已经有上千人参与内核的开发,其中甚至有大批 RH 等公司的专职雇员。
没错,就这么个内核,没有任何人机交互,仅仅提供软件运行环境的玩意,尽管最初雏形是 Linus 的作品,四年后已经是数千名对操作系统有研究的程序员共同开发的产物了。而这只是一个现有的 Linux 发行版中占比重很小的一部分(尽管很重要),可以交互的命令行环境 bash 来自于 GNU,图形界面 Gnome 来自于 GNU,声音服务来自于 GNU,显示服务来自于 GNU(近来的发行版中也有其它开源实现)…… 连编译器都来自于 GNU,而这些东西,Linus 几乎都没有参与。
他是大神,是 Linux 之父,但是说 Linux,尤其是现在广泛使用的功能完整的 Linux 是他一个人开发的这种事情,是不存在的。
曾经看过关于 Linus 的回忆的书(评论里也讲了,这本书叫《Just for Fun》),挺有意思的,凭记忆总结一下:
如今操作系统内核经过几十年的进化,已经成为一个庞然大物。
GNU/Linux 是 Linus 牵头开发,但它并不是 Linus 一个人开发,而是全世界各个国家(包括中国)成千上万的程序员一起开发的。Linux 不属于 Linus 个人,也不属于任何组织。按照 GPL 的协议标准,GNU/Linux 是全人类的财富。任何人在遵守 GPL 规则的基础上,都有权力使用。
GNU 事实上是软件行业的共产主义运动。不能笼统的讲中国做出来做不出来……
计算机民科三大经典问题:
1,中国为什么做不出自己的处理器
2,中国为什么做不出自己的操作系统
3,为什么没有中文编程语言
隔三差五就会有人问,解释多少次也没用的。
总之,你所有的概念都没理解对。
Linux 是模式的胜利。
你以为举全国之力很 NB?
可是想没想过, Linux 其实是举全世界之力写出的系统?
.
Open-source
Open-source 的研发模式,让「举全世界之力」成为可能,而非 Linus 的个人英雄主义。没有 Open-source 的开发模式, Linus 再 NB 也不可能构筑出能影响全世界的系统。
.
众包
Linux 内核不同版本,每个开发者的平均代码贡献,其实也就是一万条左右( Linux 今天已经超过 2000 万行代码了)。
Open-source , git( Linus 自己弄的,说明他对众包研发的新模式有多么的清晰) ,github,Community ,Foundation 等等一整套关于 Open-source 的研发方法论,工具和组织方式的齐备,才让 Linus 这个英雄,可以调动全世界的开发者,真正呼风唤雨。
.
理想
当然,模式的创新,也必须伴随理念的传播。早期 Linux ,还是全球范围内的无报酬的非商业程序员在做贡献。
.
商业
但是理想主义是不可长久的。今天 Linux 发展的主要推动力量,变成了一些通过 Linux 成功构建了生意的公司。包括红帽, Intel , Google 等等,不乏全球顶级科技公司。
.
最后的话
所以简单来看, Linux 能成,
首先需要全新的模式和匹配的方法,工具和组织。
其次需要 Linus 这种大神的英雄主义和无数追随者理想主义的无私奉献。
然后需要商业利益的助推。
最终,促成一个真正能深刻影响世界的结果。
而整个的过程,也伴随着不同理念的争论和妥协,比如商业化和反商业化等等。
.
你觉得,举全国之力什么都能干成。。。
你有深刻洞见软件研发精髓所选择的开源模式吗?
你有匹配的但是创新的方法论,工具和组织吗?
你有构筑理想主义驱动力的能力吗?
你有探索商业模式最终实现长久盈利的商业冒险基因吗?
你有争论但是又寻求共赢的妥协精神吗?
这是智力,理念和价值观的差距。
不排除你今天举全国之力,能重写一个 Linux 。。。但是有这这种智力,理念和价值观的 Community ,而与此同时。。。
又在搞些什么呢?
Linus 的成功是一种跨时代理念的成功,那就是 opensource 如何工作,很多程序员如何协作。linux 0.1 版本做到的事情很多系统当时都有做到或接近做到,但是 linus 是第一个让大型协作项目社区跑起来的人。
这个问题指代极其不明确:Linux 发行版和 Linux 内核是有区别的
而且题主对 Linux 发展史缺乏了解,从我记忆深处翻出一篇 Linux 发展史的文章,希望能让题主对 Linux 发展史多一些了解。
(1)Linux 内核的诞生与发展:
[1] 1991 年的 10 月 5 日,林纳斯 · 托瓦兹在 comp.os.minix 新闻组上发布消息,正式向外宣布 Linux 内核的诞生(Freeminix-likekernel sources for 386-AT)。
[2] 1993 年,大约有 100 余名程序员参与了 Linux 内核代码编写 / 修改工作,其中核心组由 5 人组成,此时 Linux 0.99 的代码大约有十万行,用户大约有 10 万左右。
[3] 1994 年 3 月,Linux1.0 发布,代码量 17 万行,当时是按照完全自由免费的协议发布,随后正式采用 GPL 协议。
[4] 1996 年 6 月,Linux 2.0 内核发布,此内核有大约 40 万行代码,并可以支持多个处理器。此时的 Linux 已经进入了实用阶段,全球大约有 350 万人使用。
[5] 2001 年 1 月,Linux 2.4 发布,它进一步地提升了 SMP 系统的扩展性,同时它也集成了很多用于支持桌面系统的特性:USB,PC 卡(PCMCIA)的支持,内置的即插即用,等等功能。
[6] 2003 年 12 月,Linux 2.6 版内核发布,相对于 2.4 版内核 2.6 在对系统的支持都有很大的变化。
-—— 引用自 linux_百度百科
(2)Linux 发行版的诞生和发展:
[1] 英国大学生 Owen Le Blanc 说,连 fdisk 和统一的软件安装来源都没有的操作系统太坑爹了,于是有了 MCC Interim Linux,世界上第一个 Linux 发行版。(1992)
[2] 英国大学生 Peter MacDonald 说,作为一个操作系统,至少需要在内核基础上绑定 TCP/IP 和 X 窗口这样的基本功能,于是有了 Softlanding Linux System(SLS)。(1992)
[3] 美国大学生 Patrick Volkerding 说,SLS 维护的不好,于是有了 Slackware。(1993)
[4] 美国大学生 Ian Murdock 说,SLS 维护的不好,而且我们需要一个秉承 Linux 和 GNU 的开放精神的发行版,于是有了 Debian。(1993)
[5] 德国的四个数学系大学生 Roland Dyroff,Thomas Fehr,Burchard Steinbild 和 Hubert Mantel 说,我们需要一个德文版的 Slackware,于是有了 S.u.S.E。(1994)
[6] 美国软件工程师 Marc Ewing 和年轻的创业者 Robert “Bob” Young 说,Linux 可以为企业提供服务,于是有了 Red Hat(红帽)。(1994)
[7] 全球各个学院的 Geek 们陆续发布了 Linux Universe,DILINUX,Monkey 等发行版,只是它们都很短命。(1995-1997)
[8] 美国创业者 D. Jeff Dionne 和 Kenneth Albanowski 说,我们需要为摩托罗拉 DragonBall 系列开发一个发行版,于是有了 uClinux。(1998)
[9] 日本工程师 Scott Stone 说,我们要为亚洲用户们做一个红帽定制版,于是有了 TurboLinux。(1998)
[10] 费米实验室说,红帽很好,但我们需要做一些定制,于是有了 Fermi Linux(1998)。
[11] 法国大学生 Gael Duval 说,我要让红帽对于新用户来说很好用,于是有了 Mandrake,也就是现在的 Mandriva。(1998)
[12] 中国程序员邓煜、廖生苗和李凌说,我们要有完全中文内核的 Linux,于是有了蓝点。(1999)
[13] 美国程序员 Daniel Robbins 说,我们需要一个没有预编译的二进制包,用户可以需要什么加什么的发行版,于是有了 Enoch Linux,也就是后来的 Gentoo。(1999)
[14] 加拿大软件公司 Corel 说,Linux 也许能够帮助我们的软件扩展更多用户,于是有了 Corel Linux Desktop,也就是后来的 Xandros。(1999)
[15] 德国某 ISP 的工程师说,我们需要一个廉价的、有防火墙和杀毒等功能的网络防护系统,于是有了 Astaro Security Linux(现在的 Astaro Security Gateway)。(1999)
[16] 荷兰程序员 Gerard Beekmans 说,我们需要一个用户能够完全自定义并掌控的操作系统,于是有了 Linux from Scratch。(1999)
[17] 苏格兰音乐家兼程序员 Jay Klepacs 说,多媒体人需要一个能够替代 Windows 和 Mac OS 的操作系统,于是有了 Peanut Linux,也就是现在的 aLinux。(1999)
[18] 中科院软件研究所说,我们要有自主产权的国产操作系统,于是有了红旗 Linux。(1999)
[19] 美国系统管理员 Ryan Finnie 说,我们需要为系统管理员们做一个专门用来系统、文件修复的发行版工具盘,于是有了 Finnix。(2000)
[20] 奥地利(德国)电子工程师 Klaus Knopper 说,我们需要一个可以在 CD 或 U 盘上就能运行的操作系统,于是有了 Knoppix,也有了 Live CD 和 Live USB。(2000)
[21] 瑞典程序员 Per Lidén 说,我们需要一个能够贯彻 UNIX 的 KISS 原则的、基于 tar.gz 打包机制的发行版,于是有了 CRUX。(2000)
[22] 日本的 Miracle Linux 公司说,我们需要一个能够充分支持 Oracle 数据库的发行版,于是有了 Miracle Linux。不过,后来 Red Hat 对 Oracle 的支持增强,Miracle Linux 表示很尴尬,后来和红旗合作,变成了 Asianux。(2000)
[23] 美国创业者 Michael Robertson 说,我们需要一个能跑 Windows 软件的 Linux,于是有了 Lindows。(2001)
[24] 当年 Linksys 无线路由 WRT54G 的固件在 GPL 下开源,一伙开发者说,我们用这个做一个嵌入式发行版在路由器里用吧,于是有了 OpenWRT。(2001)
[25] 魔法爱好者 Kyle Sallee 说,让我们做一个可以像念魔法一样使用的发行版吧,于是有了 Sorcerer。(2001)
[26] 捷克程序员 Tomas Matejicek 说,我们需要一个可以装在口袋里拿来拿去的 Slackware,于是有了 Slax。(2002)
[27] 美国大学生 Aaron Griffin 说,Linux 发行版应该更轻量,更简单,不需要的全都不要,于是有了 Arch Linux。(2002)
[28] 美国工程师 Warren Woodford 说,SUSE、红帽、Mandriva 神马的太难了,于是有了 MEPIS。(2003)
[29] 美国开源爱好者 John Andrews 说,我们需要为那些安度晚年的硬件们设计一个发行版,于是有了 Damn Small Linux。(2003)
[30] 澳大利亚工程师 Barry Kauler 说,我们需要一个用内存就能跑的超轻量级发行版,而且我很爱狗,于是有了 Puppy Linux。(2003)
[31] 给 Mandrake 打包打烦了的 Bill Reynolds 说,我就是想自己打包源代码自己说了算,于是有了 PCLinux。(2003)
[32] 一群系统管理员们说,我们需要一个不用花钱的红帽,于是有了 CentOS。(2003)
[33] 红帽说,Red Hat Linux 这种桌面服务太累,我不想做了,交给社区吧,于是有了 Fedora Core。(2003)
[34] 西班牙安达鲁西亚政府的官员说,我们在学校、图书馆、公民活动中心这种公共场所使用 Linux 吧,于是有了 Guadalinex。(2004)
[35] 南非富豪程序员 Mark Shuttleworth 说,我们应该有个专门针对桌面的 Debian 衍生版,于是有了 Ubuntu。(2004)
[36] 台湾的国家高性能计算中心的研究员 Steven Shiau 说,我们应该有个专门做灾难恢复、磁盘克隆的 Linux 工具盘,于是有了 Clonezilla。(2004)
[37] 中国开发者冷罡华和刘文欢说,中文的 Linux 还可以做的更好,于是有了 Hiweed,也就是现在的 Deepin。(2004)
[38] CERN 说,费米搞了个发行版,看来我们也需要一个,于是有了 CERN Linux。(2004)
[39] 费米实验室和 CERN 说,既然双方都在搞 Linux 发行版,那能不能合作一下?于是有了 Scientific Linux。(2004)
[40] 来自各个国家的几个黑客说,把黑客工具打包成一个发行版应该很酷,于是有了 Auditor Security Collection,也就是后来的 BackTrack。(2004)
[41] Canonical 说,我们需要让 KDE 爱好者也能用 Ubuntu,于是有了 Kubuntu。(2005)
[42] Canonical 说,一个瘦客户端架构并预装了教学软件的 Ubuntu 会在学校里更受欢迎,于是有了 Edubuntu。(2005)
[43] 诺基亚说,用 Linux 应该能搞出不错的智能手机 / 平板的触屏操作系统,于是有了 OS2005,也就是后来的 Maemo。(2005)
[44] 法国安全工程师 Jean-Philippe Guillemin 说,我们需要一个专门针对互联网应用、多媒体和编程人员的发行版,于是有了 Zenwalk。(2005)
[45] 来自法国的软件工程师 Clement Lefebvre 说,Ubuntu 还可以更好用,更漂亮,具备更多的辅助功能,做到更多国家的本地化,于是有了 Linux Mint。(2006)
[46] 一群 Ubuntu 用户们说,我们应该有个基于 Xfce 桌面的 Ubuntu,于是有了 Xubuntu。(2006)
[47] Novell 说,把 SUSE 桌面版交给社区吧,于是有了 openSUSE。(2006)
[48] 红旗说,把红旗桌面版交给社区吧,于是有了 Everest,也就是现在的 Qomo。(2006)
[49] 甲骨文说,我们需要自己的 Linux 产品线,于是有了 Oracle Enterprise Linux。(2006)
[50] 一群 Ubuntu 爱好者说,我就要一个只装了 MythTV 的 Ubuntu 做家庭影院,于是有了 Mythbuntu。(2007)
[51] 英特尔说,Atom 处理器在移动和上网本领域有点不给力啊,需要一些强力的 OS 协助推动,于是有了 Moblin。(2007)
[52] Damn Small Linux 的开发者 Robert Shingledecker 说,其实系统还可以更小,我们把一个应用浏览器 GUI 加载到 RAM 中运行其实就可以满足很多用户的需求了,于是有了 Tiny Core Linux。(2008)
[53] Google 说,其实操作系统有 Chrome 就够了,于是有了 Chromium OS。(2009)
[54] 法国创业者 Tariq Krim 和 Romain Huet 说,把常用的什么社交网络、在线视频照片网站的图标放在桌面上当做 Web 应用就挺好的,于是有了 Jolicloud。(2010)
[55] 英特尔说,设备这种事还是需要懂行的来做,诺基亚你来跟我一起干吧,于是有了 MeeGo。只是,后来 AMD 也掺和了进来,而诺基亚却走了,这是后话。(2010)
-—— 引用自 Linux 发行版进化史(文字版) - 51CTO.COM
我觉得得这么答:
1. 1969 年,贝尔实验室的 Ken Thompson 和 Dennis Ritchie 等人写了个操作系统,叫做 UNIX。UNIX 最初是用汇编和 B 语言混合写成的。(两位大神为了改进 UNIX 又发明了 C 语言,之后用 C 语言完全重写了 UNIX。)
2. 最初的 UNIX 发展成了 SystemV, 同时分出了 BSD 和 SunOS(后来成为 Solaris) 等。从 BSD 又分出了 386BSD、NetBSD、FreeBSD。还有一个 NEXTSTEP 是 MacOS 的前身。
3. 早期的 UNIX 都是专有系统,1983 年另一位大神 Richard Stallman 发起了 GNU 计划,目标是创建一个完全自由的操作系统。到了 1990 年,Richard Stallman 亲自 / 带领其他大神们先后完成了大部分重要组件,比如 gcc、make、bash 等 (现在还能在 comm rm ls split diff cat tee make 等命令的 man page 里看到 Stallman 的签名),以及 Stallman 更早些时候写了编辑器 emacs,就差一个操作系统内核了。
4. 本来 GNU 计划中的内核是 Hurd(实际还不是底层,底层是 Mach 或 L4),但是一直不太顺利。Linux 内核的出现可以说是不早不晚正合适,它和 GNU 的大部分组件结合,才是我们一般所谓的 Linux。
总之,如果没有 Linus,我们今天用到的 Linux 在用户层面上不会有太大变化,不过名字肯定不一样了。
Linux 系统的生产是一种极其先进的模式,即共产主义的生产模式,即数十万人不领一分钱工资,贡献各自的聪明才智,集合了大大小小的力量共同生产出了 Linux,然后各取所需。在这种生产模式里面,没有国界、民族、文化的差异存在,但又有极强的包容性。
这种生产模式是我们梦寐以求想实现的,但是,对不起,共产主义一旦发生,国家的界限就会被打破,所以,所谓的举全国之力,以一国为限的思想,本身就与这种模式相对冲。一个走到共产主义的人,还想着国家民族,就像那个什么?(这里需要举一个例子,说明获得高层次趣味之后,不会留恋低层次趣味)
Linux 社区的参与者有各种利益群体,在社区之外围绕 Linux 有各种公司和生意,社区里面的贡献者,可能就在这些公司里面领取薪水,但是,他们参与社区工作不需要公司同意,很多人是匿名参与,他们贡献自己的代码,也获取别人的代码,中间没有任何阻隔。成果的分享是按需分配,而不是按照贡献大小,即使一行代码都没有贡献,你仍然可以获取所有的 Linux 代码和研究成果。因此,在社区里面,是纯粹的一种共产生产模式。创始人只是开创了目标和起步的成果,真正做大这个社区的是这种生产模式。
软件生产是人类最早实现共产生产模式的领域,因为软件生产成果物有一个特征,取之不尽,代码复制成本为零。以前我国搞过种田的共产生产模式,即人民公社,不管你种不种田,不论你的贡献,只要肚子饿了,就可以到食堂吃饭,吃了几个月后,人民公社倒闭了,后来还饿死了极少数的几个人,在党的领导下我们及时发现了,任何事物都有其客观发展规律,没有所必须具备的客观条件,单纯靠主观意识无法成事,历史不以人的意志为转移。
我们要思考,为什么像 Linux、Apache、MySql、维基百科、比特币等等这些开源社区项目能够成功,取得巨大的成就和成果。我觉得开源运动的一个最大的价值,是发现并实践了更高层级的理念的存在和现实可行性。高度理性的群体愿意抛开直接的利益,从事没有直接回报的工作,并且能够在技术上,实现有效的组织和管理。
按照马斯洛的人的需求模型,开源社区无疑是人的自我价值实现的一个出口,有这样需求的人,是客观存在的,虽然比率是低的,但是放到全世界来看,这样的人集合起来并不少,而且因为抛开了直接的利益诉求,反而更加专注和纯粹。
同时,我们不能否认间接利益的存在,间接利益的来源是多种多样的。比如说,开源社区的项目,是分层级的,参与其中,对个人而言是可以获得与最顶尖的思想学习交流的机会,有利于增强自身的能力,这种回报完全是间接的,但并不会小。Open 开放的思维模式有利于自身的提高,因为人的思维惯性使然,导致人的局限性是永远存在,越 Open 才会全方位吸收,越强大,这就不赘述了。
linus 并没有靠自己写出 “这么强” 的系统。但是人家贵在动手。如果你们可以只为了想写操作系统而去写操作系统,不要管他有没有用,那说不定迟早也能搞出一个。为什么他要写 linux 而不是买 unix,还是因为穷。要是 linus 有点家底,说不定就没有 linus 了。
集合大家搞出一个这么强的系统给他带来了什么荣华富贵了吗?我觉得这一点比起 dave cutler 还是要差点。dave cutler20 年前就可以买 500 万美元的房子,linus 前几年还要在黑 5 抢显示器,就跟你们现在上拼多多买 iphone 是差不多的(逃
你看你们跟消费已经摸到 linus 了,为什么还不满足,为什么还要赚更多的钱,而不是去写操作系统?
因为你搞错了。
Linus 写的是 Linux 内核,不是 Linux 操作系统。题目错了,没有讨论价值。
据不完全统计,Linux 平均每天修改 100k 行代码,增加 10k 行代码,删除 8k 行代码,你真以为 Linus 是神仙吗?
Linus 也没有很多人说的这么不堪,他主要干了两件事情:
一是这个操作系统最初的作者,并且贡献给了开源社区。Linus 本人的编程水平,和对操作系统内核的理解绝对是大神级别的。另外关键的是黑客精神十足,举个栗子,对版本管理软件不满意自己转头去写了 Git.
二是开源社区的管理者和维护者。Linus 本人团结了一群高水平的贡献者。用他自己的话说叫 “Network of Trust”。所以 Linux 一直能跟上时代,不断加入新技术。这一点其实是很不容易的,尤其是这些顶尖的 System Hacker 好多都是个性强烈,脾气比天大。Linus 本人虽然脾气不太好,经常跟人在网络上对喷,但是有个优点,基本上能做到对事不对人,所以 Linux 形成了一个健康的开源社区。
所以,举 “全国之力”?中国高水平的程序员有美国欧洲愿意贡献给开源的高水平程序员加上 IBM, Redhat, Intel 拿着工资给 Linux 贡献代码的程序员多吗? 注意是高水平程序员。
举全国之力能建立起 Linux 一样的 Ecosystem 吗?让所有的硬件厂商给你写 driver, 让所有的软件开发者把软件移植到你新造的轮子上吗?
Linus 写的是 Linux 内核,不是全部 Linux 系统。
不过话说回来……
为何 Linus 一个人写出这么强的内核,英国举全国之力也做不出来?
为何 Linus 一个人写出这么强的内核,日本举全国之力也做不出来?
为何 Linus 一个人写出这么强的内核,印度举全国之力也做不出来?
……
先问是不是,再问对不对,再问好不好,再问蠢不蠢
看看我从我乎截的图
这个问题和我之前看到的 “为什么我们不发明新协议替代 TCP/IP” 这个问题有些类似
操作系统,不光是一个内核的问题,操作系统是一个生态系统,不仅要有一个强劲的 kernel,更重要的是周边软件。要是 Linux 没有这么多社区,商业公司贡献,它能成为驱动互联网的引擎吗?
况且,为什么一定要一个 “自主” 的操作系统,Linux 的内核和许多软件都是开放源代码的,编译器也有开源的。这一切的一切都是透明的,你怕什么?怕有后门?人家把衣服都脱给你看。怕米帝不给你用?抱歉啊,都是开放的,我们完全可以自己维护走
Linus 吗?
你这个认知是有问题的,Linux 系统最初是由 Linus 开发,但是代码量和现在的 Linux 比较算得上极少量的了,Linux 的发展是很多公司、个人、社区的共同维护与完善。
我个人觉得并不是中国人完成不了,而是已经有了 Linux 这样的优秀的轮子,就没必要费时费力的重造轮子,况且即使中国有人以新的设计思想设计了新的操作系统,不见得就比现有的 Linux 优秀,开销巨大,中国的国情与社会资源决定了很难有企业不图利益开展这种基础研究。国家有国产操作系统相关经费,记得前几年的确有一款国产操作系统(名字忘记),最后曝光出来内核代码与 linux 高度相似,如今的 ubuntu kylin 也是加个 UI,然后定制些软件。
不是中国人笨开发不了,而是性价比太低,开发出来的操作系统不一定被市场接受。其实还有一点,操作系统是一个软件生态,还有许许多多相关的配套资源,比如软硬件、协议、规范需要开展工作,这个生态是很难建立的。就比如你有 android 系统,但是没有软件来使用,这没有竞争力
Linus 只是赶上了时代,他只是一个人写出来了 linux 1.0 内核,linux 发展到现在,更多靠的是社区的贡献,Linus 只是掌舵人
当然_要靠_自我_奋斗_,但是_也要_考虑到历史的行程
linus 当初是个学生的时候写的那个 linux 也确实就是个优秀学生作业水平,代码质量并不很高,设计也并不成熟,可以看看 http://oldlinux.org。
但是他开源出来并允许大家修改贡献代码,获得大量开发者追捧。那时的 minix 不允许修改,bsd 正陷入诉讼,linux 在开源社区支持下快速发展起来。
他妈的, FSF 组织哭死,这一个写内核的,把整个举 GNU 之力的荣耀拿光了。
Linux 是一个内核,国内能写出一个操作系统内核的人也不是没有。但是 Linux 之所以成功不是因为 Linus 能力有多强,确实 Linus 是大神级的人物,但是 Linux 的成功更多的是因为社区和生态的完善,一个系统要想有市场要么像 Microsoft 或者 Apple 那样有强大商业背景支撑,要么就要像 Linux 这样有强大的社区。
当然题主可能会将 Linux 发行版与 Linux Kernel 混淆,国内也不是没有好的 Linux 发行版,深度 Linux 也是很棒的。
另外不要谈什么举全国之力,中国不会举全国之力干这个,因为它并不挣钱。
为何 Linus 一个人就能写出这么强的系统,中国举全国之力都做不出来?
前半句大部分人都替你科普了,我就列一下后半句的证据,中国举全国之力都做不出来操作系统?
下面三本书,都是国人写的,三个操作系统内核也都是国人写的,功能完善程度比当初 Linus 写的 0.1 版本 Linux 完善,而且架构更清晰先进。
于渊的《自己动手写操作系统》、《Orange’s 一个操作系统的实现》
郑钢《操作系统真象还原》
作者在人邮异步社区发表的文章:半平米的梦想 –《操作系统真象还原》背后的故事
再列举一个,清华大学计算机系操作系统系列课程主页 FrontPage - OscourseWiki
=======================================================================
那么为什么到现在中国还没有国产操作系统出现呢?
这里需要一个约束条件,中国有国产操作系统,没有国产商业操作系统。
这里矛盾的是:技术成功≠商业成功。
展开来讲:
1. 技术成功:我能做出操作系统。
很显然国人是完全做得到技术成功的,参见上面三本书就行了,我也相信,中国还是有很多大学生完完全全能做出一个自己的操作系统内核的,不接受反驳,技术资料和相关网站那么多,大学的操作系统课程虽然只讲操作系统的抽象理论,但是一个几千行代码的 OS Kernel 做出来是完全没有问题的。
2. 商业成功:我除了能做出操作系统,还有厂商为我的操作系统开发软件,我能吸引用户,我能销售我的技术成果,进而我能在商业市场占有一席之地。
加上 “商业” 就不一样了,商业环境的复杂情况不是技术成功完全能够改变的,很多时候已经成熟的商业体系根本容不下第三方插足,就像 Android/iOS,Windows Phone 就基本无法插足移动操作系统领域了,很显然,Windows/Linux 成功了,中国的国产商业操作系统很难再改变这一格局,在根本上是兼容性的问题,做出来的操作系统如果不能兼容市面上大多数软件,操作系统基本无法普及开来,本来应该是软件兼容操作系统的,但是,软件厂商出于效益考虑不可能花大成本去兼容一个 0 用户数的操作系统,这就像是 Windows phone 的境遇一样,更何况 Windows Phone 还做得这么优秀的情况下,仍然有部分大厂放弃那 1%,也就可以预计到国产操作系统所面临的现状了。
兼容性是 Windows/Intel 联盟成功的关键,想想安藤架构的失败(虽然没有完全失败),极其强大的兼容性保证了英特尔和微软的商业连续性,进而全面占领商业市场,Windows 也就走向商业成功了。
中国要做系统不难,因为没有秘密。因为 Linux 是开源。但是 CPU 制造则还是落后,因为是商业机密。
还有中国有举国之力支持过国产系统?先把公务员的 Windows 换了,先强制腾讯出麒麟系统版的 QQ。
从国产操作系统研发人员的角度看,Linux 有啥强的啊,Linus 买了一台打折的显示器都要发推特庆祝。
研发国产系统的倪光南等人,谁看得上这么点钱的。
你错了,Linux 内核从 Linus 大叔发布第一个版本至今,经历了快三十年的迭代,其兼容的硬件和提供的功能丰富,早已超过了其他操作系统了,其实,你说的,为什么中国开发不出来这么强大的操作系统,我想原因有时间,时机两个原因吧,内核迭代至今,已经不是一朝一夕就能够被超越和取代的了,还有就是,现在国内计算机行业的主流其实更侧重于应用层,也即各种应用软件的开发。
开源运动本身就是一种政治行为,这种行为在国内别想了。。
因为中国不需要国产空气——开源软件像空气一样属于全人类
为何 Linus 一个人就能写出这么强的系统,美国举全国之力都做不出来?
写一个操作系统核心其实一点都不难,一个人从零开始学习其实并不需要多久,网上就有教程。
操作系统内核速度快,是个难关,但也只是有点难而已,稍微有点水平也能克服。
但见建立一个生态就是大问题了,别人发展了几十年,无数软件都在这个生态里。而且电脑手机有无数硬件,这些硬件需要厂商给你写驱动,你怎么说服别人来给你驱动又是个问题,驱动少支持的硬件少别人不愿意用,然后厂家更不愿给你写驱动,这是一个恶性循环。
如何推广你的系统让更多人用?有 windows,linux 发展了几十年的生态在,切到一个全新的系统是需要理由的。想省钱 linux 是免费的,想用着舒服 windows 绝对好用,干嘛要用你的?
再说现在不是以前那种没几个软件的时代,这么多软件不可能重新开发,你只能兼容,但兼容 windows 由于它是闭源的,基本不可能,还有法律问题。兼容 linux 当然可以,但这样别人也没理由一定要用你的系统啊,人家本来就是开源免费的。
手机平台也一样,没必要支撑一个全新的系统,现在的系统足够好了,安卓还是开源的,不满意魔改下。全新系统要面对的不是技术问题,是法律问题。
所以为什么没人写中国自己的操作系统不是一个技术问题,仅仅只是前面已经有垄断了,没市场给你折腾。完全国产只是虚名,没必要也没生存空间。
当然,这两年拜某人的福,中国可能出现新系统的空白市场。危机的另一面是机会,华为已经在抓了,如果某人给力,封锁个几年,中国也就有自己的操作系统了。
不得不说,Linus 确实是个天才。
准确说各种电脑里跑的应该叫 GNU/Linux,linux 这个内核固然很重要,但也别小瞧了外面 GNU 的那一堆东西呀。
现在的 linux 内核也不是 Linus 一人打理的,是全球开源社区合作的结果。就像原子弹之父奥本海默、中国原子弹之父钱三强,这也是为了宣传和交流方便,总不能一谈到原子弹就先列一张大名单吧,总得有个具体的人来代表这份荣誉。
中国举全国之力都做不出来?
当然做得出来,但这个做出来的一定是 GNU/Linux 这种大东西,而至于内核等组件,反而越是举全国之力越没有可能。这些核心的东西需要独裁、需要灵感、甚至需要一点点冲动,七嘴八舌是搞不好的,搞到一半,算算还有多少东西要搞,就打退堂鼓,开始瞎抄了。可以去观察各大厂开源的框架、工具,代码赏心悦目,光结构就让人陶醉,然而背后几乎都是小团队甚至个人,他们在工作中遇到了麻烦,痛定思痛,力缆狂澜,最后折腾出来了;但是你要真去看他们实际的大型项目的代码,也照样跟祖传屎山似的。
以中国人的智慧,从头开始也可以,但没这个必要呀。Linux 的源码就在那放着,美国人能看、中国人也能看,美国人能发现问题、中国人也能发现问题,再造一个 Linux 有什么意义呢?就算你弄了一个内核,那是不是也要自己搞套 GNU 出来?兼容人家的?这又何苦呢。
咱们老祖宗讲天时、地利、人和,软件开发也这样。新的平台出来了,强行把 Linux 往上凑得很不爽时,新的内核和系统便会顺理成章地到来。前一次公开的大型凑合是 Linux 层层包裹成了 Android,挺成功的;下次什么眼镜、手表、脑机互联、量子计算可能 Linux 就没那么容易凑合了——当然了,可能他依然叫 Linux,只是脱胎换骨成了另一个样子。
一个程序员一天能完成的任务,十个程序员需要十天,一百个程序员一年都不一定搞得定
利益相关:货真价实的 Linux 内核开发人员,Linux 操作系统某发行版厂商员工。
其它非开发者,非圈内人的答案,恕我直言,网络垃圾罢了。
惯例:破而后立。
三个常见答案思路:
1: 不需要重复造轮子。
2: 国人没有开源精神。
3: Linus 在这个 Linux Kernel 项目里没有多大作用。
分别讲这三个思路的问题:
1: 世界上所有的公开发布的期刊论文你都可以买到看到,是不是你就不用自己办大学,自己写论文了?
答案当然是否。(如果对这一点有疑问,另外开题吧。)
这个思路里面的重大问题有两部分:其一是把 Linus 内核以及其相关发行版蔑称为 “轮子”,但是实际上这并不是那么简单的技术。其二,即使是 “轮子”,都有自己制造的必要性,只是对于肯定能自己制造轮子的人而言,自己制造得到的利益与花费的时间相比太少,换言之,性价比太低。
所以用 “这是重复造轮子” 来作为不做自己的操作系统的理由,其隐含的逻辑相当于是说“我肯定能完成自己制作操作系统的工作,但是性价比太低,我自己不想做”。
这个想法,是一种猖狂自大和精神胜利法的混合物,几乎不值得一驳。
实际情况是现在中国确实没有哪个组织有能力自己打造出商用通用操作系统。
而打造一个商用通用操作系统的性价比绝对不低,甚至比很多人认为的好处要多很多。
(不过这里有个事情先澄清下:好处不包括民族自豪感。好处主要是经济利益以及搭建经济体系的可能性。这事情后面会讲。要自卑到什么程度才会想要处处证明自己啊?)
2: 开源精神,这个事情要两说的。鉴于很多答题人用嘲讽的语气来回答所以我的观点可能会因为与这些人的观点混杂在一起而变得让人误解。
请尽量忘记那些垃圾,然后看我的话。
开源精神,对于国人确实是太新潮的想法,说国人没有,不为过。
但是这个想法对于全世界都是新潮的想法。
君不见,微软,苹果,甲骨文,思科,这些 IT 大佬,资本新贵,哪个是把自己的核心技术开源了的?
微软以前想搞死 Linux 的哦。没成功罢了。尔等中国人也只不过是一点小农心思不想参与人民公社罢了。人家微软可是想夷平整个社区的。
别用带民族化的极端想法来思考这个问题。“开源精神” 是一个非常非常大的话题,涵盖社会和经济多个层面,其终极目标是消灭贫困问题,消灭贫富差距。(眼熟这个目标不?呵呵,想听为什么就另开题吧)
3: Linus 在这个内核项目和操作系统项目中的价值。
没有 Linus,我们可能会在协作的黑暗时代徘徊更久,仅仅能产出电子垃圾罢了。
看看知乎你就知道了,一堆人带着私货答非所问,允许谁?禁止谁?推送谁?邀请谁?你可以想象 Linus 内核社区是一个持续 20 多年,只产生干货的社区。而这已经超过了绝大多数所谓 “核心技术期刊” 的水平。
更甚之,你可以把 Linux 内核开源社区视为一个大学,源码视为学报,这样 Linus 就是这所大学的无可争议的校长兼任学报总编。不重要吗?
=
破而后立的立:
由于教育和资源的问题,中国的大部分机构能力低下,内部充满矛盾,无法完成大型复杂工程。但是同时只要政府愿意付出两倍的成本去填平其内耗导致的效率低下,也是有机构能做出成果的。
两弹一星,航母,月兔,大飞机,高铁,这些都是例子。
可惜操作系统并不在这个 “政府愿意花两倍资金去送给你们贪只求你们做出成果” 的列表中。
所以你至今看不到中国有哪个机构打造出自己的通用商用操作系统。但是中国也确实在自己的航天器上自己用代码写出了自己的定制操作系统,完全不是 Linus,但是也完全不是 Linux。
这个事情有很多方面,请综合考虑。
回到题主问题:
中国现在就是做不出来,商用通用操作系统领域就是没有 Linus 这么牛的带头人,但是也没啥好自卑的。哪天政府想砸钱了,把 Linus 砸到入籍中国改名林永清也是能做到的。
只是我并不求永清到来的一天。
我给你举个特别特别不恰当的例子:中国举国之力能不能选个像样的足球队出来?有的时候并不是人多就能搞定不是?
另外就是轮子已经有了,拿来用就行了,源代码都给你了,非得自己从头写一个?
这我一个圈外人也能回答出来。
Linus 代码水平很高,所以他能写出很强的系统,加上他淡泊名利,没掉进钱眼儿里,所以他成为技术和精神的双重领袖,带领着 Linux 一路进化到了今天。
Linux 的成功也离开不天时,那时候市面上的操作系统本就少,崇尚自由的程序员又迫切需要一个好用、开源、自由的操作系统,而 Linus 采用 Gnu 的授权方式,恰好适应了这些需求。在他的带领下,Linux 被全世界的程序员呵护着,才终于成长为参天大树。
技术上讲,做个操作系统应该没有难到倾举国之力不能为之的地步,现在网上有很多人都在自己做着玩儿。但是技术像 Linus 那么强的、淡薄名利的、行事霸道的领袖人物,的确再难找到,不但中国很难找到,外国也很难找到。况且有 Linux 了,大家已经没有动力再写一个新的。
题主这么问,该不会以为 Linux 是 “美国的” 吧?
开源系统迭代靠大家啊!什么一个人开发的
中国不缺乏人才,缺尊重人才的环境和土壤,咱国不乏领先全球的软件应用技术,但是很少有基础设施的开发项目,因为基础设施需要投入,需要耐心,而且风险很高。做后台的不如做前端的在老板眼里值钱,更别说操作系统了。别说开源什么的,程序员都在为养家糊口奔命,而且你开源就有人改了然后卖钱。
1.Linux 不是一个人写出的这么强的系统,他只写了你可以理解为现在大学学的操作系统,最后会留的一个大作业的一个水平,只有基本功能,不能商用。
2. 中国也并没有举全国之力做操作系统,而是大部分企业觉得成本太高,有现成的用别人的就行,自己不去做。在操作系统上做 APP 更有性价比。
Linux 是举全世界之力
混迹知乎好几年,我突然觉得知乎经典体:先问是不是,再问为什么,可以回答大部分类似的问题
《操作系统革命》(Revolution OS) 有双语字幕,看完能明白大半。Linus 这种理想主义者,基本上不靠 996 恰饭,成名前也不用担心被七大姑八大姨议论不干正经的赚钱事,芬兰人也不会蜂拥而至复制他的成功。
反对生态系统这种说法。
重头写内核又不是说从头造标准,完全可以写一个兼容 posix 的新内核,应用层该用什么还是什么。
没有重新写的理由只能是做不到。
现代操作系统比当年进步了不知道多少,写起来完全就不在一个难度上。作为比较可以看看 gnu hurd, 这么多年过去了,做到可用了没有?
菜鸟发表一下看法,仅供参考。
首先 Linux 有现在的地位是开源的威力,仅靠 Linus 个人是不够的。你这个问题就很有误导性。另外从某种意义上说操作系统不难,有什么技术难题要攻关吗?中国人写不出可以运行的操作系统嘛?实在不行抄总可以吧。关键费时费力搞一个体验不如 Windows,性能不如 Linux,还没有生态的系统有意义吗?只能说操作系统太复杂,实现一个完善的系统需要积累,Windows 和 Linux 也是发展了这么多年才慢慢成熟,而且都不完美,各有各的应用领域。反正没法一口吃成胖子,中国有没有在积累就不清楚了。
我就这么说吧,在你看来美国造飞机只是几家公司在搞:波音造机身,GE,PW 造发动机,霍尼韦尔造航电,在人家美国人看来这就是举国之力。
中国人对举国之力的理解是国家专门成立一个部门,提供大笔经费,并抽调大量的人才叫举国之力。而在美国人看来,某个领域哪怕只有一家公司几十号人在搞,人家这就是举国之力。
Linus(芬兰)在大学时期购买了 Tanenbaum 教授(美国)的 minix(miniunix)的源码,然后在邮寄的过程中认真学习的汇编(对之后他编译 kernel 有帮助),他把 linux 最初版做出来之后放到了网上; 如果没有广大爱好者贡献自己聪明才智,Linux 不可能发展到现在。
补充: unix version7 开始将源码私有化(之前不是的),Tanenbaum 教授做 minix(mini unix)的初衷是为了教学使用,不愿意在 minix 中添加过多的功能(不想商业化)
Unix 最初是由 Ken Thompson Dennis Ritchie 使用 b 语言编写出来的(俩都是大胡子,汤普森 / 逊找的里奇共同开发),Ritchie 之后在 b 语言的基础上设计出了 c 语言(取 bcpl 语言的第二个字母,主体于 1973 年初完成),然后用 c 语言重新编译了 unix,,
Tanenbaum 教授,全名 Andrew S. Tanenbaum, 特别有名,我买过一本计算机网络,就是他编写的,当时不认识,这几天查阅计算机系统发展史资料重新认识了这名教授,,
知乎小透明第一次回答问题,如有错误恳请指正!
嵌入式系统算么?
给我以前的同事 (老大) 做做广告吧 ^_^
SylixOS Real Time Operating System
还有其他的, 比如 RT-Thread; RTOS; 实时; 操作系统
这个问题非常可笑
就好像一个不打篮球的人问我们 「为什么一个小学生单挑打不赢易建联?」
首先
我们现在看到的 Linux 内核并不是 Linus 一个人写出来的。
其次
它是一个内核,并不是一个操作系统,如果你说 ubuntu 是一个图形操作系统,我们可以承认,但是 Linux 是一个内核,是操作系统的轮子。
再次
这么强?
是如何表现出他是这么强的吗?是因为开发者多呢还是因为应用范围广呢?
当然了,我并不是想说这个 Linux 内核不强,我是说,如果去看看其他的内核,也会有一些非常不错的内核,至于强不强,那可能真的是仁者见仁智者见智。
…… 如果按照 Linus 最初的版本 也就是大学计算机本科生 优秀的作业水平 并不是你想的那样 有空你可以翻翻
从商业价值来说
早 10 年 1980 年,西雅图计算机产品公司(Seattle Computer Products)的一名 24 岁的程序员蒂姆 · 帕特森(Tim Paterson)花费了四个月时间编写出了 86-DOS 操作系统 还卖了 5 万美元…… 就是后来微软的 MS-DOS 初版原型
你去搜下 GNU/Linux
别天真了,小学生吗?
MINIX 最初发布于 1987 年,开放全部源代码给大学教学和研究工作。
Minix 最有名的学生用户是 Linus Torvalds,他在芬兰的赫尔辛基大学用 Minix 操作平台建立了一个新的操作系统的内核,叫 Linux。
Linux 之所以发展这么大,是举世界之力,大量公司和个人持续投入,贡献代码,Intel,AMD,IBM,Google,Samsung,HUAWEI 等都有贡献自己的内核代码。
linux 是举全世界之力写出来的系统看看 github 的 contributors (torvalds/linux) 就知道了, linus 的 contribution 连 100 内都不到.
你这个问题约等于为何乔布斯一个人就能做出 iPhone, 中国举全国之力都做不到
来来来。作为组织主场和 it 主场的。另一种方式给小粉红真右派解释下。。。。
你看: 为什么中国都能造航天飞机了。搞各种高科技了。为什么平常用的最多的操作系统不能撸一个出来?
是的。正是中国现在撸不出来的操作系统代表的是社会主义先进。更不要说比某些国家资本主义了。
当然我国的国家垄断资本主义还是比某些国家的垄断等死资本主义优秀。
为什么说是社会主义。一大堆优秀的程序员。不为利不为名。无私奉献。就为构建一个优秀的软件而努力。同样这个优秀的软件无偿的反馈给社区了。
这不算共产主义,算社会主义算什么?
资本经济学可是第一章就假定个体都是理性和自私的。
那么举国家之力肯定搞不赢举社会之力的。。这是要明确的。当然某些操作系统反动公司某软一时爽。不现在也在被市场清算然后拥抱开源了吗。
再造个某软? 你傻啊
第一,Linus 只是写了 Linux 内核,也就是 grub 里指定的内核文件,简言之,那只是一个文件,并不是整个操作系统
第二,内核文件是很小的,基础的操作系统内核只有几 KB,Linux 的内核不过几千行代码而已,本就该由一个人编写。
第三,所有操作系统的内核文件,其实全都可以视为,是由一个人写成的。比如 WindowsNT 内核,也可以视为,是由 David Cutler 一人所写。
所谓 “Linus 一个人写操作系统”,就跟那些“包治百病的万灵神药” 广告一样,属于严重的夸大宣传。
内核本来就是个小东西,理所当然是由一个人写完。这就像 “我一个人就能吃一口饭” 一样,是件再正常不过的事情。若由一群人同吃一口饭,反而才不正常。
Linus 就是做了一件理所当然的事情,为啥却成了神话传说?
那是因为,很多人根本没有学过操作系统,却又喜欢在小白面前不懂装懂。
讲讲 OSI 七层模型吧?自己都没搞明白,讲不下去。那就讲个 Linus 一个人发明操作系统的故事吧。。。。。
在我还在上初中的时候,就听过这个 “芬兰大学生发明操作系统” 的段子了。我也一直以为这是个神话般的故事。直到多年后的某一天,我搞清了到底什么是内核,什么是系统。
Linus 确实很牛逼,但远远没有你以为的那么牛逼。
至少像他这样水平的人,不比名气和成就,单说技术能力,在中国找出几百个,还是毫无挑战性的。
现代计算机发展史,有资格坐上神坛、编成故事的人物,我想来想去也只能想出三个。比尔盖茨、肯汤普逊、丹尼斯里奇。如果见识再多一点,也许他们三个也会从神坛上掉下来。毕竟这个世界是没有神的,尤其计算机本就属于严谨的科学领域范畴。
中国为什么没人写出类似 Linux 的操作系统?
这是一个历史问题。
爱迪生发明电灯,距今快 200 年了。近 200 年来,中国从来没有人发明过电灯。你是不是每天晚上,都生活在黑暗里?
中国为什么没有人发明电灯?因为爱迪生已经发明电灯了,刚需问题不存在了。即便你发明了,大家也不会因此换掉家里的电灯。
中国为什么没人做出主流的 PC 操作系统?因为已经有 Linux 和 Windows 了。即便你发明了,也没人会扔掉 Windows 和 Linux,而去改用你的操作系统。
现代中国的发展史,其实只有几十年。几十年前,全国上下还是一片焦土。而很多欧美国家已经稳定发展几百年了。
作为后来者,几乎所有能挑战的领域,中国都在挑战。而有一些领域中国缺席了,是因为那些领域,根本没有挑战的价值与必要。
1. Linux 可不是 Linus Benedict Torvalds 一个人凭空写出来的。它是基于 Minix 开发的。
2. Linux 是一个开源系统,有无数开源爱好者经过许多年的添砖加瓦才到今天的程度。
3. Linus 的格言(自传书名)是:
Just for fun
要有这种心态不难,但是要为此持之以恒的努力可不容易。这需要个人意识、财富、教育环境的共同支持。
[
只是为了好玩 Linux 之父林纳斯自传 (图灵出品)
京东
¥ 34.60
去购买
4. 从小事做起。Linus 当初只是为了方便连接大学组织的新闻组和邮件去读写和下载文件。而不是什么 “写这么强的操作系统”。
5. 我记得 10 多年前逛书城就看到过一些书籍以 “亲手写一个操作系统” 为主题。说明与操作系统的定义而言,要写一个雏形是不难的。可问题是,什么样的产品适用于生产环境。
6. 相比于写出 Linux 原始版本,我认为 Linus 更伟大之处在于把 Linux 开源。这是 Linux 作为今天如此重要的操作系统的重要原因。
7. 不要执着于自主研发。Linux 不属于 Linus 个人,也不属于某家商业机构,也不代表某个国家的科技水平。要记得 Linux 代表的是开源的力量,他是全世界开发者的共同努力成果。在 Linux 的基础上定制出我们真正需要的东西才是重点!
8. 最后要说一句,那些骗老百姓血汗钱作经费的人和组织,你们去 EOF 吧!
操作系统这种依托于生态圈生存的东西,都是在特定的历史时期才能够发展壮大的。Windows 是在个人电脑普及之初发展起来的,Android 是在智能手机普及初期发展起来的。Linux 自然也有它特定的历史背景,具体细节等我回去查了资料再来补充。
不可否认 Linus 本人的技术水平是足够高的,但是 Linux 的发展壮大,并非是他一个人的贡献。他只是迎合了历史的进程而已。
倘若 1991 年的中国已经接入互联网,外加其他一些当时不存在的客观条件,说不定就有一个中国人创造了风靡全球的操作系统。
关于 Linux 系统的形成原因和历史必然性,我在下面的问题里回答过了:
[为什么要开源?www.zhihu.com
](https://www.zhihu.com/question/33573424/answer/777462141)
因为有 GNU 提供的开发工具链和系统工具集,否则 Linux 真的就像 Torvalds 自己说的那样,就是个玩具。
我看了一大堆回答。我感觉题主的问题应该是,为什么中国出不来一个 Linus?
中国有 wps,但是后来你也看到了。说多了就是文化自信。
先问是不是 再问为什么。
请区分 Linux 和 GNU/Linux 。
Linux 不是 Linus 一个人写出来的,全世界许许多多的开发者都为它贡献过代码。如果你指的是最初那个 toy 版本,那恐怕也不能称为 “这么强的系统”
再回答后半个问题。还是那句话,Linux 的开发者来自于全世界的各个国家,其中也有中国开发者。它并不 “属于” 哪个人或国家。
看到很多回答都在强调:中国不是没人能写出牛逼的操作系统,而是写出来也没什么用,因为市场已经被 Linux 和 windows,macOS 等瓜分了,再写没有意义,我们失去了历史机遇。这种论调近些年我在不同的地方看到了很多次,实在忍不住想反驳一下。
好吧,我们姑且认为这说法是对的,那么按照这说法,Linux , Windows 根本就不会出现,出现了也不会有今天的地位和市场份额,因为 Linux 和 Windows 出来之前,市场都被 Unix 和 DOS 占据了;同理 macOS 也一样,它被研发出来之前,操作系统市场都被 Linux, DOS, Windows, Unix 占据了;IOS 和安卓也不该出现,即使出现了也不该有现在的市场地位,因为他们被研发出之前,手机市场都被塞班系统占领了。
以此推到其他领域比如编译器, CLANG/LLVM 也不应该出现不应该有今天的发展势头和地位,因为 GCC 已经一统天下,再搞一个编译器没啥意义,没人用,没市场生态。在 CLANG/LLVM 之前,要是有人在知乎上提问:为什么中国搞不出来 GCC 这样的编译器?我敢保证下面大堆回答:中国不是没人搞得出来,而是没有必要,没有意义,市场都被 GCC,VC 占领了,搞出来没人用,没生态。
这些人的观点出奇的一致:我们不是做不出来,而是不屑做,没有必要做,做了也没意义,错过了历史机遇。
我就奇怪了,为什么别人总能抓住历史机遇,为什么别人总能在看似没有市场机会的地方硬生生地弄出市场来?为什么我们总会是拍着大腿痛心疾首:哎呀,错过了历史机遇。
你没有生态,难道别人的新东西出来时,生态都是直接从天上掉?或者他爹把生态都提前准备好了?
从中国加入世贸到现在,算一下这十多年来,IT 届多少原创出自国外: GO, RUST,SWIFT, Kotlin,区块链, iOS, Android ,云计算大数据(说 GOOGLE 的那几篇论文引爆云计算不为过吧),CLANG/LLVM, KVM,Redis, Docker, K8S, 浏览器引擎, WebRTC, NoSQL DB,AlphaGo, 请问中国几大巨头能拿出几个这种级别的原创?新四大发明?移动扫码支付?打车?外卖?笑哭。
我们在 IT 届的繁荣,优势在于利用用户数量优势把各种应用和用户体验做到极致,真正说到重量级的原创,基础性的原创少得可怜。我为什么从世贸后算起?就是为了防止有人杠我们以前和世界差距太大,所以放到加入世贸后我们发展最快的这十多年来比较。否则,放到更前面的时间段来比较,更惨不忍睹,比如有小国家巴西的 LUA, 有小国家荷兰的 Python, 有小国家日本的 RUBY,更别说其他的 JAVA,MySQL, PostgreSQL。
我们基于巨大的市场和用户做出来的电商,外卖,抖音之类的应用,确实是世界领先,这个是事实。但如果因为上层应用做得好,就认为底层基础设施对我们也没有障碍了,恐怕迟早吃大亏,就像华为,手机做得好卖得好,但是芯片和 OS 别人一卡脖子,就让大家都看到他是否在裸泳。
你看看金山毒吧劫持主页,各种 UC 低俗广告,还有一款用起来比较好用,但是很多涩情广告的网通,百度全家桶,就知道做不了这种伟大的操作系统了
推荐看一部纪录片叫 OS Revolution,看完对开源的概念会清晰很多
youtube 链接:https://www.youtube.com/watch?v=GsHh2wfy_-4
youku 链接:操作系统革命 - Revolution OS(完整版)【中英字幕】
呵呵,实名反对这个话题下面所有人的回答!
中国人所以举全国之力写不出 Linux,不是中国人太笨,而是中国人太聪明了
linus 所以写这个东西,起初只是因为没钱买操作系统,因为兴趣而已。
在中国,没钱,谁干啊
就算出了一个 linus,因为没钱,也就没有志愿者维护,也不会发展到现在的规模
至于有些大神说的,没有生态环境,我就呵呵了,喷他一脸!
开始 linux 出来的时候,有什么生态环境啊。我 98 年开始用 linux 的时候,
那个时候是 aix、sun、sco 的天下。
那个时候可是很多人说,linux 没有生态
这种人太多了
不知道努力,只知道抱怨
人的本性吧
这个问题难道不是该问自己嘛?关中国什么事?
为何 Linus 能写出这么强的系统,我却做不出来?
其实现在要写还是不少人能写,只是写出来没啥商业价值也没有什么可推广性。
操作系统想手动把玩 可以看一本叫 自己动手写操作系统 的书。书中会告诉你电脑如何识别 boot 然后从 boot 调用你定义的 loader, 而到了 loader 之后,文件系统等东西理论上可以搜集资料去细化,反正过程很枯燥乏味,结果一般不咋牛逼。
其实就是一句话:GNU IS NOT UNIX。
linux 是 GNU 生态的 内核。但是,我们悉知都是 Linux,而不知 GNU 星辰大海 ,狗头
因为人家已经做出 Linux 了,所以我们至少有 Linux 这条退路。
大部分情况是,可以,但没必要。
我大学的时候就写过操作系统内核,也算让自己对操作系统的原理理解得更深刻了。
操作系统能做的事大同小异,操作系统内核能做的事大同小也同。
如果你为了单片机方便开发,支持 USB 什么的,UNIX,LINUX,够用了。Windows 不开源?不用也罢,区别不大。
如果是手机操作系统,人家用 Android 改造就能用,何必开发新的。这东西是开源的,对方没法卡你脖子。
如果是 PC,你还是可以用 LINUX。
那你这时候想问了,为什么我们不能开发出 Windows 或者 mac 一样的操作系统去卡别人脖子呢?
因为别人抢先了,我们就永远没有土壤。
除非人家跟我们搞真正的冷战
你忽略了一个前提, Linus 是参考 UNIX 开发的,他自己都说了这个系统是模仿 UNIX 的。
创造力是需要土壤的
这个问题下,许多人得到的观点是中国不是没有实力,没有牛人,做不出来只是不想做,做出来没生态,不想重复造轮子而已。
我原来也做过很长一段时间的某厂商安卓 os 系统开发工作,我个人认为,做不出来最主要原因是国内缺少促成的环境。就像中国上千年历史,可就是无法诞生近代的自然科学一样。上千年历史长河里,不断有牛人涌现,不断有某个发明或发现领先西方几百上千年,每每提起这茬,无数国人傲娇,可是近代以来的自然科学体系,却是西方的产物。
我不否认中国地大物博,绝对存在很多牛人,但是诸位可以想想,同是民国,同一个时代,为什么我党比果党先进呢?我党许多人物原来也在果党,为什么没有同流合污呢?既然不缺人才,果党那么多精英为什么一败涂地了?
到底是什么让我党精英汇聚,书写一段传奇史诗?早年间我党接受毛熊海外人才领导,可是节节败退,道路无尽曲折,直到有一个伟人出现,才指明的道路的方向,人心重新汇聚,力量彻底凝聚,这才做成了一番伟业。
同样的道理,放到操作系统上,怎么大家就想不明白了?
国内牛人再多,都是散沙一般,翻不起一片浪花,不能将之汇聚成一股力量,都是枉然,有等于没有。在开发操作系统上,我们有什么?人们喜欢说两弹一星,航天事业,那时候他们做这些全凭信仰的力量,现在有信仰吗?仅仅拿钱就能砸出来,果党大资本家缺钱吗,怎么就砸不出一个江山?那时候我们有伟人的领导,指明方向,即使今天的工业化成果,也都是伟人指明的方向,定下的基调。我们今天做操作系统,有信仰的力量汇聚牛人,有伟大的领导者指明进步的方向吗?
两个条件,信仰与伟大领导者,我们一个也没有,再去看看 Linux 系统的发展史,一个也不缺。所以,再好好看看民国,国家还是那个国家,人还是那些人,没有突然而来的穿越者,可是一种信仰,一些伟大领导者,却把人间换了一个天地!
首先一点,linus 写这个核心并不是为了赚多少钱。就现在中国的环境,投入大,无产出的事有多少人会做?其实单看写代码,做出一个系统难吗?难,但是没到做不出来的地步。那么如何能够用这个系统赚钱呢?这个比做出这个系统更难。
一个天才,强于一国,这也不是一回两回了。
换成游戏,一个游戏公司花再多钱,也没法单挑全世界成千上万的 MOD 作者。
最原始的操作系统其实很简单的,你上过那门课就知道了,linus 也不是一个人做的,他是拿出来给大家一起合作的。
第一这不是 linux 一个人写的,只是以他命名
第二懒好也写了 30 年了,30 年一直做一件事,中国有 30 年历史的公司和程序员吗
每次碰到这种问题,就一堆大神出来说,简单的很,就是建不起生态系统。
为什么这么多人拿开源系统骗经费了?你完全可以去赚这个钱啊。
航天系统,高铁系统,就是举全国之力出来的系统呀。
所以举全国之力那还是能写出来的,但肯定不是 linux。这是为特定领域写的系统。
这就是骨科啊眼科啊,针对专门的病看。
但我明明能靠脸吃饭,为什么要用才华呢?
有举世界之力集全人类智慧的 linux,可以用于我们的芯片。站在巨人的肩膀上,为什么要自我膨胀的要自己做巨人呢。
linux 就是普通外科呀,一般病都能看。
当然没有放射科的时候并且十分需要的时候,国家机器也会举全国之力造一个的呀。
一切都是机遇和历史的进程。
并且,linus 一个人写几辈子也写不出 linux。他就是巨人肩膀上摇旗的那位而已。如果当时没这个人没防挖土豆挖出个巨婴,带领大家把这个巨婴养大让我们站上去,我们可能还在红白机上打豆豆呢,哪里来的王者农药让你玩。
l 大写手机键盘不会输,强迫症请原谅。
首先 Linux 不是 Linus 一个人写出来的,其次 Linux 是举全世界软硬件高手之力写出来的。全国 vs 全世界?更不要说中国计算机技术能力在世界并不执牛耳。
severe 和一整个系统还是有本质区别的 一个核心和一个延伸的东西不一样
中国有四大发明,而且很久很久以前就有了……
如果现在世界上新成立了一个国家。
那么我们可以问,为啥我们我们几乎每天都有论文发表,这个国家啥科研成果都没?
知乎用户 默然 发表 你看 Linus 自传就完事了。 Linus 研究生时期开始写操作系统(大约是 91 年),那时候个人电脑(PC)虽然兴起一些年了,但是还只是小部分程序员和狂热爱好者的玩具。硬件基本上都靠自己攒,软件也是用开源系统各种 …
昨天在群里聊天,胡老师发了一个链接,是美国国家科学院院刊(PNAS)上刊发的一篇论文,题目叫“中国、印度、俄罗斯及美国学生在计算机科学领域的能力比较”。我没仔细阅读,但看这篇论文里边的一张张图表,就大概能够了解到:尽管我们中国人聪明、勤奋、 …
万事怕认真:聊聊鸿蒙 作者:冠东兄 做过硬件,也做过软件,要说到对二者研发的体验,有一点很突出:硬件你做出来了,就能用了,好用不好用是另一码事。但软件不同,对于软件来说,有没有是一回事,能不能用是另一回事,更不要说好不好用了。 一个软件开发 …
做过硬件,也做过软件,要说到对二者研发的体验,有一点很突出:硬件你做出来了,就能用了,好用不好用是另一码事。但软件不同,对于软件来说,有没有是一回事,能不能用是另一回事,更不要说好不好用了。 一个软件开发出来,往往经过了性能测试,证明可以工 …
品葱用户 马格斯 提问于 9/10/2020 华为开发者大会 发布了鸿蒙 OS 2.0 系统, 这次也不完全是ppt 系统了 开源了部分系统 大家怎么看 -——- 作为码农 发现这个问题算是自己的专业范畴 所以先说一 …