Linux的發展史和Linux的終端類型

Linux的發展史和Linux的終端類型

前言:

   隨著時代的發展,Linux所占的市場份額越來越大,目前幾乎百分之九十的服務器市場都被Linux占據。接下來我們來聊聊Linux的發展史。

簡單的說:Linux操作系統是1998年的8月芬蘭的一個叫Linus Torvalds的大學生寫出來的一個類minix的系統。

具體分析 Linux 操作系統的誕生、發展和成長過程依賴于以下幾個重要支柱:UNIX操作系統、MINIX操作系統、GNU計劃。

     UNIX操作系統Linux之所以如此穩定,是因為他有Unix這么一個老前輩。而UNIX 操作系統是美國貝爾實驗室的Ken.Thompson和Dennis Ritchie 于1969年夏天在DEC PDP-7 小型計算機上開發的一個分時操作系統。Ken Thompson 為了能在閑置不用的PDP-7 計算機上運行他非常喜歡的星際旅行(Space travel)游戲,于是在1969 年夏天趁他夫人回家鄉加利福尼亞渡假期間,在一個月內開發出了UNIX 操作系統的原型。當時使用的是BCPL 語言(基本組合編程語言),后經Dennis Ritchie 于1972 年用移植性很強的C語言進行了改寫,使得UNIX 系統在大專院校得到了推廣。最初的Unix系統名字并不叫Unix,而是叫UNICS,為游戲而生,且只支持2二個用戶。后改名為Unix。他的時間原點是1970年1月1日0點0分0秒。

     MINIX操作系統:MINIX 系統是由Andrew S. Tanenbaum(AST)在1987年開發的,主要用于學生學習操作系統原理。對于Linux 系統,他后來曾表示對其開發者Linus的稱贊。但他認為Linux的發展很大原因是由于他為了保持MINIX 的小型化,能讓學生在一個學期內就能學完,因而沒有接納全世界許多人對MINIX的擴展要求。因此在這樣的前提下激發了Linus 編寫Linux 系統。當然Linus 也正好抓住了這個好時機。

    

GNU計劃:來自哈佛大學的Richard M.Stallman于1984年創立自由軟件體系GNU,擬定普遍公用版權協議(GeneralPublicLicense,簡稱GPL),今天Linux的成功就得益于GPL協議。而其校友比爾·蓋茨于同時期宣布版權時代的來臨。

所有GPL協議下的自由軟件都遵循著Richard M. Stallman"Copyleft"(非版權)原則:即自由軟件允許用戶自由拷貝、修改和銷售,但是對其源代碼的任何修改都必須向所有用戶公開。
     GNU 計劃和自由軟件基金會FSF(the Free Software Foundation)是由Richard M. Stallman 1984 年一手創辦的。旨在開發一個類似UNIX 并且是自由軟件的完整操作系統:GNU 系統(GNU "GNU's Not Unix"的遞歸縮寫,它的發音為"guh-NEW")。
     各種使用Linux 作為核心的GNU 操作系統正在被廣泛的使用。雖然這些系統通常被稱作"Linux",但是Stallman 認為,嚴格地說,它們應該被稱為GNU/Linux系統。
      到上世紀90 年代初,GNU 項目已經開發出許多高質量的免費軟件,其中包括有名的emacs 編輯系統、bash shell 程序、gcc 系列編譯程序、gdb 調試程序等等。這些軟件為Linux 操作系統的開發創造了一個合適的環境。這是Linux 能夠誕生的基礎之一,以至于目前許多人都將Linux 操作系統稱為“GNU/Linux”操作系統。

 

Linux的誕生

在1991年的八月一個芬蘭的名為Linus Torvalds的大學生為自己開始寫作一個類似minix,可運行在386上的操作系統尋找志同道合的合作伙伴。

1991年10月5日,Linus Torvalds在新聞組comp.os.minix發布了大約有一萬行代碼的Linux v0.01版本。

到了1992年,大約有1000人在使用Linux,值得一提的是,他們基本上都屬于真正意義上的hacker。

1993年,大約有100余名程序員參與了Linux內核代碼編寫/修改工作,其中核心組由5人組成,此時Linux 0.99的代碼有大約有十萬行,用戶大約有10萬左右。

1994年3月,Linux1.0發布,代碼量17萬行,當時是按照完全自由免費的協議發布,隨后正式采用GPL協議。至此, Linux的代碼開發進入良性循環。很多系統管理員開始在自己的操作系統環境中嘗試linux,并將修改的代碼提交給核心小組。由于擁有了豐富的操作系統 平臺,因而 Linux的代碼中也充實了對不同硬件系統的支持,大大的提高了跨平臺移植性。

1995年,此時的Linux 可在Intel、Digital 以及Sun SPARC處理器上運行了,用戶量也超過了50萬,相關介紹Linux的Linux Journal雜志也發行了超過10萬冊之多。

1996年6月,Linux 2.0內核發布,此內核有大約40萬行代碼,并可以支持多個處理器。此時的Linux 已經進入了實用階段,全球大約有350萬人使用。

1997年夏,大片《泰坦尼克號》在制作特效中使用的160臺Alpha圖形工作站中,有105臺采用了Linux操作系統。

1998年是Linux迅猛發展的一年。1月,小紅帽高級研發實驗室成立,同年RedHat 5.0獲得了InfoWorld的操作系統獎項。4月Mozilla 代碼發布,成為linux圖形界面上的王牌瀏覽器。Redhat 宣布商業支持計劃,網絡了多名優秀技術人員開始商業運作。王牌搜索引擎"Google"現身,采用的也是Linux服務器。值得一提的是, Oracle 和Informix 兩家數據庫廠商明確表示不支持Linux,這個決定給予了Mysql數據庫充分的發展機會。同年10月,Intel和Netscape宣布小額投資紅帽軟 件,這被業界視作Linux獲得商業認同的信號。同月,微軟在法國發布了反Linux公開信,這表明微軟公司開始將Linux視作了一個對手來對待。十二 月,IBM發布了適用于Linux的文件系統AFS 3.5以及Jikes Java 編輯器和Secure Mailer及DB2測試版,IBM的此番行為,可以看作是與Linux羞答答地第一次親密接觸。迫于Windows和Linux的壓力,Sun逐漸開放 了Java協議,并且在UltraSparc上支持Linux操作系統。1998年可說是Linux與商業接觸的一年。

1999年,IBM宣布與Redhat公司建立伙伴關系,以確保Redhat在IBM機器上正確運行。三月,第一屆 LinuxWorld 大會的召開,象征Linux時代的來臨。IBM、Compaq和Novell宣布投資Redhat公司,以前一直對Linux持否定態度的Oracle公 司也宣布投資。五月,SGI公司宣布向Linux移植其先進的XFS文件系統。對于服務器來說,高效可靠的文件系統是不可或缺的,SGI的慷慨移植再一次 幫助了Linux確立在服務器市場的專業性。7月IBM啟動對Linux的支持服務和發布了Linux DB2,從此結束了Linux得不到支持服務的歷史,這可以視作Linux真正成為服務器操作系統一員的重要里程碑。

2000年初始,Sun公司在Linux的壓力下宣布Solaris8降低售價。事實上Linux對Sun造成的沖擊遠比對 Windows來得更大。 2月Red Hat發布了嵌入式Linux的開發環境,Linux在嵌入式行業的潛力逐漸被發掘出來。在4月,拓林思公司宣布了推出中國首家Linux工程師認證考 試,從此使Linux操作系統管理員的水準可以得到權威機構的資格認證,此舉大大增加了國內Linux愛好者學習的熱情。伴隨著國際上的Linux熱潮, 國內的聯想和聯邦推出了"幸福Linux家用版",同年7月中科院與新華科技合作發展紅旗Linux, 此舉讓更多的國內個人用戶認識到了存在著Linux這個操作系統。11月,Intel 與 Xteam合作,推出基于Linux的網絡專用服務器,此舉結束了在Linux單向順應硬件商硬件開發驅動的歷史。

2001月新年依使就爆出新聞,Oracle宣布在OTN上的所有會員都可免費索取Oracle 9i的Linux版本,從幾年前的"絕不涉足Linux系統"到如今的主動獻媚,足以體現Linux的發展迅猛。IBM則決定投入10億美元擴大 Linux系統的運用,此舉猶如一針強心劑,令華爾街的投資者們聞風而動。到了5月這個初夏的時節,微軟公開反對"GPL"引起了一場大規模的論戰。8月 紅色代碼爆發,引得許多站點紛紛從windows操作系統轉向linux操作系統,雖然是一次被動的轉變,不過也算是一次應用普及吧。12月Red Hat 為IBM s/390大型計算機提供了Linux解決方案,從此結束了AIX孤單獨行無人伴的歷史。

2002年是Linux企業化的一年。2月,微軟公司迫于各洲政府的壓力,宣布擴大公開代碼行動,這可是Linux開源帶來的深刻影響的結果。3月,內核開發者宣布新的Linux系統支持64位的計算機。

2003年1月,NEC宣布將在其手機中使用Linux操作系統,代表著Linux成功進軍手機領域。5月之中SCO表示就 Linux使用的涉嫌未授權代碼等問題對IBM進行起訴,此時人們才留意到,原本由SCO壟斷的銀行/金融領域,份額已經被Linux搶占了不少,也難怪 SCO如此氣急敗壞了。9 月中科紅旗發布Red Flag Server4版本,性能改進良多。11月IBM注資Novell以2.1億收購SuSE,同期Redhat計劃停止免費的Linux,頓時業內罵聲四 起。Linux在商業化的路上漸行漸遠。

2004年的第1月,本著"天下事分久必合,合久必分"之天理,SuSE嫁到了Novell,SCO繼續頂著罵名四處強行"化緣 ", Asianux, MandrakeSoft也在五年中首次宣布季度贏利。3月SGI宣布成功實現了Linux操作系統支持256個Itanium 2處理器。4月里美國斯坦福大學Linux大型機系統被黑客攻陷,再次證明了沒有絕對安全的OS。六月的統計報告顯示在世界500強超級計算機系統中,使 用Linux操作系統的已經占到了280席,搶占了原本屬于各種Unix的份額。9月HP開始網羅Linux內核代碼人員,以影響新版本的內核朝對HP有 利的方式發展,而IBM則準備推出OpenPower服務器,僅運行Linux系統。

 

Linux的終端類型:

終端是一種字符型設備,它有多種類型,通常使用tty來簡稱各種類型的終端設備。tty是Teletype的縮寫。Teletype是最早出現的一種終端設備,很象電傳打字機(或者說就是?),是由Teletype公司生產的。在Linux系統的設備特殊文件目錄/dev/下,終端特殊設備文件一般有以下幾種:

1、串行端口終端(/dev/ttySn)

  串行端口終端(Serial Port Terminal)是使用計算機串行端口連接的終端設備。

計算機把每個串行端口都看作是一個字符設備。有段時間這些串行端口設備通常被稱為終端設備,因為那時它的最大用途就是用來連接終端。這些串行端口所對應的設備名稱是/dev/tts/0(或/dev/ttyS0), /dev/tts/1(或/dev/ttyS1)等,設備號分別是(4,0), (4,1)等,分別對應于DOS系統下的COM1、COM2等。若要向一個端口發送數據,可以在命令行上把標準輸出重定向到這些特殊文件名上即可。例如,在命令行提示符下鍵入:echo test > /dev/ttyS1會把單詞”test”發送到連接在ttyS1(COM2)端口的設備上??山哟趤韺嶒?。

2、 偽終端(/dev/pty/)

偽終端(Pseudo Terminal)是成對的邏輯終端設備(即master和slave設備, 對master的操作會反映到slave上),例如/dev/ptyp3和/dev/ttyp3(或者在設備文件系統中分別是/dev/pty/m3和 /dev/pty/s3)。它們與實際物理設備并不直接相關。如果一個程序把ptyp3(master設備)看作是一個串行端口設備,則它對該端口的讀/寫操作會反映在該邏輯終端設備對應的另一個ttyp3(slave設備)上面。而ttyp3則是另一個程序用于讀寫操作的邏輯設備。這樣,兩個程序就可以通過這種邏輯設備進行互相交流,而其中一個使用ttyp3的程序則認為自己正在與一個串行端口進行通信。這很象是邏輯設備對之間的管道操作。對于ttyp3(s3),任何設計成使用一個串行端口設備的程序都可以使用該邏輯設備。但對于使用ptyp3的程序,則需要專門設計來使用ptyp3(m3)邏輯設備。

例如,如果某人在網上使用telnet程序連接到你的計算機上,則telnet程序就可能會開始連接到設備ptyp2(m2)上(一個偽終端端口上)。此時一個getty程序就應該運行在對應的ttyp2(s2)端口上。當telnet從遠端獲取了一個字符時,該字符就會通過m2、s2傳遞給 getty程序,而getty程序就會通過s2、m2和telnet程序往網絡上返回”login:”字符串信息。這樣,登錄程序與telnet程序就通過“偽終端”進行通信。通過使用適當的軟件,就可以把兩個甚至多個偽終端設備連接到同一個物理串行端口上。

 

在使用設備文件系統(device filesystem)之前,為了得到大量的偽終端設備特殊文件,使用了比較復雜的文件名命名方式。因為只存在16個ttyp(ttyp0—ttypf)的設備文件,為了得到更多的邏輯設備對,就使用了象q、r、s等字符來代替p。例如,ttys8和ptys8就是一個偽終端設備對。不過這種命名方式目前仍然在RedHat等Linux系統中使用著。

但Linux系統上的Unix98并不使用上述方法,而使用了”pty master”方式,例如/dev/ptm3。它的對應端則會被自動地創建成/dev/pts/3。這樣就可以在需要時提供一個pty偽終端。目錄 /dev/pts是一個類型為devpts的文件系統,并且可以在被加載文件系統列表中看到。雖然“文件”/dev/pts/3看上去是設備文件系統中的一項,但其實它完全是一種不同的文件系統。
即: TELNET —> TTYP3(S3: slave) —> PTYP3(M3: master) —> GETTY

 

3、 控制終端(/dev/tty)

如果當前進程有控制終端(Controlling Terminal)的話,那么/dev/tty就是當前進程的控制終端的設備特殊文件??梢允褂妹睢眕s -ax”來查看進程與哪個控制終端相連。對于你登錄的shell,/dev/tty就是你使用的終端,設備號是(5,0)。使用命令”tty”可以查看它 具體對應哪個實際終端設備。/dev/tty有些類似于到實際所使用終端設備的一個聯接。

 

4、 控制臺終端(/dev/ttyn, /dev/console)

在Linux系統中,計算機顯示器通常被稱為控制臺終端(Console)。它仿真了類型為Linux的一種終端(TERM=Linux),并且有一些設備特殊文件與之相關聯:tty0、tty1、tty2等。當你在控制臺上登錄時,使用的是tty1。使用Alt+[F1-F6]組合鍵時,我們 就可以切換到tty2、tty3等上面去。tty1-tty6等稱為虛擬終端,而tty0則是當前所使用虛擬終端的一個別名,系統所產生的信息會發送到該終端上。因此不管當前正在使用哪個虛擬終端,系統信 息都會發送到控制臺終端上。 你可以登錄到不同的虛擬終端上去,因而可以讓系統同時有幾個不同的會話期存在。只有系統或超級用戶root可以向/dev/tty0進行寫操作 即下例:
1、# tty(查看當前TTY)
/dev/tty1
2、#echo "test tty0" > /dev/tty0
test tty0

原創文章,作者:muzili777,如若轉載,請注明出處:http://www.www58058.com/51042

(0)
muzili777muzili777
上一篇 2016-10-17
下一篇 2016-10-17

相關推薦

  • 利用varnish構建httpd緩存服務器

    varnish如何存儲緩存對象:     file: 單個文件;不支持持久機制;     malloc: 緩存在內存中;     persistent:基于文件的持久存儲;(此方式不建議使用) vcl:配置緩存系統的緩存機制;【線程中緩存功…

    Linux干貨 2016-06-20
  • LVS四種模式

    馬哥教育網絡班18期 第17周課程練習1 LVS工作模式圖解 LVS-NAT模式 TCP請求報文的目的IP地址被Director調度服務器重寫為RIP后發送給RS,RS的默認網關配置為Director的DIP,Director接受到RS響應報文后修改源IP地址發送給用戶IP RS網關指向DIP,RIP,DIP和RIP必須在同一網段內 Director轉發請求…

    Linux干貨 2016-06-23
  • 第一周課程練習

    一、計算機組成及其功能。      計算機系統由硬件系統和軟件系統兩個部分組成。      硬件系統由運算器、控制器、存儲器、輸入設備、輸出設備組成。           運算器是…

    Linux干貨 2016-08-15
  • lvs

    Lvs 一、lvs集群的類型:4類工作模式 1.1、lvs-nat 特點:通過將請求報文中的目標地址和目標端口修改為挑選出的某RS的RIP和PORT實現轉發。 客戶端訪問lvs集群服務,此時報文的源地址為cip,目標地址為vip,通過lvs進行dnat轉發后端服務器主機,此時,報文的源地址為cip,目標地址為rip;后端主機響應時,報文源地址為rip,目標地…

    Linux干貨 2016-10-30
  • N25期第一周作業

    計算機組成及其功能 計算機由硬件和軟件組成,硬件是基礎,是軟件活動的舞臺,軟件是靈魂,使硬件發揮最大的作用,兩者缺一不可。計算機硬件是由物理元器件構成的有形實體,主要是數字邏輯電路。計算機軟件是由計算機程序構成的無形的東西,需要存儲在有形的硬件(如主存儲器、硬盤等)中,可以實現更高層次的邏輯功能。目前大多數計算機是根據馮.諾依曼體系結構的思想來設計的,即具有…

    Linux干貨 2016-11-30
  • 第二周練習與作業

    第二周作業 1、Linux上的文件管理類命令有哪些,其常用的使用方法及其相關示例演示          文件管理類命令:cp,mv,rm cp: 源文件;目標文件          [root@loc…

    Linux干貨 2017-08-09
欧美性久久久久