0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux的成功,必不可少的几个条件

Q4MP_gh_c472c21 来源:嵌入式ARM 2020-09-08 15:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

他是谁,Linus!林纳斯·本纳第克特·托瓦兹(Linus Benedict 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的支持

全世界硬件厂商的支持

全世界软件厂商的支持

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    4

    文章

    1475

    浏览量

    43089
  • Linux
    +关注

    关注

    88

    文章

    11814

    浏览量

    219534
  • 操作系统
    +关注

    关注

    37

    文章

    7436

    浏览量

    129612

原文标题:Linux!为何他一人就写出这么强的系统,中国却做不出来?

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Linux系统下配置FCB-EV9520L与LVDS转USB3.0编码采集模块教程

    Linux系统上运行LVDS转USB3.0编码采集模块涉及几个关键步骤,包括Linux环境配置、硬件连接、软件安装与配置以及测试。以下是一个基本的指南
    的头像 发表于 03-04 16:05 205次阅读
    <b class='flag-5'>Linux</b>系统下配置FCB-EV9520L与LVDS转USB3.0编码采集模块教程

    Linux文件删除的底层原理和恢复方法

    rm -rf 大概是 Linux 世界里杀伤力最大的命令,没有之一。手一抖、路径一错、通配符一飘,几个 G 的数据就没了。更要命的是 Linux 默认没有回收站机制,rm 删掉的文件不会像 Windows 那样安静地躺在回收站里
    的头像 发表于 02-11 09:14 894次阅读

    Linux内核编码风格权威总结:从缩进到底层设计,让你的代码更“内核味”

    作为全球最庞大的开源项目之一,Linux 内核的代码量早已突破千万行。要让来自世界各地的开发者高效协作,一套统一、严谨的编码风格必不可少 —— 这不仅是 “代码颜值” 的要求,更是可读性、可维护性的核心保障。
    的头像 发表于 02-09 16:29 280次阅读
    <b class='flag-5'>Linux</b>内核编码风格权威总结:从缩进到底层设计,让你的代码更“内核味”

    灵巧手何以灵巧?晶振必不可少

    晶振虽小,却是成就灵巧之手不可或缺的关键。
    的头像 发表于 01-16 10:22 559次阅读

    MPS SAR ADC模拟前端电路设计直播回顾

    在医疗成像、工业CT无损检测、工业精密仪器测量中,ADC都必不可少。它能将连续变化的模拟信号,转化为芯片可读懂的数字代码。
    的头像 发表于 01-13 10:51 734次阅读
    MPS SAR ADC模拟前端电路设计直播回顾

    学习RTOS的意义?

    RTOS实现多任务管理。 嵌入式操作系统有众多的软件组件,可以极大的加速项目进度,避免重复造车轮。 2.技能需要 掌握操作系统,和基于RTOS的编程,实现更好的职业规划,对个人发展是必不可少的。 在招聘网
    发表于 11-27 08:16

    京微齐力新版福晞软件工具全面优化FPGA设计环境

    FPGA 设计开发过程中,软件是工程师必不可少的工具,好的软件开发环境可以简化设计者的设计流程,缩短开发时间,提升整体设计效率。
    的头像 发表于 10-23 17:48 5095次阅读
    京微齐力新版福晞软件工具全面优化FPGA设计环境

    为什么AGV是工业自动化必不可少

      AGV 新一代工业革命愈演愈烈,越来越多的企业加入到智能制造的浪潮中。而在智能工厂中,物流达到智能化是最基础的一个环节,为此,一个智能的AGV系统至关重要。 AGV立库 智能AGV自动化系统(Automated Guided Vehicle,简称AGV)是无人搬运车的英文缩写,通常也称为AGV小车,指装备有电磁或光学等自动导引装置,能够沿规定的导引路径行驶,具有安全保护以及各种移载功能的运输车,工业应用中不需驾驶员的搬运车。可通过电脑来控制其行进路线以及行为
    的头像 发表于 10-17 16:58 715次阅读
    为什么AGV是工业自动化<b class='flag-5'>必不可少</b>?

    Stateflow模型测试典型问题分享——不可达的分支

    问题描述: Stateflow条件存在互斥情况,导致部分工况不可达。 造成的影响: 较多的互斥结构将无法满足ASIL C/D等级覆盖度要求,并存在安全隐患。
    的头像 发表于 09-23 16:33 729次阅读
    Stateflow模型测试典型问题分享——<b class='flag-5'>不可</b>达的分支

    SSH 远程连接内网 Linux 服务器

    。 前提条件 在使用 ZeroNews SSH 远程连接 Linux 服务器之前,请确认您的 Linux 服务器已开启远程连接服务。如果未开启 SSH,请参考 CentOS/Ubuntu 启用 SSH 服务
    的头像 发表于 09-17 19:52 585次阅读
    SSH 远程连接内网 <b class='flag-5'>Linux</b> 服务器

    入行嵌入式应该怎么准备?

    架构、总线协议和存储器管理等概念的理解也是必不可少的。 三、操作系统嵌入式系统通常需要运行一个实时操作系统(RTOS)或者一个精简版的操作系统。熟悉RTOS的概念和使用方法,能够编写多任务和实时
    发表于 08-06 10:34

    高温季负荷激增,电压偏差影响电机效率?电能质量监测必不可少

    电压偏差的成因复杂,可能源于电网供电波动、厂区负荷突变或变压器分接头设置不合理等。在缺乏量化数据的情况下,问题溯源往往面临挑战。 CET电能质量监测方案提供“全周期、多维度”的数据记录,为偏差溯源提供可追溯的证据链。
    的头像 发表于 08-04 15:09 1167次阅读
    高温季负荷激增,电压偏差影响电机效率?电能质量监测<b class='flag-5'>必不可少</b>

    物理不可克隆功能的工作原理和益处

    物理不可克隆功能(PUF)是一种物理对象,对于给定的输入和条件(激励),提供物理定义的“数字指纹”输出(响应),作为唯一标识符,通常用于半导体器件,如微处理器。
    的头像 发表于 07-15 09:55 1096次阅读

    实拍案例 | 振动盘上必不可少的视觉传感器VDS10

    在电子烟陶瓷发热片的生产过程中,振动盘作为自动化上料的核心设备,需将无序排列的微型物料有序输送至检测工位。然而,由于陶瓷发热片尺寸极小(不足5mm)、正反面差异微弱(如表面纹理、孔洞分布差异),传统机械式检测方式难以满足高精度需求。视觉传感器技术的引入,为这一难题提供了高效解决方案。点击视频揭秘明治视觉传感器VDS10如何做到“火眼金睛”判断正反检测流程步骤
    的头像 发表于 07-15 07:34 1093次阅读
    实拍案例 | 振动盘上<b class='flag-5'>必不可少</b>的视觉传感器VDS10

    在任何平台上使用PetaLinux的先决条件

    本篇文章介绍了在任何平台上使用 PetaLinux 的先决条件。PetaLinux 是一种嵌入式 Linux 软件开发套件 (SDK),主要用于基于 FPGA 的系统级芯片 (SoC) 设计或 FPGA 设计。
    的头像 发表于 04-24 10:40 1728次阅读
    在任何平台上使用PetaLinux的先决<b class='flag-5'>条件</b>