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

极智AI | 谈谈为什么卷积加速更喜欢 NHWC Layout 本文主要讨论一下为什么卷积加速更加喜欢 NHWC 的数据排布。 阅读详情

(给程序IT圈加星标,提升Python技能)

转自:默然 + Coldwings(知乎)

www.zhihu.com/question/63187737

他是谁,Linus!

林纳斯・托瓦兹(Linus Torvalds, 1969 年~),著名程序员,Linux 内核的发明人及该计划的合作者。

托瓦兹利用个人时间及器材创造出了这套当今全球最流行的操作系统内核之一。

现受聘于开放源代码开发实验室(OSDL:Open Source Development Labs, 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 流行起来后,依然没做出来。

最开始的 Linux 版本,只有几千行代码,现在基础扎实的 CS 本科生,花一段时间都可以看懂,甚至有些 OS 教材就是用 Linux 最初的版本来教学的,比如哈工大李志军的课程。

Linus 从一开始就不断在 minix 论坛上发布自己的进展,搞得论坛上一堆人非常感兴趣,于是许多人加入了开发,这时候 Linus 用邮件接收每个人的代码,然后手动合并。没过一段时间,minix 论坛上就全是讨论 Linux 的了,虽然塔雷鲍姆不是个小气的人,但是这么搞也让塔雷鲍姆很不爽

不久之后 Linus 和塔雷鲍姆之间爆发了一次冲突。

塔雷鲍姆在论坛上写了一篇文章,论证微内核与宏内核的优缺点,其实主要是攻击宏内核,说宏内核除了性能好点,全是缺点,说 Linux 过时了。Linus 是脾气暴躁的人,在技术问题上从不妥协。于是开始嘲讽 minix。Linux 的可移植性比 minix 更好,而且免费开源(minix 需要买书后获得)。

然后来来去去吵了很多次,具体可以看:

https://www.oreilly.com/openbook/opensources/book/appa.html

只是他们两个当时谁也没想到,这次论坛上的口水战会成为几十年后人们依然提起的操作系统之争。

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 的成功,以下几个条件必不可少:

  • Linus 强大的开发能力;

  • Linus 的项目管理能;

  • Linus 对操作系统发展方向的把控;

  • 一个群雄割据,缺乏免费好用的操作系统的时代;

  • 一个不仅群雄割据,缺乏免费好用的操作系统,而且程序语言,操作系统理论,编译器技术发展到一定程度,个人 PC 持续发展的时代;

  • GNU 的系统没做出来;

  • Minix 死守着『教育』不放;

  • GNU 的支持;

  • 全世界硬件厂商的支持;

  • 全世界软件厂商的支持;

  • 全世界开源开发者的巨大贡献;

再总结一下,一个人的命运,当然要靠自我奋斗,但也要考虑到历史的进程。

另外一个网友 Coldwings 的观点

说实话,是你想多了……

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是他一个人开发的这种事情,是不存在的。

- EOF -

推荐阅读  点击标题可跳转

1、漫画:程序员相亲图鉴

2、for (;;) 与 while (true),哪个更快?

3、2020 中国软件 100 强,腾讯第二、阿里第三,他第一!

觉得本文对你有帮助?请分享给更多人

推荐关注「Python人工智能编程」,提升Python技能

点赞和在看就是最大的支持❤️

手把手教你学Simulink--双足机器人的反步控制方法仿真 本文介绍了在Simulink中基于反步控制方法进行双足机器人仿真研究的步骤。主要内容包括:1)准备工作,包括MATLAB/Simulink安装和相关工具箱配置;2)构建简化双足机器人模型;3)设计反步控制器,阐述其递归设计原理及Lyapunov函数构造方法;4)通过MATLAB Function块实现控制逻辑并连接模型;5)仿真参数配置和结果分析。文章强调反步控制适用于非线性系统,通过逐步构造虚拟控制律保证系统稳定性,并指出需要多次调试和查阅文献来优化控制效果。该教程为研究双足机器人运动控制提供了实用的仿真 阅读详情

相关推荐

分布式定时任务(XXL-JOB)整合达梦数据库 带源码

背景 1. 因公司需要可视化管理配置调度任务,查询项目选择XXL-JOB,它是开源项目,入手很简单,详情可以参考官方文档; 2. 因项目的机密性,选择数据库为国内知名的达梦数据库7,与Java项目的整合详情可以参考SpringBoot 集成 达梦数据库 maven依赖本地jar包; 3. 因XXL-JOB暂时没有找到集成达梦数据库的案例,博主自己整合DM7踩过很多的坑,特此整合一个简单可直接...

艾斯-李的博客 3815

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

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

cainiao_python的博客 1050

Orale EBS R12 AP应付模块 发票导入接口(Interface)

ap_interface_groups_s.nextval; ap_invoices_interface_s.nextval; ap_invoice_lines_interface_s.nextval; SELECT * FROM ap_invoices_interface ih; SELECT * FROM ap_invoice_lines_interface il; SELECT * FROM...

qq_41206741的博客 3316

Linux之父访谈录:设计内核只为了好玩

“有些人生来就具有统率百万人的领袖风范;另一些人则是为写出颠覆世界的软件而生。唯一一个能同时做到这两 者的人,就是Linus Torvalds。”这是美国《时代》周刊对Linux之父Linus的评价。Linus除了是一位IT奇才外,还是一个乐观幽默的学者。IT168记者 带你走进Linux之父的专访现场。

流浪天空 942

MATLAB Appdesigner开发独立桌面App全流程(一):以打开串口功能为例介绍Appdesigner的基本使用

本文详细介绍了Appdesigner的基本使用,以串口功能为例介绍按钮回调函数的实现以及控件之间通信的问题

Zhuwany的博客 3万+

通过理解 sk_buff 深入掌握 Linux 内核自定义协议族的开发实现

在。

数字人生 458

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

当然,他不是一蹴而就的,他是先在自己的386上写了一个多线程的程序,然后发展成了终端模拟器,为了让终端模拟器开机就能运行,从BIOS开始,写引导程序,搞定实模式和保存模式的切换,后来为了保存数据,又添加了磁盘驱动,I/O管理......最后赫然发现:自己写了一个操作系统。最后总结一下:Linux这么强的操作系统,不是Linus一个人写出来的,他在合适的时间发起了这个项目,并且找到了一种有效的开发方式,用卓越的领导能力组织起了几十万人的协作开发,最终发展成了全世界最流行的操作系统。

IT界那些事儿 6107

风电功率预测 | 基于RF随机森林的风电功率预测(附matlab完整源码)

风电功率预测 | 基于RF随机森林的风电功率预测(附matlab完整源码)

天天酷科研的博客 896

开源之父--Linus

Git 很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。 Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢? 事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本...

Ask_for_advice的博客 1676

YOLO与ORB-SLAM3的结合:实现动态环境下的目标检测与视觉SLAM

摘要: 本文介绍如何将YOLOv5目标检测与ORB-SLAM3视觉SLAM系统结合,实现动态环境下的机器人感知与定位。内容包括:源码下载(集成项目YOLO_ORB_SLAM3)、libtorch安装(PyTorch C++支持)、编译配置(解决路径依赖问题)、ROS环境下的部署(Noetic适配),以及使用TUM数据集的测试流程(RGB-D数据关联与运行)。重点解决编译时Torch路径错误、ROS与Anaconda冲突等问题,并展示系统运行效果。该整合方案为动态场景SLAM提供目标检测能力,未来可优化检测模

FJN110的博客 961

使用abagen工具箱获取基于脑区的基因表达矩阵

脑区模板定义了您感兴趣的脑区的空间位置。abagen提供了一些预定义的脑区模板,您可以选择使用,也可以使用自定义的脑区模板。它提供了一种简便的方式来获取基于脑区的基因表达矩阵。abagen需要使用Allen脑图谱数据来获取基因表达矩阵。您可以使用abagen内置的下载功能来获取这些数据。这就是使用abagen工具箱获取基于脑区的基因表达矩阵的详细步骤。通过按照上述步骤操作,您可以轻松获取并使用Allen脑图谱数据中的基因表达信息。一旦您加载了脑区模板,您可以使用abagen来获取基于脑区的基因表达矩阵。

web_bug407的博客 1326

linus 用的linux版本,Linus Torvalds的重大消息

Linux创始人LinusTorvalds在内核邮件列表上宣布正式释出LinuxKernel4.9,这个版本被称为时尚改进最大的版本,同时4.10合并窗口已经开启。但值得注意的是,为期两周的合并窗口预计将在圣诞节这天关闭,因为假期的原因Torvalds考虑缩短或延长合并窗口,最有可能的做法是缩短合并窗口时间,以便于开发者们能度过一个平静的圣诞假期。LinusTorvalds在内核邮件截图据...

weixin_42515512的博客 1193

【python】懂车帝字体反爬逐层解密案例(附完整代码)

懂车帝字体反爬解密,完整代码分享

景天科技苑 2万+

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

而兼容性是最主要的问题,那时候的 CPU 不像现在的流行架构就那么两种(x86,Arm),那时候叫的上名的架构有十几种,所以操作系统的兼容性是非常重要的。《操作系统:设计与实现》这本书的作者是塔雷鲍姆 ,写书的时候已经是业界大牛了,他在大学为了教学操作系统,但苦于学生买不起太贵的 Unix 发行版,于是自己写了一个兼容 Unix 标准操作系统(主要是兼容 POSIX 标准),叫 Minix (名字上就很对仗,Universe - mini)。他们的目的是与商业的Unix对抗,因此需要有自己的操作系统。

2301_76936922的博客 222

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

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

公众号关注「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux !昨天刷知乎的时候,看到一个特别有意思的问题:为什么 linus 一个人就能写出 Linux 这么强的系统,中国却做不出来?其中有一个答主回答得很有意思。当然了,他的观点不一定正确,但是,却非常的针砭时弊,指出了国内软件行业、互联网行业的一些乱象。将这些乱象综合起来,这篇文章的观点还是非常值得思考和有一定价值的。分享给...

easylife206的专栏 315

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

假如Linus在中国···

知乎上有个知名的问题:有七百多万浏览:我看到了一个高赞回复,让人拍案叫绝,不敢独享,分享给诸位。

IT界那些事儿 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

为何 Linus 一个人就能写出Linux这么强的系统?

转自:默然 + Coldwings(知乎) 链接:www.zhihu.com/question/63187737 他是谁,Linus! 林纳斯・托瓦兹(Linus Torvalds, 1969 年~),著名程序员,Linux 内核的发明人及该计划的合作者。 托瓦兹利用个人时间及器材创造出了这套当今全球最流行的操作系统内核之一。 现受聘于开放源代码开发实验室(OSDL:Open Source Development Labs, Inc),全力开发 Linux 内核。 Linus 研究生时期开始

驽马十驾 才定不舍 3711

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

来源:CodeSheep大家好。一个多月前我曾写过一篇文章聊了聊CentOS这款Linux系统在停服后的一些平替问题。我清晰地记得当时评论区有一位小伙伴提出了一个这样的问题:“为什么别人信手拈来就能写出一个操作系统,而我们这么多大公司、那么多程序员就不行?”其实当时看到这条评论时还蛮想写一些文字详细回复一下的,但是受限于时间和评论区篇幅的问题,当时也就没能展开细写。毕竟一个操作系统的产生、发展和繁...

码农code之路 245
上一篇: ​LeetCode刷题实战117:填充每个节点的下一个右侧节点指针 II
下一篇: Redis 为什么默认 16 个数据库?
编程IT圈
博客等级 码龄6年 1130粉丝 544原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值