第一章:从Unix到Linux

一、Unix老祖

无论是大型的超级计算机,还是手机般小巧的智能终端设备,都有着自己的操作系统。正是这些操作系统,让应用软件得以在硬件上运行。

普罗大众最熟悉的操作系统大概是windows系列和苹果公司的MacOS系列了,当然还有在智能手机上大放异彩的Android和iOS系统;而对程序猿和网络管理猿、系统管理猿、数据库DBA而言,恐怕在服务器上运行的Unix/Linux才是他们的最爱。

各种操作系统中,本站-Linux7.com-关注的当然是Linux,而讲到Linux,却非得从Unix说起。

计算机架构/操作系统之示意图(非精确版,本站长最爱CentOS和FreeBSD)

1965年,Mutics 项目:

二十世纪六十年代,分时操作系统出现,对当时的批处理式的操作系统构成挑战。在分时操作系统诞生之初,效率很低,许多人尝试开发更先进的分时操作系统, 其中包括一些大学的研究项目和商业项目,其中最有名的是由AT&T的贝尔实验室、MIT、GE发起的Multics,其目的就是开发出更先进的分时操作系统,达到可以同时支持300个终端访问主机的水平。

1969年,Unics 诞生:

时间到了1969年,Mutics项目步履艰难,预算吃紧,时间延迟,难以完工,参加Mutics项目的其中一个开发团体-贝尔实验室退出了这个项目。退出后,项目成员之一的Ken Thompson为了移植一款“太空旅游”的游戏,使用汇编语言开发了某种简化版的Multics,这个系统相比Multics设计更加精简而易于把控,被称为Unics,意思是比Multics简单,大概在俚语里也有一些不好的含义,算是程序猿彼此的一种调侃与玩笑吧。

Ken Thompson, Unix老爹

1973年,Unix诞生:

那年,Dennis Ritchie和Ken Thompson合作想将汇编语言开发的Unics改成高级语言的,由于当时的高级语言B语言不够好,他们竟发明了C语言,并用90%C语言+10%汇编语言写出了新的,命名为Unix的新内核

Dennis Ritchie,C语言之父,Unix老爹

二、Unix 的散枝发叶与商业化

与汇编语言相比,C语言更加高级(指更加硬件无关),更加易于移植(亦即只要取得Unix的原始码,并且针对大型主机的特性加以修订原有的原始码(Source Code), 就可能将Unix移植到另一部不同的主机上头),同时,虽然贝尔属于AT&T,但是AT&T此时对Unix的版权采取较开放的态度,所以在刚开始的那几年里,Unix不仅得以在大学和各类研究机构受到欢迎,而且很多商业公司也开始了Unix操作系统的发展,例如AT&T自家的System V、IBM的AIX以及HP与DEC等公司, 都有推出(只能与)自家的主机/硬件搭配的自己的Unix操作系统。

1977年,重要的Unix分支-BSD的诞生

加州柏克莱(Berkeley)大学的Bill Joy在取得了Unix的核心原始码后,着手修改成适合自己机器的版本, 并且同时增加了很多工具软件与编译程序,最终将它命名为Berkeley Software Distribution (BSD)。这个BSD是Unix很重要的一个分支,Bill Joy也是Unix业者『Sun(升阳)』这家公司的创办者! Sun公司即是以BSD发展的核心进行自己的商业Unix版本的发展的。 (后来可以安装在x86硬件架构上面FreeBSD即是BSD改版而来!)

Bill Joy, BSD老爹,Sun公司创始人

1979年:重要的 System V 架构与版权宣告

AT&T推出 System V 第七版 Unix 。 这一版最重要的特色是可以支持x86架构的个人计算机系统,也就是说 System V 可以在个人计算机上面安装与运作了。

不过因为AT&T由于商业的考虑,以及在当时现实环境下的思考,于是想将Unix的版权收回去。因此, AT&T在1979年发行的第七版Unix中,特别提到了 『不可对学生提供原始码』的严格限制! 从这时候开始,Unix被认真地当作一个商业软件来运作,这也造成Unix业界之间的紧张气氛与商业纠纷,而在另一面,Unix的商业化却又引发了自由软件运动以及Linux等自由软件的诞生。

三、Linux横空出世

1984年,Minix诞生

由于不能合法使用Unix代码,荷兰的Andrew Tanebaum(谭宁邦)教授只好自己开发了一个一个功能有限的类似/兼容UNIX的操作系统用于给大学学生上操作系统的课程。这个系统就是Minix。

Andrew Tanebaum,大学教授,Minix发明者

1984年,自由软件运动与GNU

GNU's Not Unix

为了自由的使用软件,Stallman先生发起了自由软件运动,(Free Software Movement),创办FSF(Free Software Foundation)自由软件基金会;并发起了GNU项目,由于操作系统的开发过于艰难,GNU项目首先从应用软件入手,开发了一系列自由软件,包括GCC、Emacs、Bash Shell、GLIBC等等,但操作系统内核却一直没有很好的产品,期间GNU有开发Hurd,但效果不好,也就是说直到Linux出现,GNU的自由软件一直缺乏一个开放的平台运行,只能在封闭的Unix上运行,1985年,为了避免GNU开发的自由软件被其他人用作专利软件,因此创建GPL(General Public License)版权声明;

Stallman,NB的哲学家式黑客,自由软件运动发起者与精神领袖

1991年,GNU/Linux横空出世

1991年,恶贯满盈的不世出的天才Linus Torvalds在赫尔辛基(是的,他是一个芬兰人,芬兰,一个出产诺基亚、Linux、愤怒的小鸟的神奇小地方)读大学读书,他88年入校后即参加2年军训,91年返校后买了台IBM386的PC机,很显然他买电脑不是为了打DOTA,他感觉到Minix的局限,决定开发一个比Minix性能更好的内核。1991年8月25日,他在minix的新闻组上发表一个小帖子,对外公布了他的发明,一个小小的只有1万行代码,却又充满生命力的内核,内核实现了多任务和硬件管理,是使其他程序能够运行的基础。Linus并将源代码放在ftp上供人下载,由于他表现出对GNU/GPL的尊敬,而GNU又刚好欠缺一个好的内核,瞌睡遇到了枕头,GNU遇到了Linux,从此一发不可收拾。

GNU/Linux之间有一些争论,比如说“Linux操作系统其实是指 GNU/Linux ,即采用Linux内核的GNU操作系统。操作系统的实际名称是GNU。”或者说“Linux的发行版中的都采用了Linux内核,只不过其中一部分软件使用了GNU软件。”等等,但无论如何,两者互相成就却是不争的事实,两者的结合,成就了最伟大的自由操作系统,让我们向作为一个哲学家/程序员/自由软件旗手的Richard Stallman和作为程序天才的Linus Torvalds表达敬意。。

Linus Tovalds, Linux与Git之父,是的,他不仅仅搞出了Linux,还搞出了Git!!!

从那以后,Linux获得远远超出发明人本身预期的发展,无数GNU天才为Linux贡献代码,最终成长为健壮的、多用户、多线程的操作系统核心,与GNU上的其他应用软件配合地天衣无缝,构成伟大的系统,毫不夸张的说,Linux或许是信息技术行业最重要的发明,当你使用百度,谷歌,上淘宝,聊QQ时,支撑这些软件和服务的,是后台成千上万的Linux服务器主机,可以说世界上大部分软件和服务都是运行在Linux之上的,关于Linux的那些事,我们也就简单地介绍到这里了,算做对这些伟大人物、伟大事件的致敬。。如果您想进一步了解所有这些人物、事件、历史,您可以自行查阅网上的各种资料,在这里,我们就不再深入展开了,从下一章开始,我们将真正地,从技术学习的角度,进入Linux的世界。