我们每天打开终端,敲下一行行命令,以为自己和 Linux 已经很熟了。
但下面这些事实,知道 3 个以上的人不超过 1%。
01|Linux 差点叫 "FreaX"
Linus Torvalds 最初想把自己的"业余爱好"项目命名为 "FreaX"——"Free" 和 "Unix" 的组合。
幸运的是,他早期使用的代码托管服务器管理员觉得这个名字太奇怪,说服他改成了 "Linux"(Linus + Unix 的组合)。
如果当初服务器管理员没开口,我们今天可能在用的是 FreaX Ubuntu 和 FreaX CentOS。
02|Tux 企鹅的来历:Linus 被企鹅咬了
Linux 的吉祥物是一只企鹅,名叫 Tux。但你知道为什么选企鹅吗?
据 Linus 自己回忆,这是因为他曾经被一只愤怒的企鹅咬伤。这段经历给他留下了深刻印象,于是他决定用企鹅作为 Linux 的吉祥物。
如果 Linus 当时被咬的是一只狗,Linux 的 logo 可能就是一只狗了。
03|/proc 不是一个真正的文件系统
你可能每天都在用 /proc,但这里有一个巨大的误解:/proc 根本不是一个真正的文件系统。
它是一个虚拟文件系统(procfs),里面的所有文件都不存在于硬盘上,而是直接映射到内核内存中的数据结构。当你读取 /proc/cpuinfo 时,你读的不是磁盘文件,而是内核在实时生成数据。
$ ls /proc1 1234 cmdline cpuinfo meminfo sys ...# 注意:这些"文件"大小都是 0 字节$ ls -l /proc/cpuinfo-r--r--r-- 1 root root 0 Jul 6 10:00 /proc/cpuinfo
这也是为什么 /proc 目录下的文件大小都是 0 字节——因为它们根本不存在于磁盘上。
04|/dev/null 是一个"黑洞",/dev/zero 是一个"无限零生成器"
Linux 有两个神奇的设备文件:
- •
/dev/null:一个只进不出的黑洞。你写入的任何数据都会被永久丢弃,读取它则立即返回 EOF。 - •
/dev/zero:一个无限零生成器。你读取它时,它会源源不断地返回 0 字节,永远不会结束。
# 把文件内容扔进黑洞(彻底删除且不留痕迹)$ cat secret.txt > /dev/null# 生成一个 1GB 的空文件(全部填0)$ dd if=/dev/zero of=empty.img bs=1M count=1024# 用 /dev/zero 填满整块硬盘(数据擦除)$ dd if=/dev/zero of=/dev/sda
在 Unix 世界里,/dev/null 有个外号叫 "bit bucket"——数字垃圾桶。它是整个操作系统里最民主的地方:无论你往里面扔什么,它都一视同仁地吞掉。
05|Linux 1.0 只有 17 万行代码,现在是 2000 万+
1994 年 3 月 14 日发布的 Linux 1.0,只有 176,250 行代码。
而到了 2018 年,Linux 内核代码已经超过 2000 万行。今天这个数字只多不少。更惊人的是,第一版 100% 由 Linus 编写,而现在他的个人代码占比不到 1%——他现在的主要工作是审核和合并全世界开发者提交的代码。
这就像一个最初自己搬砖的包工头,如今管理着全球最庞大的开源建筑工地。
06|Linux 100% 统治超级计算机,90% 的好莱坞特效依赖它
两个数字让你感受 Linux 的统治力:
TOP 500 超级计算机 = 100% 运行 Linux
90% 的好莱坞特效制作流程依赖 Linux
从《阿凡达》到《复仇者联盟》,那些让你目瞪口呆的视觉特效,背后都是 Linux 集群在疯狂渲染。NASA、ESA 等所有主要太空计划也全部使用 Linux。
甚至太空中,还有以 "Linux" 和 "Linus Torvalds" 命名的小行星。一个操作系统能被写入天文学命名,这在人类历史上绝无仅有。
07|乔布斯 2000 年邀请 Linus 加入苹果,被他拒绝了
2000 年,乔布斯向 Linus Torvalds 抛出橄榄枝,条件是停止在 Linux 上的开发。Linus 毫不犹豫地拒绝了。
想象一下:如果 Linus 当时点了头,今天的世界会是什么样?
- • 可能没有 Git(Linus 也是 Git 的作者)
一个人的拒绝,改变了整个技术世界的走向。
08|Linus 也是 Git 的作者——为了赌气写的
Git,这个全世界程序员每天离不开的版本控制工具,其实是 Linus 写的。
2005 年,Linux 内核社区和当时使用的版本控制系统 BitKeeper 闹掰了。Linus 一怒之下,花了 两周时间 写了一个全新的分布式版本控制系统——Git。
"I'm an egotistical bastard, and I name all my projects after myself. First Linux, now Git."
("我是个自负的混蛋,所有项目都用自己名字命名。先是 Linux,现在是 Git。")
Git 在英文俚语里有"蠢货"的意思。Linus 用这个自黑的名字命名了当今最伟大的开发工具之一。
09|Linux 早期禁止商业使用,2年后才改成 GPL
很多人以为 Linux 一出生就是开源自由的代名词。但事实恰恰相反——
1991 年的 Linux 是禁止商业使用和再分发的。直到 1992 年发布 0.12 版本时,Linus 才改用 GPL 协议,Linux 才真正成为我们今天所知的自由软件。
如果 Linus 当初没有切换许可证,Linux 可能只是一个默默无闻的个人项目,永远不会成长为今天的开源帝国。
10|Linux 内核每小时合并 7.8 个补丁,每 66 天发一个新版本
Linux 内核的开发速度快得令人窒息:
平均每小时合并 7.8 个补丁
每 66 天左右发布一个新版本
13.3% 的代码是空行(严谨的编码风格的一部分)
而且每个 Linux 内核版本都有一个有趣的代号,比如 v4.13 的 "Fearless Coyote"(无畏的土狼)、v4.18 的 "Merciless Moray"(无情的海鳗)。
谷歌、英特尔、华为、三星、红帽、Meta 是近年来内核开发的主要贡献者。微软——这个曾经试图"熄灭"Linux 的公司——现在也在为内核做贡献。
+|彩蛋:你可以用 Linux 内核给自己"算命"
在终端输入这条命令:
$ cat /proc/sys/kernel/random/entropy_avail
这个数字代表的是系统当前的熵池大小——即系统收集的随机性数据量。它是真随机数生成器的基础,直接影响加密强度。
如果你的这个数字长期低于 1000,说明系统的随机性不足,加密操作可能会被拖慢。
考考你
以下哪个不是 Linux 的真实事实?
A. Linux 差点叫 FreaXB. Linus 被狗咬了所以选企鹅C. /proc 下的文件都是 0 字节D. 乔布斯邀请 Linus 被拒
答案:B——Linus 是被企鹅咬了,不是狗。
写在最后
你知道几个?留言说说你知道几个!知道 5 个以上算高手,7 个以上请受我一拜。