@ 2015.08.27 , 17:30
35

忘了Win95诞生20周年吧,Linux24岁了

[-]

24年前的1991年8月24日,计算史上最著名的消息之一被张贴出来:

还在用minix的大家好 –

我在做一个跑在386(486)AT兼容机上的(免费)操作系统(只是个爱好,不会像gnu那么大而专业)。从4月份就在搞了,现在差不多可以用了。

很多人都在Usenet的comp.os.minix新闻组里读过这则消息,或者至少听说过它,而知道这个(免费)操作系统最终接管了计算机世界里的广阔领域,并且变得又“大”又“专业”的人则更多。但它成名之前的岁月是怎样的?是哪些关键事件导致Linus创建Linux的第一个公开发布版本?

为了找到答案,1996年我去了他在芬兰赫尔辛基的公寓。在《连线》杂志1997年8月的特写中我使用了一些他的回答;更多的则出现在我2011年出版的书《反叛军代码:Linux和开放源码革命内幕》,下面是Linus自己讲述的Linux如何诞生的更详尽解释。

1988年秋季,Linus进入赫尔辛基大学学习计算机科学。仅仅两年后他第一次接触了Unix:

有一门很短的Unix课。那是在1990年秋,大学有一台跑Ultrix的MicroVAX,有16个用户许可证什么的。过去他们全都是用VMS,所以这门Unix小课最多只能16个人上,因为硬件就只有这么多了。而且你还得排队等终端用,但即便如此,我还是立即就喜欢上Unix,我想这是因为它的编程接口。Unix号称复杂但实则很简单。

Linus使用的教材之一是Andrew Tanenbaum的《操作系统:设计与实现》,Tanenbaum的书中不但有怎样写一个操作系统的详实信息,还附带了一个名为Minix的小型学习操作系统的源代码。它最初写在英特尔8088处理器上,后来移植到英特尔80386上。

[-]

Linus一直是一名芯片鉴赏家,他虽然憎恶英特尔的早期产品,却把80386评价为“比以前的任何芯片好很多”。在一块还算可以的芯片上有类似Unix的Minix可用,其结果是决定性的:“就在那时我定下决心买了台PC。”直到那时,他都一直在一台Sinclair QL(“量子跃迁”)上编程,再之前是一台Commodore Vic-20。

Linus能买下他的第一台PC要归功于硬件价格下跌和个人状况的欢乐组合。因为芬兰大学教育系统的资助方式,他能够得到学生贷款,由于他在家和母上同住,他不需要把很多贷款花在住上,就可以拿作他用。当时还正逢圣诞,“我有压岁钱之类的。我记得放完年假的第一天,我就跑去买了台PC。”那是1991年1月5日。即使到1996年,Linus还清楚记得他第一台PC的配置:

英特尔386,DX33,4MB内存,没有协处理器——我自己可以用模拟软件,但是别人有协处理器,我不确定Linux能不能在上面工作,所以事实上半年后我不得不去买了一个浮点协处理器。硬盘有40MB,所以不是很大。

即使Linus一攒够钱就冲出去买了他的PC,因为Minux软盘还要几个月才能送到,他无法立即投身进Unix的世界。因此他像任何一个真正的程序员一样打发时间——在MS-DOS下玩“波斯王子”等游戏。他也在探索英特尔80386芯片的架构。Linus这样描述他的早期实验:

我在测试任务切换能力,因此我所做的是跑了两个进程,让它们都向屏幕上写东西,再用一个定时器来切换任务。一个进程写出A,另一个写出B,所以我就看到AAAA BBBB等。开头两个月我写出来的代码量只有一咪咪,因为有非常多的细节,全新的CPU,我之前从来没在英特尔上编过程。

[-]

异乎寻常地,这个非常简单的任务切换程序结果成长进入了Linux内核:

在某个时候我duang一下注意到,我几乎已经有了内核功能,因为我做的那两个原始进程是写出A和B,我把这两个进程改为终端仿真程序包的功能。你就有一个进程读取键盘,并发往调制解调器,另一个则从调制解调器读取并送往屏幕。我有键盘驱动程序,因为显然我需要某种方式来和我写的这货通讯,然后我有文本模式的VGA驱动,我也写了串行线的驱动,这样我就能打电话到大学去阅读新闻。这真的就是我最初在做的,只是通过调制解调器读点新闻。

Linus能够使用他简单的原始内核阅读新闻组的一个好处就是他可以得到技术问题的答案来帮助他改进系统:

那是91年夏天,我真正利用了新闻组来问有关POSIX标准信息之类东西。我在看新闻、使这个模拟程序包变得更好。然后我想要下载东西,因此我得写一个硬盘驱动,我得写一个文件系统,这样我就能读取Minix文件系统,以便写文件和读出文件来上传它们。所以基本上,当你有了任务切换,你有了文件系统,你有了设备驱动——那就是Unix。

Linux在那个时刻也许就已经存在了,但Linus还没有这么叫它。它的得名出自于Linus要求得到POSIX规范信息以确保Unix类操作系统间兼容性,赫尔辛基大学教员之一Ari Lemmke告诉Linus,POSIX并不是网上能免费得到的,必须要付费——对于穷学生来说这几乎不可行。但Linus回顾道:

[-]

告诉我该标准不可用的同一个人也告诉我他的兴趣领域在于内核和操作系统,他在ftp.funet.fi的FTP服务器上有一小块地盘,他跟我说:“呵呵,我帮你开了个目录。”于是他创建了/pub/os/linux这个目录。

Linux是我的开发代号,所以在这个意义上他并没有真正给它起名,但是我从未想要以Linux的名字发布它。Linux作为开发代号完全很好,但如果我真的用它作为正式名称人们会认我狂妄自大,不会把我当真。所以我选择了这个非常糟糕的名字“Freax”,意为“免费Unix”。幸运的是,Ari Lemmke反而使用了这个开发代号。之后,他再也没改过名。

除了给Linux选了个好名字,Lemmke也启动了整个公共开发进程:

我从未宣布过第一个版本的Linux;我只是给新闻组里表示感兴趣的几个人发了个人邮件。几星期后的第二个版本要好很多;我就宣布了这个版本。第一个版本非常匆忙,部分是因为已经有了FTP站点——已经在那里有一个月左右了——因为我有这个站,我觉得我就得有点东西可用,我必须上传一些东西上去。因此第二版才更接近我真正想要的,那一个就是我在Minix新闻组里宣布的那个。

在1996年,Linus说道:“我不知道多少人在comp.os.minix拿到了第一个公开版本——也许10个20个的样子。”幸运的是,这显然足够多,以致于启动了一系列事件,最终导致今天有多得多数量的人在使用着24年前那个卑微的任务切换器的直系后裔。

[-]

本文译自 ArsTechnica,由译者 王丢兜 基于创作共用协议(BY-NC)发布。


给这篇稿打赏,让译者更有动力
支付宝打赏 [x]
您的大名: 打赏金额:

0.0
赞一个 (16)

TOTAL COMMENTS: 35+1

  1. 2913403

    毫无PS痕迹的中指。

    [35] XX [0] 回复 [0]
  2. 有点幽默
    @2 years ago
    2913404

    这么大了,当年我还抱过你呢

  3. 2913405

    我第一次真正操作电脑是小学的时候,学校里的电脑还是古董机,那时候已经98 99年了,电脑的系统还不是windows,我也不懂系统是什么,反正那个时候学的是logo语言,用小海龟画线条………………那真是完全没卵用的技能,当时还没学26个字母的我,根本不知道老师说什么,也学不会

    [58] XX [4] 回复 [0]
  4. 2913406

    每个字都看懂了

  5. 哈哈哈
    @2 years ago
    2913408

    king of geeks。 哈哈哈

  6. ekansrm
    @2 years ago
    2913409

    一个了不起的系统

  7. 2913411

    个人认为程序员的耐心简直可怕,要我调试一个程序几十次的话我早疯了。

  8. 2913413

    @哈哈哈: 据说此人开车是波特兰一车匪路霸,连格林见了都要绕着走

  9. 马赛克
    @2 years ago
    2913418

    计算机专业 但毛都没学到 真的好像只是为了应付考试。。

    [10] XX [1] 回复 [0]
  10. 开玩笑
    @2 years ago
    2913419

    一个不错的内核。其实我觉得BSD系统也不错,社区更加开放,就是协议对一些程序员来说太开放了。话说hurd好难产啊

  11. 大叫驴
    @2 years ago
    2913421

    上大学还可以有压岁钱。。。

  12. 2913426

    小学的时候用DOS系统, 各种命令在里面敲来敲去…
    然后学LOGO, Basic, FoxPro数据库…

    然后可能玩的比较好吧, 跟老师关系也比较铁.
    别的学生在他们自己的电脑上搞DOS, 我就玩老师的那台…

    那是一台Windows 3.x, 那会儿老师的电脑还没有鼠标, 我所有的操作都得在键盘上按

    再之后小学快要毕业了, 才接触到Win 95/98.

    不过我现在依旧喜欢命令行操作, 喜欢Linux…

    嗯, 我是前后端开发+运维的FullStack…

    [20] XX [9] 回复 [0]
  13. 2913427

    @开玩笑: 是啊,FREEBSD协议更友好,MAC的darwin就是基于bsd的。

  14. kaphy1114
    @2 years ago
    2913435

    @you: 现在小学也还在教这没卵用的东西

    [12] XX [3] 回复 [0]
  15. kiongf
    @2 years ago
    2913445

    就为了那句“Just for fun”, 毅然选择了内核开发这条路,结果到现在都没有走上去

  16. 2913447

    我从 Red Hat 7.3 开始接触 Linux,如今我还是小白。

  17. Jancy君
    @2 years ago
    2913449

    然而即使告诉我我也不造

  18. 2913482

    1985年11月20日,Windows 1.0发行,已经快30岁了

  19. 2913514

    内核还是用的蛮多,桌面实在是扶不起来,言语间gnome3.16又挂了

  20. 2913523

    每次跑终端室友就会说又在装逼
    只有我一个人吗

  21. 藍冰
    @2 years ago
    2913551

    作为非计算机专业的,已经用Linux 3年了。

  22. 2913582

    我也学过特呢保姆大婶的教材

  23. 百得
    @2 years ago
    2913614

    李纳斯,你的脖子呢?!上次见你的照片,还有的。

  24. mgno32
    @2 years ago
    2913620

    之前有人叫我换mac,我说不熟悉那操作系统
    后来上了大学,linux半年后,再有人叫我换mac,我只能说没钱了…

  25. 吃肉的死胖子
    @2 years ago
    2913686

    第二张图 到底充了多少Q币?

  26. 2913687

    @flz: 真坑,书后面小半本源码,看了几十页放弃了。。。。

  27. 2913704

    @you: 你说的那个确定不是学习机?

  28. 2913708

    听说linux对硬件要求低,在一台02年的笔记本上装了puppy linux希望能快一点,结果发现比xp快不到哪里去。于是又弄回去了。

  29. 藍冰
    @2 years ago
    2913792

    @iused: 还好吧,我硬件P4 2.8G,2G DDR,XP看1080P的电影是5秒跳一次画面,Linux能流畅播放,虽然拖动后会有10秒音画不同步,好歹能让我看清一路向西。

  30. 小学科学学生
    @2 years ago
    2913827

    这个人真的值得尊敬。作为一个安卓用户我如是说。

  31. Hadron
    @2 years ago
    2913862

    @jukki: 是时候放弃 de 了,找个好用的的 wm 吧,比如 awesome 或者 xmonad

  32. Ayahuasec
    @2 years ago
    2913922

    omg,我手机上这货运行的只是一个任务切换器!

  33. 2914030

    @Hadron: 我就要用Gnome。Gnome3 。现在就在用。在娱乐嘛,哈哈~

  34. 2914163

    @you: 我小学也是这样耶 后来快毕业才换Windows95还是98 记得要提前半节课去开机…

  35. MouseBat
    @2 years ago
    2914500

    @jukki:

    谁让你用gnome,还是3.x,不崩才怪。无论资源占用还是最终效果,我觉得它都够烂。
    KDE呀,lxde呀,小老鼠呀,这些都很好用呀。

发表评论


24H最赞