oracle学习入门系列之三Unix、Linux历史及基础

oracle学习入门系列之三Unix、Linux历史及基础

       终于翻过了前面两篇,喝杯咖啡提下神,咱们继续前行。这次我们要进行操作系统方面知识了,考虑到当前时间上操作系统的多样性、变化性等,蛤蟆斟酌再三,决定还是Unix/Linux比较符合我们的实际。

       开始之前不得不又提几个问题:

1、  Unix 从哪里来

2、  Linux从哪里来

3、  Unix/Linux什么关系

4、  怎么入手这系统

哎呀,看见这些问题蛤蟆就有点老激动了,最喜欢唠嗑的就是这些鸡皮蒜毛的事情了。让我们赶紧开始吧~~不急,留个邮箱先

本人邮箱:[email protected]

微信公众号: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一样的系统出来。经过半年努力终于完工,于是在1991年10月5日,也就是咱们国庆期间啰,发布在comp.os.minix 新闻组上了,对外选宣布了linux内核,当时叫做FREAX(怪物的意思),新闻组管理员发现他姓Linus,那就叫Linux吧。

       其实此时内核代码的量是非常上的,和MINUX也有点差距,很多思想直接来自于MINUX系统的。

       到93年的时候,大约100名程序员加入内核编写修改,0.99版本大概有十万行左右了。

       94年,Linux 1.0发布,代码17万行,采用GPL协议。

       1995年1月,红帽公司成立了。

              1996年,Linux2.0 内核40万行,支持多个处理器了,进入实用阶段。

              Linux进入快速发展道路……

              直到现在。

              总结:一个大学生在使用任何系统都不爽的情况下,自己搞了一套,结合天时、地理、人和最终颠覆了整个行业。

       此处向Linus表示深深的敬意。

 

3      Linux基础

终于本篇的扯皮结束了,开始来点干货了必须。让我们操起小手开始吧

3.1      Shell理解

什么是shell?

Shell字面意思是壳,放在这里就是内核之外的包着的一层壳。内核负责和计算机硬件打交道,shell负责和用户打交道;shell扮演者用户和内核中间人的作用。

假如没有SHELL?

那么系统将会很难使用,任何一个简单操作都需要用户自己编码去实现了,人性化实在是不敢恭维。所以,我们看到UNIX出来时候基本就有SHELL了。

其实呢,Shell就是一些基于内核的应用程序。

       那么这些应用程序由哪些呢?
       ok,我们乘着这个机会来看看。

 

3.2      常用命令

这里蛤蟆就假设大家都有自己的Liux系统了,应为毕竟学习数据库嘛,数据库软件肯定会基于某个操作系统的嘛

#cd

切换目录的命令

#date

显示时间和日期

#echo

屏幕上显示文本

#history

显示用户前面输入的命令

#pwd

显示当前工作目录

#which

查看某条命令版本

#whereis

询问使用程序的可执行文件所在位置

等等,等等,是在不易全部列出,大伙记住如上命令,就可以行走于SHELL内外了,哈哈

重要的是告诉大家几个法宝

#man

如果不知道cd 命令 怎么用

#mancd

就会显示怎么使用cd了,记住这个胜记百个命令嘛。

 

3.3      Vi编辑器

vi 编辑器是Linux和Unix上最基本的文本编辑器,刚上班那会,听同事说这个东西大师都用的,于是我苦练之,3年之后终于….

发现其实就是个软件嘛~大师用什么并不重要,重要的是大师用其来干嘛。

不过话说回来,工欲善其事,必先利其器。所以我们还是很有必要玩好vi的,不然在linux下编辑个文件都困难了。

具体蛤蟆不展开了,做到如下几点就可以

知道如何打开文件(如:vi a.txt )

知道如何切换模式( vi 有两种模式,命令模式和编辑模式 )

知道如何插入文字

       初步就这样,大家可以练习一下,只要1~2天即可娴熟。

 

3.4      目录介绍

我们知道windows中以后C盘D盘什么,其实最早有A盘,B盘的,那是留给软盘使用的,没想到淘汰得这么快,我记得小时候我姐买的电脑上有软驱,有几个软盘1.44M大小才,记得我看上里面黑色的磁片,贼光亮的,好奇心驱使,然后就用螺丝刀都给拆了,然后…..反正屁股肿了几天。

Windows中C盘打开后看到的全是系统文件的目录,Linux中其实也差不多,只不过Linux的最外层是一个叫做根的目录,用“/”表示。

       我们暂时记住几个目录就行了

一个 “/”根目录,所有其他目录从这里衍生出来,一个系统就一个”/”

一个/boot目录,这个目录是挂载 根目录下”/” 的,存放的是启动文件

一个/home目录,所有新的用户都可能会在该目录下存在工作目录,对了,就是可能,因为有些可能没有或者不需要。

 

3.5      其他常用命令

#ssh 安全外壳协议,用于远程登陆

#ftp 文件传输协议

#telnet Internet远程登陆服务的标准协议和主要方式

#top 系统监控命令

#vmstat 进程、CPU、内存、缺页监控命令

       大家可以自己百度或者google学习,或者后续碰到了再学习之也不迟。因为这些不是本学习系列的重点,再此就结束了。下篇我们将学习Oracle了,想想也是有点小激动的了。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。