一、Linux发展简史
1.1969年以前:Bell,MIT与GE的“Mutics”系统
Bell:贝尔实验室,隶属于AT&T公司
MIT:麻省理工学院
GE:通用电气公司
Mutics:有“多数”的意思,意在让多人同时使用一台主机的资源(多用户)
·60年代初,MIT开发出分时操作系统,最多同时提供30台终端机(技术上的限制)连接一台大型主机,以让更多用户可以同时使用同一台昂贵主机的资源;
·1965年,Bell、MIT与GE共同发起Mutics项目,目的是想让大型主机可以同时提供300台以上终端机来连接大型主机;
·1969年前后,Mutics项目资金缺乏,虽然项目仍然进行,不过Bell最终退出了该项目;
·Mutics项目最终还是成功的,只是没有受到太大的重视(需求问题)。
2.1969年:Ken Thompson的小型File Server System
Thompson:贝尔实验室的成员,当时参与了Mutics项目开发
·Mutics项目培养了优秀的人才,Thompson便是其中一员;
·Thompson从Mutics项目中获得了不少的想法;
·为了移植“太空旅游”游戏,Thompson将Mutics项目中庞大复杂的系统进行简化,在PDP-7主机上以汇编语言写出了一组内核程序、内核工具程序以及一个小的文件系统,被称为Unics(UNIX的原型);
·Thompson开发的文件系统概念:
a.所有的程序或系统装置都是文件
b.不管构建编辑器还是附属文件,所写的程序只有一个目的,就是要有效地完成目标
3.1973年:UNIX正式诞生,Ritchie等人以C语言写出第一个正式UNIX内核
汇编语言:具有专一性,与硬件相关,Unics即用汇编语言所开发
B语言:高级语言,但所编译出来的内核性能不是很好
C语言:高级语言,由Dennis Ritchie将B语言重新改写而成
·Thompson开发的Unics实用性强,在Bell内部广为流传;
·当时计算机机器架构(硬件架构)都不太相同,给Unics移植带来一定的复杂性;
·Ritchie将B语言改写成C语言,并与Thompson合作,用C语言来重新必定与编译Unics的内核;
·发行出UNIX的正式版本;
·由于高级语言的特性,UNIX很容易被移植到不同的机器上(硬件架构不同的主机)。
4.1977年:重要的UNIX分支——BSD诞生
可移植性:UNIX用高级语言开发,理论具有可移植性,即只要取得UNIX的源码,针对不同主机特性加以修改,即可以移植到不同的主机上
Berkeley:加州柏克莱分校
Bill Joy:Sun公司创始人
Berkeley Softsare Distribution:即BSD
FreeBSD:由BSD改版而来,可以安装在x86硬件架构上
·由于UNIX的可移植特性,1973年后,Bell得以与学术界合作开发UNIX(学术界进行学术研究,往往需要使用计算机,而当时缺乏的是一个好的操作系统);
·Bell与Berkeley进行了重要的接触;
·Berkeley的Bill Joy取得UNIX的内核源码后,修改成适合自己机器的版本,增加很多工具软件与编译程序,并将其命名为Berkeley Softsare Distribution,即BSD;
·Bell Joy创建办Sun公司,以其修改的内核(BSD)来进行自己的商业UNIX版本的开发。
5.1979年:重要的System V架构与版权声明
协议:这里指硬件架构的通用生产协议,当时计算机硬件公司没有该概念,因此所生产的硬件需要合适的UNIX系统
x86:早期的个人计算机架构,该架构下的CPU没有多任务的作业能力
纯种的UNIX:指BSD以及System V
·UNIX高可移植性、强大性能、无版权纠纷,商业公司开发UNIX操作系统,推出自家的主机搭配“自家”的UNIX操作系统;
·这些公司开发的硬件没有遵循统一的协议(当时没有),开发的UNIX操作系统及相关软件只能在自家硬件架构的主机上运行;
·这些公司有:AT&T、IBM、HP、DEC、Sun、Cray等;
·UNIX强调多用户、多任务,由于x86的特性,没有人愿意移植UNIX到x86架构主机上;
·AT&T推出的System V第七版UNIX,支持x86架构的个人计算机;
·AT&T出于商业考虑,发行其第七版UNIX时,提出“不可对学生提供源码”,即要将UNIX版权收回。
6.1984年之一:x86架构的Minix操作系统诞生
Minix:迷你的UNIX操作系统
·System V每七版的版权声明,影响了教导UNIX内核源码学问的谭宁邦教授;
·为了教学的方便,谭宁邦教授与UNIX兼容的迷你UNIX操作系统Minix;
·Minix只能通过磁盘/磁带购买,但是提供Minix源码;
·谭宁邦教授没有继续开发Minix,只是点到为止。
7.1984年之二:GNU项目与FSF基金会成立
Richard Mathew Stallman:史托曼,GNU项目发起人,起草GPL
GNU项目:创建一个自由、开放的UNIX操作系统(Free UNIX)
GPL:,General Public License,GNU的通用公共许可证,避免GNU自由软件被商业利用而发起
AI Lab.:黑客圈中出名的人工智能实验室,1971年史托曼进入该实验室
Lisp:MIT开发的操作系统,属于专利软件,史托曼早期在Lab中即使用其来开发软件
Free Software Foundation:即FSF,自由软件基金会
--自由分享的环境
·史托曼早年进入AI Lab.中,强调“分享”,对于软件没有专利的困扰;
·AI Lab.的管理层问题,导致优秀黑客离开并加入商业公司开发软件;
·史托曼坚持分享、自由而留下来,但意识到需要成立一个开放的团体来共同努力。
--使用UNIX开发阶段
·实验室硬件的更换,使得史托曼放弃了Lisp,并得以接触UNIX;
·UNIX在那时虽然也是专利软件,但相比Lisp,其在架构上还是比较开放的;
·史托曼将在Lisp上写的软件移植到UNIX上,并公布源码。
--GNU项目的推展
·1984年史托曼开始GNU项目,旨在创建一个自由、开放的UNIX操作系统;
·由于当时只用史托曼一个人,并且创建操作系统并不容易,困难重重;
·史托曼采取“先开发UNIX操作系统上的软件”的策略,这些软件称为GNU软件;
·开发出Emacs:程序编辑器(非编译器),进行程序语法的检查;
·为了开发出UNIX下的编译程序(非常重要),史托曼利用Emacs出售赚来的钱,成立FSF;
·FSF请更多工程师和志愿者来编写软件;
·进而开发的重要软件:Gcc,C语言的编译程序
8.1985年:GNU的通用公共许可证——GPL
·起草GPL,是为了避免GNU自由软件被他人利用而成为专利软件
·GNU项目的重要自由软件:
Emacs
GNU C(GCC)
GNU C Library(GLIBC)
Bash shell
·这些软件使得软件开发者可以更好地进行软件开发工作,从而壮大了自由软件团体;
·这些软件仍然是在那些授权的UNIX平台上工作,当时并没有“自由的UNIX内核”存在,直到Linux出现。
9.1988年:图形接口XFree86项目
XFree86:,开发用户图形接口的非营利性组织,即X Window System + Free + x86的简称
·用户图形接口需求日益加重;
·MIT在1984年已与第三方合作开发出X Window System;
·MIT在1988年成立非营利性组织XFree86。
10.1991年:荷兰大学生Linus Torvalds的一则消息
·1991年,Torvalds在BBS上发布消息,称以bash,gcc等工具写了一个小小的内核程序,并可以在Intel的386机器上面运行。
二、GNU项目
1.自由软件(Free Software)活动
·将源码连同软件程序一起公布的举动,就是自由软件活动。
2.自由软件的版权:GNU GPL
·GNU=GNU‘s Not UNIX;
·GNU与FSF开发出来的软件都挂上GPL的版权声明,FSF内核观念是:版权制度是促进社会进步的手段,版权本身不是自然权力。
3.自由软件“自由(Free)”的真谛
·史托曼对GPL一直是强调Free的;
·Free的解释:
-英文解释:
-中文大意: