为何 Linus 一个人就能写出这么强的系统,我们却做不出来?

要想回答这个问题,必须得回到Linux诞生之时去看一看。

Linus的技术

现在能手搓操作系统的人确实很多,可是如果我们穿越到80年代末,事情就完全不同了。

那个时候欧美的人还都忙着攒电脑,在中国,电脑更是只能在机房才能看到的稀罕物,程序员都很少,更别说写操作系统了。

没有Web,没有Google,没有人教你“30天自制操作系统”,资料极其匮乏,就连Intel CPU的相关资料都很难找到。

在这种情况下,让你手搓个操作系统,把汇编、保护模式、链接和装载、进程管理、内存管理、文件系统、IO管理统统搞定,在一台386的机器上跑起来,难度绝非今日科比。

但是Linus就是在这种情况下,参考了Minix,独自开发了一个操作系统出来。

毫无疑问,Linus是一个杰出的程序员。

当然,他不是一蹴而就的,他是先在自己的386上写了一个多线程的程序,然后发展成了终端模拟器,为了让终端模拟器开机就能运行,从BIOS开始,写引导程序,搞定实模式和保存模式的切换,后来为了保存数据,又添加了磁盘驱动,I/O管理......最后赫然发现:自己写了一个操作系统。

完整的故事可以看看这篇漫画《Linux之父:财务自由以后,我失眠了!》

此时中国第一代程序员的杰出代表是求伯君,严援朝,鲍岳桥等人,我想他们应该也有这个能力搞出来。

不过当时有个非常重要更紧急的任务:让电脑支持中文,在上面跑中文应用软件。

所以就有了CCDOS, UCDOS, WPS,CCED,没人会想着从头儿写个操作系统。

Linus开创了一种开发模式

一般人写出来自己玩玩也就算了,Linus却把它放到了BBS上,广泛征求意见,接受批评。

他还接受网友提交的改进代码,从而Linux变得更强,更好。

在那个年代,这是一件非常了不起的事情。

Linus先是自己滚了一个小雪球,然后吆喝说:快来了,这里有个好玩的东西,我们一起玩吧!

在互联网的大潮推动下,无数操作系统的精英都能加入进来,把这个小雪球滚成了一个大雪球。

无意之间,Linus 开创了一种全新的互联网的协作方式,一种大规模的开源开发方法,他证明,成千上万的人可以为一个项目做出贡献,这个项目的商业价值不亚于一家公司花费数十亿美元做出的产品,这是一项伟大的社会学发明。

作为鲜明对比的是GNU Hurd。

Richard Stallman于 1983 年 9 月创立了GNU 项目,计划创建一个自由的 GNU操作系统。

如果Richard Stallman能及早地把操作系统给开发出来,估计没有Linux什么事了。

但是GNU Hurd的开发采用了一种“教堂”的模式,是有计划地修建而成的,宏伟的黑客精神纪念碑。

Hurd的开发举步维艰,Linux都快占领全世界了,它还无法拿出一个可以在生产环境上使用的、稳定的系统。

而Linux更像是一个“嘈杂的大集市”,它是在 Internet 去中心化的松散组织结构中开发出来的。

Linux的协作方式,更加适应互联网时代。

大集市的开发方式,80年代就已经存在,但是规模都没有Linux那么大——仅仅内核就有近2万人,算上其他模块得有数十万人参与开发。

有了Linux成功的榜样,像Apache等开源软件如雨后春笋般发展起来,开源开始统治世界。

中国1994年5月17日才正式接入全球互联网,两个月前,Linux 1.0已经发布了。

随后几年中国和全世界类似,都是在Linux内核的基础上搞自己的发行版,蓝点Linux,红旗Linux,冲浪Linux,甚至联想都弄了一个幸福Linux,一时间热闹非凡。

这个时候Linux已成大势,中国不可能从头儿开发一个操作系统了。

Linus 的领导力

Linus是IT界顶级网红,表面看,他脾气暴躁,怼天怼地怼空气,一眼不和就开始喷,fuck,shit之类的词经常出现在邮件列表中,他在Linux 开发环境中培养了一种辱骂文化。

但是大家想想,一个有数十万人参与开发的,2000多万行代码的操作系统,仅仅靠暴躁的脾气能管理得了吗?

单靠Linus一个人,绝对无法review那么多的代码,更不可能合并那么多的请求。

必定有个强大的核心团队,紧密地围绕着Linus,一直追随着他,为Linux不断做出贡献。

Linus养成了一种“无为而治”的风格,把权力授权给核心开发小组,放手让各个核心去做自己想做的事情,即使出错,也让他们自己去纠正,而不是自己出面。

这种方式非常有效,Linux迅速发展,每个与Linux相关的人都给与他最高的信任。

Linus 被证明是一个合格的独裁者。

他可能很强硬,但他很公平。

他可能固执己见,但他很少犯错误。

他可能对开发人员很苛刻,但他对用户很友善。

中国肯定也有这样领导特质的程序员,但是Linus在恰当的时间出现了,可遇而不可求

最后总结一下:Linux这么强的操作系统,不是Linus一个人写出来的,他在合适的时间发起了这个项目,并且找到了一种有效的开发方式,用卓越的领导能力组织起了几十万人的协作开发,最终发展成了全世界最流行的操作系统。

现在想复制Linux的成功几乎不可能了,也没有必要了,基于开源的Linux做开发多好!

为何 Linus 一个人就能写出这么强的系统?相关推荐

  1. 为何 Linus 一个人就能写出这么强的系统,国人却做不出来?

    点上方蓝色"菜鸟学Python",选"星标"公众号 重磅干货,第一时间送到 转自:默然 + Coldwings(知乎) www.zhihu.com/questi ...

  2. 为何 Linus 一个人就能写出这么强的系统,中国却做不出来?

    点击上方 "程序员小乐"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 关注订阅号「程序员小乐」,收看更多精彩内容 每日英文 Memories, b ...

  3. 知乎 高级操作系统_知乎高赞:Linux!为何他一人就写出这么强的系统,中国却做不出来?...

    林纳斯・本纳第克特・托瓦兹(Linus Benedict Torvalds, 1969 年-),著名的电脑程序员.Linux 内核的发明人及该计划的合作者. 托瓦兹利用个人时间及器材创造出了这套当今全 ...

  4. Linux!为何他一人就写出这么强的系统?

    公众号关注 "大鱼机器人" 设为 "星标",重磅干货,第一时间送达! 作者:默然 整理:张巧龙 他是谁,Linus! 林纳斯·本纳第克特·托瓦兹(Linus B ...

  5. php自己写配置项,创建配置文件 用PHP写出自己的BLOG系统 2

    先看看效果图 创建前文件界面 创建配置文件后界面,会提示不能重复安装 下面就上代码吧,html界面的代码就不上了,直接上PHP代码吧 复制代码代码如下: /* FILE:install.php Aut ...

  6. 大厂秘籍:谷歌代码规范开放下载,手把手教你写出好代码

    这两天和一位大厂的朋友聊天,说起他们今年技术岗晋级答辩要增加代码走读环节,那该如何写出好看又好用的代码? 代码是程序员改变世界的工具,每个程序员都会写代码,但不一定能写出好代码. 如今的大型商业软件系 ...

  7. python代码怎么写出色_如何写出更具有Python风格的代码,五分钟教会你!

    我们都喜欢 Python,因为它让编程和理解变的更为简单.但是一不小心,我们就会忽略规则,以非 Pythonic 方式编写一堆垃圾代码,从而浪费 Python 这个出色的语言赋予我们的优雅.Pytho ...

  8. 请写出查询该表中成绩最大值的sql语句_SQL-汇总分析

    一.汇总函数(Aggregate Functions) count(列名):求某列的行数 sum(列名):对某列的数据求和 avg(列名):对某列的数据求平均值(只能对数值类型的列计算) max(列名 ...

  9. 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一3.7.5 使用StAX写出XML文档

    3.7.5 使用StAX写出XML文档 在前一节中,你看到了如何通过写出DOM树的方法来产生XML文件.如果这个DOM树没有其他任何用途,那么这种方式就不是很高效. StAX API使我们可以直接将X ...

最新文章

  1. 廖雪峰 python_40岁老男人从0开始学python实录(第1天)
  2. ubuntu右键在当前位置打开终端
  3. java线程切换 notify_浅谈 Java线程状态转换及控制
  4. Chosen通用初始化
  5. POJ1151-Atlantis【线段树,扫描线,离散化】
  6. 推荐几款爬虫软件与无需编程的数据分析工具
  7. Theano 中文文档 0.9 - 7.2.6 Theano如何处理形状信息
  8. ASP.NET Core真实管道详解[1]:中间件是个什么东西?
  9. 数据库大数据量的优化方案
  10. 重装系统(U盘篇+U盘复原)——保姆级教学
  11. 如何注册google账户呢?
  12. iOS开发打包上传报错ERROR ITMS-90096
  13. 【教程】Win10重置电脑和重装系统
  14. SQL84 实习广场投递简历分析(一)
  15. VUE router 导航重复点击报错的问题解决两种方案
  16. PHP简介以及环境的安装
  17. Java框架之Struts2(六)
  18. sd和sem啥区别_SD与SEM区别
  19. stm32无源蜂鸣器定时器_stm32定时器实现PWM输出控制无源蜂鸣器(HAL)
  20. 微信小程序云开发查询(显示)数据库集合的指定字段

热门文章

  1. CSS 样式继承 inherit 属性
  2. 软考-架构师-第七章-系统规划 第二节 可行性研究与效益分析 (读书笔记)
  3. php 文本编辑器 ueditor
  4. vba英文翻译成中文
  5. live2d_【内有礼包】七罪看板Live 2D公开,天使的面容,魔鬼的身材~
  6. 【02】2022.11最新超详细Vuforia图片识别教程
  7. Dart学习笔记六:集合类型详解
  8. 小学英语阅读促进学生思维品质发展及其策略应用的综述
  9. 软件学报投稿论文格式模板
  10. 使用JavaFX控件