Linux内核简介-Linux内核和GNU/Linux发行版

建议点击这里查看个人主页上的最新原文

点击这里在哔哩哔哩bilibili在线观看配套的教学视频

点击这里在哔哩哔哩bilibili在线观看配套的加餐视频(就是一些补充)

点击跳转到内核课程所有目录

在讲具体的技术点之前,我们先来讲一些Linux内核相关的小故事。我们都有过这种经历,如果我们对一件事很感兴趣,那我们就会很投入做这件事,做再久也就不会感觉到累;而如果我们对一件不感兴趣,那让我们多做一分钟估计都会感到难受。比如对于喜欢玩游戏的朋友,你们可以玩几个小时,甚至通宵玩游戏;而我不喜欢玩游戏,让我多玩一分钟我都感觉难受;但我喜欢写博客,周末我可以把全部时间都花在写博客上。所以我们讲这些Linux内核的小故事,目的是让各位朋友对学习Linux内核产生兴趣,然后全身心的投入学习,接着能力就提升得很快,再涨很多工资,最后走上人生巅峰。当然Linux内核快速发展的30几年时间(截止到2024年),有趣的故事多到数不过来,这里只列出一小部分,感兴趣的朋友以后可以自己继续探索。

Linux内核之父

先上维基百科的一段描述:

林纳斯·贝内迪克特·托瓦兹(瑞典语: Linus Benedict Torvalds,瑞典语: [ˈliːn.ɵs ˈtuːr.valds],1969年12月28日—),生于芬兰赫尔辛基市,拥有美国国籍,Linux内核的最早作者,随后发起了这个开源项目,担任Linux内核的首要架构师与项目协调者,是当今世界最著名的电脑程序员、黑客之一。他还发起了开源项目Git,并为主要的开发者。

如果你在网上搜索“世上最厉害的程序员”,你绝对会发现林纳斯在其中。在他开发的众多软件之中,有两个软件最为著名,就是接下来我们要学习的Linux内核和git。其中git几乎现在的每一个程序员一定会用到的代码管理工具。他有句名言: Talk is cheap, show me the code,翻译过来就是,别逼逼那么多,有种给我看你的代码。从这句话可以看出,在他的带领下,Linux内核社区以技术说话,所以在Linux内核社区你可以和世上最顶尖的程序员交流技术,是不是有点小心动。

林纳斯在11岁时时就开始写程序,1989年进入大学的第二年去当兵,期间买了安德鲁·斯图尔特·塔能鲍姆所著的教科书《操作系统: 设计与实现》(Operating Systems: Design and Implementation,ISBN 0-13-637331-3)及Minix源代码,开始研究操作系统。

接下来说几件关于他的有趣故事。直接从维基百科上copy过来吧:

托瓦兹坚持开放源代码信念,并对微软等对手的FUD战略大为不满。例如,在一封回应微软资深副总裁克瑞格·蒙迪批评开放源代码运动破坏了知识产权的电子邮件中,托瓦兹写道: “我不知道蒙迪是否听说过艾萨克·牛顿爵士?他不仅因为创立了经典物理学而出名,也还因为说过这样一句话而闻名于世: ‘我之所以能够看得更远,是因为我站在巨人肩膀上的缘故。’”托瓦兹又说道: “我宁愿听牛顿的也不愿听蒙迪的。他(牛顿)虽然死了快300年了,却也没有让房间这样地臭气熏天。”陈孝松注: 需要说明一下,微软现在已经拥抱Linux了,甚至有了自己的GNU/Linux发行版了。

林纳斯在网上邮件列表中也以火暴的脾气著称。例如,有一次与人争论Git为何不使用C++开发时与对方用“放屁”(原文为“bullshit”、“BS”)互骂。他更曾以“一群自慰的猴子”(原文为“OpenBSD crowd is a bunch of masturbating monkeys”)来称呼OpenBSD团队,因为林纳斯认为软件一般性的错误比安全漏洞来的要多,而信息安全人士因为找到漏洞而成为英雄,而忽略了一般性软件错误的修补,并认为OpenBSD团队过度重视安全性忽略其他部分。

2012年6月14日,托瓦兹在出席芬兰的阿尔托大学所主办的一次活动时称Nvidia是他所接触过的“最烂的公司”(the worst company)和 “最麻烦的公司”(the worst trouble spot),因为Nvidia一直没有针对Linux平台发布任何官方的Optimus支持,随后托瓦兹当众对着镜头竖起了中指,说“去你妈的NVIDIA!”(So, Nvidia, fuck you!)。陈孝松注: 这句话还真让这家公司做出改变了,现在英伟达开源了不少驱动,林纳斯对英伟达举大拇指了。

更多的林纳斯的有趣故事,可以查看他的个人自传: 《只是为了好玩》

Linux内核的历史

在林纳斯当兵期间,接触了Minix操作系统,Minix的源代码虽然容易得到,但作者只想把这个系统用于教学,对源代码的修改和发布是不允许的,这让林纳斯感到失望。另外,1989年时GNU项目中的其他部分,如编辑器、编译器、Shell等都已经完成,虽然在1990年自由软件基金会开始正式发展Hurd,但也许是设计得太过复杂了吧,开发进行得并不是很顺利。

这些原因综合在一起,使林纳斯决定要自己写一个内核,1991年,还是一名大学生的林纳斯在comp.os.minix新闻组里发了一封帖子,说自己出于兴趣爱好做了一个(自由的)操作系统,希望得到懂Minix系统的人的意见。之后,许多人为这个项目贡献了代码,其中Minix社区贡献了很多代码和想法。有趣的是,Linux内核最初不是取这个名字的,而是叫Freax,但林纳斯的同事觉得这个名字不好听,就把名字私自改成了Linux。

1991年9月,0.01版本时有1万多行代码。1994年3月14日,1.0.0版本有17万多行代码。1995年3月,1.2.0有31万行代码。2013年6月3.10版本有1580万行代码。再看2024年的今天,Linux的内核代码行数如今已经达到3000万行左右(约一亿的1/3)。一个由个人兴趣发展起来的软件,30几年发展到如今的规模,可以看出当初的设计是多么的优雅。

众多的GNU/Linux发行版

一个操作系统只有内核肯定是不够的,还需要配套很多GNU软件,这些软件与内核的集合称为Linux发行版,更准确的说,应该叫GNU/Linux发行版,因为其中包含了数量庞大的GNU软件,Linux内核虽然非常重要,但也只是占据很小的一部分。

按软件包管理系统划分,介绍使用人数最多的两个大类,当然还有其他发行版本使用别的软件包管理系统。

首先是Debian系,Debian及其派生发行版使用deb软件包格式,并使用dpkg及其前端作为软件包管理器。

  • Debian: Debian计划是由伊恩·默多克在1993年发起的,在1993年9月15日发布Debian 0.01版,第一个稳定版本在1996年发布。我内核测试验证的虚拟机用的就是Debian。
  • Ubuntu: 然后得说一下在桌面Linux发行版中使用人数比较多的Ubuntu发行版,是Canonical有限公司基于Debian开发的,但和Debian不同的地方是他的目的是开发更加友好的桌面。Ubuntu每6个月发布一个版本,每年的4月和10月,长期支持(LTS)版本每两年发布一次(如Ubuntu 22.04)。普通版本只支持9个月,LTS版本一般支持5年。我编译代码的环境用的就是Ubuntu。
  • 银河麒麟桌面系统: 银河麒麟最初是Ubuntu Kylin的商业版本,现在已有自己的根社区openKylin,当前在国内使用人数比较多。

接着介绍一下Red Hat系,使用RPM格式软件包。

  • Red Hat Enterprise Linux: 红帽公司发行,Red Hat 1.0版本在1995年5月发行,从Red Hat 9.0版本(2003-03-31)之后不再开发桌面版,开始专注服务器版本Red Hat Enterprise Linux(刚开始是基于 Red Hat Linux)。Red Hat Enterprise Linux 4 (2005-02-15)之后基于社区的Fedora,从 Red Hat Enterprise Linux 9 (2022-05-18)之后基于CentOS Stream和Fedora。
  • Fedora: 社群开发、红帽公司赞助,约6个月发布新版本。
  • CentOS: 来自于Red Hat Enterprise Linux(RHEL)依照开放源代码规定发布的源代码所编译而成,不包含闭源代码的软件,2014年与红帽公司合作,2020年红帽终止CentOS,采用CentOS Stream。
  • Rocky Linux: CentOS的创始人在CentOS终止后创建的,继续CentOS的目标。首个正式版本8.4在2021年6月21日发布。
  • openEuler: 2019 年12月31日社区成立,版本发布周期和Ubuntu一样,只是换成了每年的3月和6月。参与度最高的有华为、麒麟软件等公司。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值