编程派 中国却做不出来?,Linux!为何他一人就写出这么强的系统

编程派” , 选择设为“”
优质文章 , 第一时间送达!
编程派 中国却做不出来?,Linux!为何他一人就写出这么强的系统
文章图片
来自:知乎 , 作者:默然
链接:https://www.zhihu.com/question/63187737/answer/1415937231
他是谁 , Linus!
林纳斯?本纳第克特?托瓦兹(LinusBenedictTorvalds,1969年~) , 著名的电脑程序员 。 Linux内核的发明人及该计划的合作者 。
托瓦兹利用个人时间及器材创造出了这套当今全球最流行的操作系统(作业系统)内核之一 。
现受聘于开放源代码开发实验室(OSDL:OpenSourceDevelopmentLabs,Inc) , 全力开发Linux内核 。
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流行起来后 , 依然没做出来 。