Linux编程环境介绍(1) -- linux的历史
1. linux是什么?
"Hello everybody out there using minix——I'm doing a (free) operating system"
在1991年的八月,网络上出现了一篇以此为开篇话语的帖子. 这是一个芬兰的名为Linus Torvalds的大学生在为自己新编写的操作系统寻找志同道合的合作伙伴。一个类似minix、可运行在386上的操作系—— Linux的不平凡路程就这样开始了!
众所周知的,Linux的核心原型是1991年由托瓦兹(Linus Torvalds)写出来的,但是托瓦兹为何可以写出Linux这个操作系统? linux和unix的区别是什么?为什么Linux的发展可以这举迅速?又为什么Linux是免费的? 目前众多的Linux distributions又是什么?
2. 不得不说的, Linux之前,Unix的历史!
早在Linux出现之前的二十年(大约在1970 年代),就有一个相当稳定而成熟的操作系统存在了! 那就是Linux的老大哥『Unix』了!
1) Unix原型的诞生
1969年, 贝尔实验室的Ken Thompson, 以汇编程序(Assembler)写出了一组核心程序,同时包括一些核心工具程序, 以及一个小小的文件系统。那个系统就是Unix的原型! 当时同实验室的朋友都戏称这个系统为:Unics。(当时尚未有Unix这个名称)
2) 1973年, Unix的正式发行, C语言的诞生
Unics操作系统太好用了, 在贝尔实验室内部非常受欢迎. 但是汇编的专一性太强了, 每次要安装到不同的机器都得要重新编写汇编代码.
于是Thompson与Ritchie(c语言之父, unix之父)合作想将Unics改以高阶程序语言来撰写。当时现成的高阶程序语言有B语言, 但是由B语言所编译出来的核心性能不是很好。于是伟大的C语言就在这种情况下诞生了!
Dennis Ritchie先将B语言重新改写成C语言,再以C语言重新改写与编译Unics的核心,最终在1973年发行出了Unix的正式版本!
3) 1979年:重要的架构与版权宣告
出于商业的考虑,AT&T(贝尔实验室是隶属于美国电信大厂AT&T公司的)在1979年发行的第七版Unix的同时,也收回了Unix的版权. 特别提到了『不可对学生提供原始码』的严格限制!
4) 1986年, Minix(Mini的Unix)系统完成
对于1979年的版权声明,影响最大的当然就是学校教Unix核心原始码的教授了! 没有了Unix内核代码,又如何教导学生认识Unix呢?
于是Andrew Tanenbaum(谭宁邦)教授在1984年开始自己动手写Minix这个Unix Like的核心程序! 在撰写的过程中,为了避免版权纠纷,谭宁邦教授完全不看Unix核心原始码! 并且强调他的Minix必须能够与Unix兼容才行!1986年, Minix系统完成, 并于次年出版了Minix相关书籍.
5) 1991年, linux诞生了!
1988年间,托瓦兹(Linus Torvalds)顺利的进入了赫尔辛基大学,并选读了计算机科学系, 开始接触到Unix.
他购买了最新的Intel 386的个人计算机后,就立即安装了Minix这个操作系统。然而托瓦兹跟BBS上面一堆工程师一样, 他发现Minix虽然真的很棒,但是谭宁邦教授就是不愿意进行功能的加强,导致一堆工程师在操作系统功能上面的欲求不满! 这个时候年轻的托瓦兹就想:『既然如此,那我何不自己来改写一个我想要的操作系统?』
于是托瓦兹参考Minix的设计理念和程序源码,并仔细研究386个人计算机的效能优化,利用GNU计划提供的bash工作环境软件以及gcc编译程序等自由软件,最终写出了他所需要的核心程序。
他还希望这个程序可以获得大家的一些修改建议, 于是他便将这个核心放置在网络上提供大家下载,同时在BBS上面贴了开篇提到的那则消息:"Hello everybody out there using minix——I'm doing a (free) operating system" .
Linux诞生了~
PS: 当然, 这无疑是一个伟大的时代, 还有好多非常重要的大事发生, 比如1977年Unix最重要分支BSD的出现, 比如1984年自由软件之父Richard M.Stallman创立了GNU与FSF(Free Software Foundation)等, 这里只列举了和linux产生最直接关系的几件大事.
3. linux和unix的联系和区别
联系:
1) unix的历史久于linux. linux的思想源于unix.
2) linux源于unix, unix的系统的优点它都有.
3) 它们遵从一套相同的标准, 因此软件兼容度非常高.
区别:
1) unix和linux都是操作系统的名称.但unix这四个字母除了是操作系统名称外,还作为商标归SCO所有.
2) unix系统大多是与硬件配套的,而linux则可运行在多种硬件平台上.
3) linux和unix的内核并不一样,并且unix的核心的不公开的, 而linux是自由软件,免费、公开源代码的.
4. 什么是 distribution?
经由上面的说明,我们知道 Linux 是个『操作系统』,并且有个老大哥是 Unix 。不过,毕竟由 Torvalds 负责维护的 Linux 提供的仅是『核心』与『核心工具』的集合,对于需要更完整功能的操作系统来说,毕竟还不够完备,例如如果你要桌面程序,还得要加入 X-Window 系统对吧!?如果你要架设 WWW 还得加入服务器软件对吧?所以,虽然 Linux 的核心已经提供了相当多的支持与工具程序,但毕竟还不足以构成一个很完整的操作系统。
好在,由于 Linux 的稳定性良好,并且可以在便宜的 x86 架构下的计算机平台运作,所以吸引了很多的套件商与自由软件的开发团队在这个 Linux 的核心上面开发相关的软件,例如有名的 sendmail, wu-ftp, apache 等等。此外,亦有一些商业公司发现这个商机,这些商业公司或者是非营利性的工作团队,便将 Linux 核心、核心工具与相关的软件集合起来,并加入自己公司或团队特有的系统管理模块与工具,融合出了一套可以完整安装的操作系统。这个完整的 Linux 操作系统,我们就称呼他为 distribution,或者是中文所谓的『安装套件』。
平时我们常听到的Ubuntu, Red Hat, Debian, CentOS等等, 他们都是众多Linux distributions的一种了!
文毕.