oracle學習入門系列之三Unix、Linux歷史及基礎
終於翻過了前面兩篇,喝杯咖啡提下神,咱們繼續前行。這次我們要進行操作系統方面知識了,考慮到當前時間上操作系統的多樣性、變化性等,蛤蟆斟酌再三,決定還是Unix/Linux比較符合我們的實際。
開始之前不得不又提幾個問題:
1、 Unix 從哪裡來
2、 Linux從哪裡來
3、 Unix/Linux什麼關系
4、 怎麼入手這系統
哎呀,看見這些問題蛤蟆就有點老激動了,最喜歡唠嗑的就是這些雞皮蒜毛的事情了。讓我們趕緊開始吧~~不急,留個郵箱先
本人郵箱:[email protected]
微信公眾號:HopToad
歡迎各界交流
我看見當前很多小伙伴都急著去實踐一些命令,去理解操作系統的實現,甚至去看操作系統的源代碼,其實呢蛤蟆覺這個真的不要捉急的。如果小伙伴這麼急著去做這些,蛤蟆相信不用多久小伙伴就打起退堂鼓了。因為這樣堅持不下來,遇到大一點的困難,很容易讓人放棄的,放棄了就什麼也沒了,以前的也就白學了。蛤蟆覺得任何事情最好的老師是興趣,而怎麼來提起小伙伴們感興趣呢?我想就是這雞毛蒜皮的事情,看著這一地雞毛我們也知道就算是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日謝世。
那我們繼續看看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表示深深的敬意。
終於本篇的扯皮結束了,開始來點干貨了必須。讓我們操起小手開始吧
什麼是shell?
Shell字面意思是殼,放在這裡就是內核之外的包著的一層殼。內核負責和計算機硬件打交道,shell負責和用戶打交道;shell扮演者用戶和內核中間人的作用。
假如沒有SHELL?
那麼系統將會很難使用,任何一個簡單操作都需要用戶自己編碼去實現了,人性化實在是不敢恭維。所以,我們看到UNIX出來時候基本就有SHELL了。
其實呢,Shell就是一些基於內核的應用程序。
那麼這些應用程序由哪些呢?
ok,我們乘著這個機會來看看。
這裡蛤蟆就假設大家都有自己的Liux系統了,應為畢竟學習數據庫嘛,數據庫軟件肯定會基於某個操作系統的嘛
#cd
切換目錄的命令
#date
顯示時間和日期
#echo
屏幕上顯示文本
#history
顯示用戶前面輸入的命令
#pwd
顯示當前工作目錄
#which
查看某條命令版本
#whereis
詢問使用程序的可執行文件所在位置
等等,等等,是在不易全部列出,大伙記住如上命令,就可以行走於SHELL內外了,哈哈
重要的是告訴大家幾個法寶
#man
如果不知道cd 命令 怎麼用
#mancd
就會顯示怎麼使用cd了,記住這個勝記百個命令嘛。
vi 編輯器是Linux和Unix上最基本的文本編輯器,剛上班那會,聽同事說這個東西大師都用的,於是我苦練之,3年之後終於….
發現其實就是個軟件嘛~大師用什麼並不重要,重要的是大師用其來干嘛。
不過話說回來,工欲善其事,必先利其器。所以我們還是很有必要玩好vi的,不然在linux下編輯個文件都困難了。
具體蛤蟆不展開了,做到如下幾點就可以
知道如何打開文件(如:vi a.txt )
知道如何切換模式( vi 有兩種模式,命令模式和編輯模式 )
知道如何插入文字
初步就這樣,大家可以練習一下,只要1~2天即可娴熟。
我們知道windows中以後C盤D盤什麼,其實最早有A盤,B盤的,那是留給軟盤使用的,沒想到淘汰得這麼快,我記得小時候我姐買的電腦上有軟驅,有幾個軟盤1.44M大小才,記得我看上裡面黑色的磁片,贼光亮的,好奇心驅使,然後就用螺絲刀都給拆了,然後…..反正屁股腫了幾天。
Windows中C盤打開後看到的全是系統文件的目錄,Linux中其實也差不多,只不過Linux的最外層是一個叫做根的目錄,用“/”表示。
我們暫時記住幾個目錄就行了
一個 “/”根目錄,所有其他目錄從這裡衍生出來,一個系統就一個”/”
一個/boot目錄,這個目錄是掛載 根目錄下”/” 的,存放的是啟動文件
一個/home目錄,所有新的用戶都可能會在該目錄下存在工作目錄,對了,就是可能,因為有些可能沒有或者不需要。
#ssh 安全外殼協議,用於遠程登陸
#ftp 文件傳輸協議
#telnet Internet遠程登陸服務的標准協議和主要方式
#top 系統監控命令
#vmstat 進程、CPU、內存、缺頁監控命令
大家可以自己百度或者google學習,或者後續碰到了再學習之也不遲。因為這些不是本學習系列的重點,再此就結束了。下篇我們將學習Oracle了,想想也是有點小激動的了。