分类: LINUX
2009-12-16 22:08:48
在学习Linux的过程中,一度对Linux与UNIX的关系很是感到困惑,曾认为Linux是UNIX的一个分支版本。但后来通过阅读一些资料后,终于对Linux与UNIX的关系有了一个大概的认识。有趣的是,这种关系如果仔细描述出来,是一个有趣的故事。当然,那样将是长遍大论的,所以本文只会将我所阅读以及所认识到的Linux与UNIX的关系做一个提炼,让有兴趣的人能够用比较短的时间来了解这些。 By the way:本文中的部分文字引用自《鸟哥的Linux私房菜-基础学习篇》(作者:鸟哥 人民邮电出版社 第二版)以及《Linux宝典》(作者:Christopher Negus 人民邮电出版社),下面将不再一一说明。 一、1965年前后,Bell(贝尔实验室)、MIT(麻省理工学院)以及GE(通用电器公司)共同发起Multics计划,目的是为了强化大型机系统,使一台大型机能提供更多的终端接入。 二、Multics因进度落后,资金短缺,宣告失败。贝尔实验室退出该计划。 三、贝尔实验室的的一个参与Multics计划的成员的Ken Thompson,1969年前后,利用汇编语言写了一个操作系统核心程序及一些工具,以及一个小小的文件系统。该程序将原有的Multics宠大复杂的系统简化了许多。实验室的中同事戏称该系统为Unics,也即后来的UNIX。 四、因Unics非常好用,在贝尔实验室中广为流传。1973年,Unics使用B语言改写。再后来由Dennis Ritchie将B语言重新改写为C语言后又再次使用C语言将Unics改写,并发布了正式版的UNIX。 五、因为贝尔实验室隶属于AT&T,AT&T将UNIX源代码以像征意义的费用被授权给了加州伯克利大学(Berkeley)。 六、伯利克大学的Bill Joy在获取了UNIX的核心源码后,着手修改成适合自己机器的版本,并同时增加了很多工具软件与编译程序,最终将其命名为Berkeley Software Distribution (BSD)。(附:Bill Joy后来创办了Sun公司,所以Sun公司是以BSD发展的核心来进行自己的商业UNIX版本的发展的。后来可以安装在x86硬件架构上的 FreeBSD,也是BSD的改版。)同时很多商业公司开始了UNIX操作系统的开发(AT&T的System V、IBM的AIX等等),使得这些经过再次开发的UNIX能够运行在自己的主机上。 七、AT&T想要将UNIX版本收回,于是在1979的UNIX第七版中特别提到了“不可对学生提供源码”的严格限制。 九、1979年的版权申明给一些在学校教UNIX相关知识的教授造成了相当大的影响。于是Andrew Tanenbaum(谭邦宁)教授尝试自己动手编写Minix这个“类UNIX(UNIX Like)的核心程序。为了避免版权纠纷,谭邦宁完全不看UNIX核心源码,并强调与UNIX的兼容性,终于于1986年完成,并以开源的形式发布。 十、1984年,Richard Mathew Stallman(史夫曼)发起GNU(目的是为了建立一个自由开放的UNIX操作系统)计划,该计划开始的初期,史夫曼编写了一些与原来UNIX中的一些版权软件功能相似的软件,为了不吃官司,他绝对不看版权软件的源码。这些软件编写后,史夫曼公布源码。 十一、因为对Minix功能的不满,芬兰大学生Torvalds(托瓦兹)参考Minix的设计理念(并没有使用Minix的源码)使用GUN中的一些软件开发了Linux核心代码,第一个对外发布的代码版本号是0.02。(某种程度上因为托瓦兹使用了GUN中的一些开发工具,从而奠定了Linux本身的开源的基础) 十二、为了让Linux兼容UNIX,托瓦兹严格参考了POSIX(针对UNIX以及一些软件运行时的标准规范),所以Linux成为了一种“类UNIX”的系统。 从上面的描述中可以看到,Linux与UNIX之间的渊源颇深,但不完全是一个软件不同版本的问题,代码在从UNIX到MiniX,再到Linux之间经过了两次改写,最为关键的是这两次改写,作者均没有看源代码,所以成就了现在Linux的版权独立,从而也为开源铺平了道路 |