oracle学习入门系列之三Unix、Linux历史及基础
终于翻过了前面两篇,喝杯咖啡提下神,咱们继续前行。这次我们要进行操作系统方面知识了,考虑到当前时间上操作系统的多样性、变化性等,蛤蟆斟酌再三,决定还是Unix/Linux比较符合我们的实际。
开始之前不得不又提几个问题:
1、 Unix 从哪里来
2、 Linux从哪里来
3、 Unix/Linux什么关系
4、 怎么入手这系统
哎呀,看见这些问题蛤蟆就有点老激动了,最喜欢唠嗑的就是这些鸡皮蒜毛的事情了。让我们赶紧开始吧~~不急,留个邮箱先
本人邮箱:appdevzw@163.com
微信公众号:HopToad
欢迎各界交流
1 UNIX从哪里来
我看见当前很多小伙伴都急着去实践一些命令,去理解操作系统的实现,甚至去看操作系统的源代码,其实呢蛤蟆觉这个真的不要捉急的。如果小伙伴这么急着去做这些,蛤蟆相信不用多久小伙伴就打起退堂鼓了。因为这样坚持不下来,遇到大一点的困难,很容易让人放弃的,放弃了就什么也没了,以前的也就白学了。蛤蟆觉得任何事情最好的老师是兴趣,而怎么来提起小伙伴们感兴趣呢?我想就是这鸡毛蒜皮的事情,看着这一地鸡毛我们也知道就算是Linux,windows,mac os这些牛逼的操作系统,当时也是一步一步成型的,并非是出来就是现在这个样子的,我们一方面就能建立兴趣,另一方面也能建立信心了哈。
让我们切入到正题,unix 从哪里来?
让我们回到1965年时候,贝尔实验室、通用电气、MIT合作了一个项目,(之前我们在第一篇中说过IBM在1964年推出了大型机么),这个项目就是实现在一台机器上支持多个任务、多个使用者同时接入,同时让所有使用者都感觉像自己一个人在使用机器一样(我们现在的机器其实都有该特性了,但是最原始做这个事情是多么不容易的)。这个项目名字叫做MULTICS操作系统。
到了1969年,也是过了4年,贝尔实验室感觉项目进度太慢,就不干了。(这里不得不提下贝尔实验室,贝尔实验室发明了是晶体管、激光器、太阳能电池、发光二极管、数字交换机、通信卫星、电子数字计算机、蜂窝移动通信设备、长途电视传送、仿真语言、有声电影、立体声录音,以及通信网等,共6次拿诺贝尔奖,科学家多如牛毛,类似三国中的魏国,武将如云,谋士如雨啊,贝尔实验室真心为美国、为人类做出了巨大的科学研究,要知道我们国家至今没有科学领域的诺贝尔奖,文学奖当然另算的)
贝尔不干之后,有个叫Ken Thompson(Unix之父)的老程序员闲来没事,开始玩星际旅行的游戏了,Ready go!!飞机起飞了,左转,右舷打满,刹车,继续飞行。。。。嘭。。飞机爆炸了。
Ken Thompson:!@#$%^&*,这个反应机器反应太慢了~~~
于是Thompson发现了一台闲置的机器PDP-7,就把游戏移植过去了。这样Thompson在PDP-7上玩游戏了,他叫了Dennis Ritchie(C语言之父)一起玩来玩,这台PDP-7也最多支持2人。一个同事Brian Wilson Kernighan(UNIX,C语言双重元老)跑过来说你们这个太简单了,应该是"UNiplexed Information and Computing Service",缩写为"UNICS",后来,大家取其谐音,就称其为"UNIX"了。1970年可称为"UNIX元年"。
1971年,Thompson为了更好的问游戏,申请一台PDP-11/24机器,他们就一直游戏过去了,当前在机器上也实现了简单系统(Unix第一版)了。到了73年,又有新机器出来了,Thompson和Ritchie感觉每次用汇编一直太累了,说的也是啊一年12个月,他两移植搞了10个月,打游戏就剩下2个月了,而且第二年新机器就出来了。
穷则思变了,他们决定用高级语言来实现,这个想法在那个年代的确实属伟大啊,难怪是大师嘛。他们用Fortran失败了,然后用BCPL语言,在此基础上形成了B语言(Unix第二版),然后Ritchie觉得这个还是不能满足,然后改良了B语言,就有了今天的C语言。
接着就他两一起把原先汇编的代码用C重写了,形成了第三版。至此UNIX和C完美结合了。
两个好基友因为打游戏(咳咳),通过自己的努力成功在IT历史上划下了重重的一笔,任时光如何荏苒,抹不去他们的作用,当前这游戏的功劳是在伟大。
公司一开觉得没撒,不就是两个不务正业的码农搞的什么软件么,就免费提供给高校老师玩耍,这一闹,到了70年代后期,公司发现其中商机了,开始保护UNIX,让其成为商业机密了。到1979年开始就是Unix版本v7 停止大学使用Unix源码了。
到了80年,出现了两个分支,一个是贝尔实验室自己的正宗版本,一个是伯克利大学的BSDUNIX(之前几年不是开放了源码的了么,高校老师也不吃素啊)。这样一来就爆发了UNIX大战,各种系统出现了,HP-UX,SUN的Solaris, IBM的AIX ,贝尔自己的SYSTEM V 等等。我只想说:我去啊~~~。就是类似咱们春秋战国时期的百家争鸣,
为此在1984年,UNIX用户协会出来说话,“你们这样叫我们怎么玩嘛?这么多系统,各不一样”
后来IEEE出击指定了POSIX标准,通过一组最小的功能定义了在UNIX操作系统和应用程序之间兼容的语言接口。POSIX是由RichardStallman(GNU创始人,大拿一枚,来过杭州的说) 应IEEE的要求而提议的一个易于记忆的名称,含义是Portable OPerating System Interface(可移植操作系统接口),而X表明其API的传承。
KenThompson和DennisMacAlistair Ritchie同为1983年图灵奖得主。
UNIX来源至此明了。
总结:两个不务正业,爱玩游戏的码农,在上班期间搞了一个小软件来支持自己游戏,结果玩大了。用咱们中国人的话说就是:天时、地理、人和三要素齐全啊~
此处向Dennis MacAlistair Ritchie,Ken Thompson表示深深的敬意!
Ritchie 已于2011年10月12日谢世。
2 Linux从哪里来
那我们继续看看Linux是从哪里来的呢?
话说1979年,贝尔不在开源UNIX代码了,荷兰阿姆斯特丹的Vrije大学计算机科学系的Andrew S. Tanenbaum(塔内保姆教授,蛤蟆最爱)教授,愤而一击,自己搞了系统叫做MINUX(就是min unix之意),共1.2W行。用来他的教学事业,可惜不让别人增加其他代码,因为塔内老师怕量太多影响学生学习,多么有爱心的老师啊。
当年在芬兰的赫尔辛基大学的学生Linus买了台386的机器,看则MS-DOS的系统怎么都不爽,然后花钱买了塔内老师的书,呦,书还送光盘的,Linux赶紧装上MINIX玩起来了,感觉很是爽快。
很快发现,这个MINUX 功能有限啊,毕竟是学习版本嘛,而且塔内老师也不让加入其它功能模块。
(此处的说明下当时世界环境:
1991年,GNU计划已经发布了很多工具,如GCC也有
POSIX标准也已发布,Internet网络也开始起步了。)
Linus想了许久,进行了前期准备,发现GNU有好多好玩的工具,终于决定自己搞个像MINUX一样的系统出来。经过半年努力终于完工,于是在19