1 最初的OS不能满足足够多的终端同时使用,于是贝尔实验室、通用和MIT发起了一个Multics计划。希望能够制造一个足够强大的多任务、多用户系统。
2 Multics项目搁浅,贝尔实验室退出。但是贝尔实验室的工程师汤普森得到了一个灵感,恰巧手边有一台PDP-7计算机而老婆出去探亲一个月。于是他奋战四个星期,用汇编写了一个File Server System。这个汇编的OS革命性地提出了“一切设备和程序都是文件”的理念,沿用至今。这个OS在当时的贝尔实验室内广为流传,当时被称作Unics,以示这个OS源于Multics项目。Multics项目最终项目周期过长、资金短缺而没有取得成功。但是它培养的人才却带来了计算机界的一场革命。有趣的是,UNIX的最初发明,只是为了玩一个叫“星际航行”的游戏。
3 汤普森的OS最初是用汇编写出来的,不具备在不同的硬件架构上移植的可能性。于是他发明了B语言重写了一遍,但是性能还是不是很好。另一个同事,丹尼斯里奇在B的基础上设计出C程序设计语言,获得了很好的性能,且摆脱了硬件的束缚。用C语言编写的程序可以在不同的平台之间很容易地移植,这就为后来UNIX的大范围移植打下了基础。
4 1977年,伯克利的比尔修改出了一个很重要的分支,即BSD--Berkley Software Distribution。AT&T则在1979年发布了重要的System V。现在的纯种UNIX只剩下他们。Linux严格来说只能是UNIX Like的一种实现。System V一开始就发布了四个版本SVR1、SVR2、SVR3、SVR4,四个版本带来了不同的分支。其中SVR4是其中最成功的版本,成为了后来很多UNIX共同特性的一个源头。
5
1984年的三件事:
UNIX是一个非常强大的OS。它一开始就是专门为服务器或者大型工作站的多任务、多用户环境所准备。而早期的X86 处理器(比如286)则不支持多任务,于是没有人对把UNIX移植到PC上感兴趣。比较有趣的是,在AT&T的第七个版本的UNIX中,刚刚开始支持X86个人运算,与此同时,又增加了不准向学生提供源代码的条款。于是教授OS内核原理的谭宁邦教授突发奇想,完全不看UNIX源码,自己从零写了一个UNIX Like的Minix,意为迷你UNIX。这项工作1984年开始,持续两年才完成,并于1986年在BBS新闻组上发布。
史托曼在人工智能实验室干到一半,突然遇到实验室重组。此时的他已经进行了很多自由软件的开发,感到需要一个更大的团队。一次实验室设备的更新让他感受到MIT的专利软件LispOS和他的理念格格不入。这时候,一个开放架构的UNIX出现在他面前,于是他转而投身于UNIX。同样是在1984年,史托曼开始GNU项目。GNU是“GNU's Not Unix”的无穷递归缩写,意为GNU不是UNIX(注:Gnu在英文中原意为非洲牛羚,发音与new相同)。目标是构建一整套完全由自由软件构成的UNIX OS体系。但是一开始单打独斗的史托曼力有不逮,于是GNU项目一开始只是开发在UNIX上运行的自由软件。 史托曼靠相似的免费软件打开了GNU的知名度以后,又靠出售Emacs的磁带赚了一点小钱,于是成立了FSF(Free SoftWare Foundation)--自由软件基金会。进而与志同道合者开发出了GCC(GNU C Compiler)编译器。这是一个伟大的编译器,不仅自由免费,而且比其他商用专利编译器性能都要好。现在的GCC不仅能够支持C的编译,还能支持C++、Java等多种程序设计语言的编译。GNU的拳头产品,大概在1990年左右全部发布:Emacs、GCC、GLIBC、Bash shell。GNU的所有产品为了反专利,都使用GPL--General Public License。因为GNU的理念是“版权制度是促进社会进步的手段,版权本身不是自然权利。”这和比尔盖茨那封著名的信真是相映成趣!
同样是在1984年,MIT和其他第三方第一次发布了UNIX上的X Window GUI。
6 芬兰学生托瓦兹小时候就跟着外祖父搞微计算机,很小就学会了汇编语言。进入赫尔辛基大学以后他苦于学校只有一台UNIX OS的计算机且只支持16个终端。于是他自己贷款弄了一台最新式的386计算机,并且购买了Minix OS进行实验,发现386确实能够很好地支持多任务操作。但是此时谭宁邦教授忙于教学,已经不大搭理Minix的更新,于是他决定用GNU的Bash shell和GCC,参照Minix的设计理念和书上的程序代码自己写一个OS。1991年,他将第一个kernel放上FTP网站的一个名为Linux的目录下,编号为0.02。这项伟大的运动就此诞生!
7 为了让UNIX上的软件能够运行与Linux上,托瓦兹开始参考POSIX(IEEE制的Portable OS Interface的缩写,意在不同的厂商硬件和OS上设定一些通用的协议,提高整个业界的兼容性)。Linux在黑客团队的支持下,终于在1994年发布了1.0版本(恰好此时把X Free 86 基金会的 X Window系统也兼容进去了,也就是说,一开始就是带图形操作界面的),在1996年发布了2.0版本。奇怪的是,至今的kernel仍然只是2.6。
8由于GPL的限制,所有从自由软件中诞生的软件都是自由软件,Linux的商业空间可谓相当狭小。但是在Linux优秀的内核支持下,还是出现了许多Linux Distribution。这些Distribution必须遵循LSB(Linux Standard Base)和FHS(File system Hierarchy Standard)规范,且使用的自由软件也多大同小异,所以很方便学习!
9 实际上,现在的Linux Distribution分为Debian系统和红帽子系统(fedora)。乌班图用于个人计算效果非常绚丽!SuSE也不错。
分享到:
相关推荐
Linux操作系统是一个非常优秀的自由软件操作系统平台,由芬兰大学生林纳斯·托瓦兹(Linus Torvalds)根据Unix操作系统向微机移植开发的网络操作系统,是自由软件运动的重大的技术成果。到今天,Linux已经成了集体...
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。 Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承...
UNIX Linux程序设计教程,使用C/C++进行开发,有兴趣的各位可以看看
Unix Linux Linux命令 Unix 命令
SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件。(解压到安装路径可直接使用)
UNIX和LINUX和DOS
Python.Unix和Linux系统管理指南 源代码,Python.Unix和Linux系统管理指南 源代码
UNIX&LINUX;大学教程.pdf
讲解Unix和Linux下的Oracle数据库管理
UnixLinux基础讲义
Linux是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子
unix-linux编程实践教程
Unix&Linux;资料
《unixLinux下的Curses库开发指南》综合示例程序 -unixlinux develop guide with Curses libraryinstances program
dos2unix linux安装包, 支持各个linux操作系统,属于比较新的安装包,有需要的同学请你去吧
UNIX and Linux System Administration Handbook: UNIX Linux Syste Admin Han_5 5th Edition, 英文版,带书签
UNIX和Linux 高級教材 好東西一起分享
Unix-Linux编程实践教程(中文清晰带书签),用大量的实例来讲解Linux下的系统开发
Linux/UNIX系统编程手册源码 linux interface source code