1.1 Linux發展史、內核版本和發行版本

一、 計算機硬件與軟件

1)計算機硬件和軟件的組成結構

clip_image002

2)硬件

1946年誕生於賓夕法尼亞州,佔地170平米,重量達到30噸,名字叫做ENIAC(electronic numerical integrator and calculator)主要作用是爲美國國防部防空系統計算飛彈軌跡。也是第一代計算機,在這裏我們可以將計算機劃分四個時代,分別是:

第一代計算機(1946-1957)電子管時代

第二代計算機(1958-1964)晶體管時代

第三代計算機(1965-1970) 集成電路時代

第四代計算機(1971-) 大規模集成電路時代

它們都有一個特點,都遵循馮諾依曼體系

9RGT}@_HWVO_4F6QVCK_DCS

3)軟件

軟件分爲系統軟件、應用軟件。系統軟件由操作系統、實用程序、編譯程序等組成。操作系統實施對各種軟硬件資源的管理控制。實用程序是爲方便用戶所設,如文本編輯等。編譯程序的功能是把用戶用彙編語言或某種高級語言所編寫的程序,翻譯成機器可執行的機器語言程序。常見系操作系統:DOS、windows NT、Unix、和linux應用軟件是用戶按其需要自行編寫的專用程序,它藉助系統軟件和支援軟件來運行,是軟件系統的最外層。

計算機硬件與軟件之間的關係

clip_image012

二、 Linux的歷史發展

1) Linux的起源

1.Multics計劃

  上個世紀六十年代,那個計算機還沒有很普及,只有少數人才能使用,而且當時的計算機系統都是批處理的,就是把一批任務一次性提交給計算機,然後就等待結果。並且中途不能和計算機交互。往往準備作業都需要花費很長時間,並且這個時候別人也不能用,導致了計算機資源的浪費。

  爲了改變這種情況,在1965年前後,貝爾實驗室(Bell)、麻省理工學院(MIT)以及通用電氣(GE)聯合起來準備研發一個分時多任務處理系統,簡單來說就是實現多人同時使用計算機的夢想,並把計算機取名爲Multics(多路信息計算系統),但是由於項目太複雜,加上其他原因導致了項目進展緩慢,1969年貝爾實驗室覺得這個項目可能不會成功,於是就退出不玩了。

2.Unix的誕生

Bell退出Multics計劃之後,Bell實驗室的那批科學家就沒有什麼事做了,其中一個叫做Ken Thompson的人在研發Multics的時候,寫了一個叫做太空大戰(Space Travel)的遊戲,大概就是一個很簡單的打飛機的遊戲,但是這個遊戲運行在Multics上。當Bell退出了Multics後,Thompson就沒有了Multics的使用環境了,爲了能夠繼續遊戲,於是他花了一個月的時間寫了一個小型的操作系統,用於運行Space Travel,當完成之後,Thompson懷着激動的心情把身邊同事叫過來,讓他們來玩他的遊戲,大家玩過之後紛紛表示對他的遊戲不感興趣,但是對他的系統很感興趣。

  因爲MULTICS是“Multiplexed informtion and Computing Service”的縮寫(多路信息計算系統),於是他們命名這個系統爲:“UNiplexed Information and Computing Service”,縮寫爲“UNICS”(沒路信息計算系統,與Multics相反)。後來大家取其諧音,就稱其爲“UNIX”了。

  這個時候已經是1970年了,於是就將1970年定爲Unix元年,因此計算機上的時間就是從這一年開始計算的。

  後來Unix這個小操作系統就在Bell實驗室內部流行開,並經過不斷地改良最終在1974年7月Unix發展到第5個版本,Bell實驗室公開了Unix,結果引起了學術界的廣泛興趣並對其源碼索取。所以,Unix第五個版本就以“僅用於教育目的”的協議,提供給各大學作爲教學之用,成爲當時操作系統課程的範例教材。各大學公司開始通過Unix源碼對Unix進行了各種各樣的改進和拓展。1978年學術界的老大伯克利大學,推出了一份以第六版爲基礎,加上一些改進和新功能而成的Unix。並命名爲BSD(Berkeley Software Distribution伯克利分發版),開創了Unix的另一分支:BSD系列。

  於是乎Unix就有了兩個分支,一個就是BSD系列的分支,一個就是Bell本身發放的分支,當時因爲Bell屬於AT&T,AT&T受到了美國《謝爾曼反托拉斯法》的影響,不能銷售除了電話機電報機等之外的商品,後來AT&T分解,Bell可以賣Unix了,Unix走向了商業化,如果想繼續使用就需要購買授權,一份授權4萬美元。

3.Minix及Linux的誕生

  在Unix昂貴的授權費用下,很多大學不得不停止對其研究,老師導致上課也不知道講什麼了。在1987年荷蘭有個大學教授安德魯寫了一個Minix,類似於Unix,專用於教學。當Minix流傳開來之後,世界各地的***們紛紛開始使用並改進,希望把改進的東西合併到Minix中,但是安德魯覺得他的系統是用於教學的,不能破壞純淨性,於是拒絕了。

  在1991年9y月17日,Linus Torvalds(林納斯.託瓦茲)在互聯網上公佈了自己寫的Linux,可能是表達對安德魯的不滿吧(爲什麼不接受大家的好意呢?你讓大家的滿腔熱情往哪放呢?),於是Linus發佈了一個帖子,大概就是說:我寫了一個操作系統的內核,但是還不夠完善,你們以任何姿勢使用不收費,也可以幫助我一起修改。帖子發出後引起了強烈的反響。在大家的努力下,於1994年Linux的1.0版本正式發佈。

爲什麼會引起這麼強烈的反應呢?這就要從了另一個人說起,那就是Richard Stallman(自由軟件之父)。Stallman是一個非常“激進”的人,因爲Unix商業化的影響,他認爲軟件是全人類的智慧結晶,不應該爲某一家公司服務。在八十年代,他發起了自由軟件運動,吹起了共產主義的號角(發起了GUN運動),併發布了軟件界的共產主義宣言(GPL協議),並且這一運動得到了很多人的認同。

4.GUN計劃

1984 年,史託曼開始 GNU 計劃, 這個計劃的目的是:建立一個自由、開放的 Unix 操作系統(Free Unix)。 但是建立一個操作系統談何容易啊!而且在當時癿 GNU 是僅有自己一個人單打獨鬥的,這實在太麻煩,但又不想放棄這個計劃,那可怎舉辦啊?聰明的史託曼乾脆反其道而行之『既然操作系統太複雜,我就先寫可以在 Unix 上面運行的小程序,這總可以了吧?』在這個想法上, 史託曼開始參考 Unix 上面現有的軟件,並依據這些軟件的作用開發出功能相同的軟件,開發期間史託曼絳不看其他軟件癿原始碼,以避免吃上官司。後來一堆人知道免費的 GNU 軟件,並且實際使用後發現與原有的專利軟件也差不了太多,便轉而使用 GNU 軟件, GNU 計劃逐漸打開知名度。雖然 GNU 計劃漸漸打開知名度,但是能見度還是不夠。這時史託曼又想:不論是什麼軟件, 都得要進行編譯成爲二進制文件(binary program)後才能夠執行,如果能夠寫出一個不錯的編譯程序,那不就是大家都需要的軟件了嗎? 因此他便開始撰寫 C 語言的編譯程序,那就是現在相當有名癿的GNU C Compiler(gcc)!這個點相當的重要!這是因爲 C 語言編譯程序版本衆多,但都是專利軟件, 如果他寫的 C 編譯夠棒,性夠佳,那舉將會大大癿譏 GNU 計劃出現在衆人眼前!但開始撰寫 GCC 時幵丌順利,爲此,他先轉而將他原先就已縐寫過的Emacs 編輯器寫成可以在Unix 上面跑癿軟件,幵公佈原始碼。 Emacs 是一種秳序編輯器,他可以在用戶撰寫秳序癿過秳中就性行程序詢法的檢驗,此一功能可以減少秳序訓計師除錯癿時間!因爲 Emacs 太優秀了,因此,很多人便直接向他購買。此時因特網尚未流行,所以,史託曼便藉着 Emacs 以磁帶(tape)出售,賺了一點錢 ,迚而開始全力撰寫其他軟件。幵丏成立自由軟件基金會(FSF, Free Software Foundation),請更多工程師和志願者來撰寫軟件。終於還是完成了 GCC,這比 Emacs 還更有幫助! 此外,他還撰寫了更多可以被調用的 C 函式庫(GNU C library),以及可以被使用來操作操作系統得基本接口 BASHshell!這些都在 1990 年左史完成了!

2)Linux的誕生

1991年,在赫爾辛基,Linus Torvalds開始那個後面成爲了Linux內核的項目。最初它只是一個Torvalds用來訪問大學裏的大型的Unix服務器的虛擬終端。他專門寫了一個用於他當時正在用的硬件的,與操作系統無關的程序,因爲他要用他那用80386處理器的新PC機的功能。開發是在Minix上,用至今仍爲首選的編譯器——GCC——來完成的。[來源請求]

Torvalds在他的書只爲歡樂中說過,他最後才意識到自己寫了一個操作系統內核。1991年8月25日,他在發佈到新聞組“comp.os.minix.”的Usenet上發佈了這個系統:

“ 使用minix操作系統的各位,大家好!

我正在爲386(486)AT clones寫一個(自由的)操作系統(只是愛好而已,不會和GNU一樣成爲廣泛且專業的操作系統)。這個計劃從4月份開始醞釀,現在已做好準備。我希望得到人們關於minix優缺點的任何反饋意見,因爲我的操作系統和它有類似的方面(因爲可行性方面的原因,兩者的文件系統物理佈局相同)。 我剛剛把bash(1.08)和gcc(1.40)移植到了系統上,而且看來運行得很好。這意味着我可以在幾個月內我就可以把它變得有實用性了。我想知道大家想要些什麼特色。歡迎提任何的建議,但是我不保證我會實現你的建議:-)

Linus ([email protected])

另:是的,它沒有包含任何minix的代碼;它的文件系統還是一個多線程的。它沒有可移植性(它利用了386的任務調度算法等),而且它很可能永遠只會支持AT的硬盤(我只有這種硬盤:-( )

3)名字的由來

Linus Torvalds本要把他的發時叫做Freax——“fread”,“free”和“x”(暗指Unix)的合成詞。在開發系統的前半年裏,他把文件以文件名“Freax”存儲。Torvalds考慮過Linux這個名字,但是因爲覺得它過於自我本位而放棄了使用它。

爲便於開發,在1991年9月,他把那些文件上傳到了赫爾辛基工業大學(HUT)的FTP服務器(ftp.funet.fi)。Torvalds在HUT負責管理那個服務器的同事Ari Lemmke,覺得“Freax”這個名字不是很好,就在不諮詢Torvalds的情況下,把項目的名字改成了“Linux”。但是之後,Torvalds也同意“Linux”這個名字了:“經過多次討論,他承認Linux這個名字更好。在0.01版本Linux的源代碼的makefile裏仍然使用‘Freax'這個名字,在之後‘Linux'這個名字才被使用。所以,Linux這個名字並不是預先想好的,只是它被廣泛接受了而已

4)GNU GPL下的Linux

Torvalds先是在它自己的許可下發布Linux內核的,即限制它用於商業活動。和這個內核一起使用的軟件是發佈在GPL這個自由軟件許可下,屬於GNU計劃一部分的軟件。第一次發佈的Linux內核,版本0.01,包含了GNU的Bash的二進制版本[8]。 在版本0.01的備註中,Torvalds列出了運行Linux所需的GNU軟件:

很不幸,單單一個內核是什麼都做不了的。要讓一個系統能夠工作,還需要一個shell,編譯器,函數庫等等。這些各是獨立的部分,它們有着或鬆或緊的版權限制。與linux一起使用的大多是GNU的軟件,而這些軟件是非盈利版權限制的。在Linux的發佈版本里沒有包含這些工作——你可以向我(或者GNU)索取更多的信息。

1992年,他建議在GPL下發布內核。他先在版本0.12中宣佈了這個決定[9]。1992年12月中,他在GNU GPL下發布了0.99版。[10]。Linux和GNU的開發者一起把GNU的部件和Linux集成起來,使它成爲一個可運行的自由操作系統。[11]Torvalds說,“把Linux發佈在GPL下是我所做過的最好的事。”

5)官方吉祥物

1996年,Torvalds爲Linux選定了企鵝作爲它的吉祥物。Larry Ewing提供了吉祥物的初稿。現在正在使用的著名的吉祥物就是基於這份初稿的。James Hughes根據“Torvalds's Unix”爲它取了名字Tux。

Tux

6)Linux的特點

開放性:指系統遵循標準規範,特別是遵循開放系統互連(OSI)國際標準。

多用戶:是指系統資源可以被不同用戶使用,每個用戶對自己的資源(例如:文件、設備)有特定的權限,互不影響。

多任務:它是指計算機同時執行多個程序,而且各個程序的運行互相獨立。

良好的用戶界面:Linux向用戶提供了兩種界面:用戶界面和系統調用。Linux還爲用戶提供了圖形用戶界面。它利用鼠標、菜單、窗口、滾動條等設施,給用戶呈現一個直觀、易操作、交互性強的友好的圖形化界面。

設備獨立性:是指操作系統把所有外部設備統一當作成文件來看待,只要安裝它們的驅勱程序,任何用戶都可以象使用文件一樣,操縱、使用這些設備,而丌必知道它們的具體存在形式。Linux是具有設備獨立性的操作系統,它的內核具有高度適應能力。

提供了豐富的網絡功能:完善的內置網絡是Linux一大特點。

可靠的安全系統:Linux採取了許多安全技術措施,包括對讀、寫控制、帶保護的子系統、審計跟蹤、核心授權等,這爲網絡多用戶環境中的用戶提供了必要的安全保障。

良好的可移植性:是指將操作系統從一個平臺轉移到另一個平臺使它仍然能以其自身的方式運行的能力。Linux是一種可移植的操作系統,能夠在從微型計算機到大型計算機的任何環境中和任何平臺上運行。

7)Linux的內核版本和發行版本

Linux內核的版本號命名是有一定規則的,版本號的格式通常爲“主版本號.次版本號.修正號”。主版本號和次版本號標誌着重要的功能變動,修正號表示較小的功能變更。以2.6.22版本爲例,2代表主版本號,6代表次版本號,22代表修正號。其中次版本還有特定的意義:如果是偶數數字,就表示該內核是一個可以放心使用的穩定版;如果是奇數數字,則表示該內核加入了某些測試的新功能,是一個內部可能存在着BUG測試版。如2.5.74表示是一個測試版的內核,2.6.22表示是一個穩定版的內核。讀者可以到Linux內核官方網站http://www.kernel.org/下載最新的內核代碼。

僅有內核而沒有應用軟件的操作系統是無法使用的,所以許多公司或社團將內核、源代碼及相關的應用程序組織構成一個完整的操作系統,讓一般的用戶可以簡便地安裝和使用Linux,這就是所謂的發行版本(distribution),一般談論的Linux系統便是針對這些發行版本的。目前估計各種發行版本有數十種,它們的發行版本號各不相同,使用的內核版本號也可能不一樣,下面就爲讀者介紹目前比較著名的幾個發行版本。

1、Debian Linux

Debian(/ˈdɛbiən/[5])是完全由自由軟件組成的類UNIX操作系統,其包含的多數軟件使用GNU通用公共許可協議授權,並由Debian計劃的參與者組成團隊對其進行打包、開發與維護。

Debian項目最初由伊恩·默多克於1993年發起,Debian 0.01版在1993年9月15日發佈[6],而其第一個穩定版本則在1996年發佈。

該計劃的具體工作在互聯網上協調完成,由Debian計劃領導人帶領一個志願者團隊開展工作,並以三份奠基性質的文檔作爲工作指導:Debian社羣契約、Debian憲章和Debian自由軟件指導方針。操作系統版本定期進行更新,候選發佈版本將在經歷過一定時間的凍結之後進行發佈。

作爲最早的Linux發行版之一,Debian在創建之初便被定位爲在GNU計劃的精神指導下進行公開開發並自由發佈的項目。該決定吸引自由軟件基金會的注意與支持,他們爲該項目提供從1994年11月至1995年11月爲期一年的贊助。[8]贊助終止後,Debian計劃創立非營利機構Software in the Public Interest以提供支持並令其持有Debian商標作爲保護機構。Debian也接受世界多個非營利組織的資金支持。官方網站:http://www.debian.org/

2、SuSE Linux

SuSE是德國最著名的Linux發行版,在全世界範圍中也享有較高的聲譽,它的特點是使用了自主開發的軟件包管理系統YaST。2003年11月,Novell收購了SuSE,使SuSE成爲Red Hat的一個強大的競爭對手。同時還爲Novell正在與微軟進行的競爭提供了一個新的方向。

官方網站:http://www.novell.com/linux/suse/

3、Red Hat Linux

Red Hat是最成功的Linux發行版本之一,它的特點是安裝和使用簡單。Red Hat可以讓用戶很快享受到Linux的強大功能而免去繁瑣的安裝與設置工作。Red Hat是全球最流行的Linux,Red Hat已經成爲Linux的代名詞,許多人一提到Linux就會毫不猶豫地想到Red Hat。它曾被權威計算機雜誌InfoWorld評爲最佳Linux。

官方網站:http://www.redhat.com/

4、其他比較流行發行版本

Linux有非常多的發行版本,從性質上劃分,大體分爲由商業公司維護的商業版本與由開源社區維護的免費發行版本。商業版本以Redhat爲代表,開源社區版本則以debian爲代表。這些版本各有不同的特點,在不同的應用領域發揮着不同的作用,不能一概而論。而絕大多數VPS上只提供開源社區維護的發行版本。下面就這些不同的Linux發行版進行簡單的分析。 Ubuntu Ubuntu近些年的粉絲越來越多,Ubuntu有着漂亮的用戶界面,完善的包管理系統,強大的軟件源支持,豐富的技術社區,Ubuntu還對大多數硬件有着良好的兼容性,包括最新的圖形顯卡等等。這一切讓Ubuntu越來越向大衆化方向發展。但別忘了:你所需要的只是一個簡約、穩定、易用的服務器系統而已! Ubuntu的圖形界面固然漂亮,但這也決定了它最佳的應用領域是桌面操作系統而非服務器操作系統。如何你希望在學習Linux的過程中有個沉浸式的環境,那麼Ubuntu的確不錯:僅僅安裝在自己的電腦中而非服務器中。從這一點來講,Ubuntu並沒有在VPS安裝的操作系統選擇之列,相信你也不會爲了那數百M的驅動與寶貴的內存買單。 CentOS 你會發現非常多的商業公司部署在生產環境上的服務器都是使用的CentOS系統,CentOS是從RHEL源代碼編譯的社區重新發布版。CentOS簡約,命令行下的人性化做得比較好,穩定,有着強大的英文文檔與開發社區的支持。與Redhat有着相同的淵源。雖然不單獨提供商業支持,但往往可以從Redhat中找到一絲線索。相對debian來說,CentOS略顯體積大一點。是一個非常成熟的Linux發行版。 Debian 一般來說Debian作爲適合於服務器的操作系統,它比Ubuntu要穩定得多。可以說穩定得無與倫比了。debian整個系統,只要應用層面不出現邏輯缺陷,基本上固若金湯,是個常年不需要重啓的系統(當然,這是誇張了點,但並沒有誇大其穩定性)。debian整個系統基礎核心非常小,不僅穩定,而且佔用硬盤空間小,佔用內存小。128M的VPS即可以流暢運行Debian,而CentOS則會略顯吃力。但是由於Debian的發展路線,使它的幫助文檔相對於CentOS略少,技術資料也少一些。由於其優秀的表現與穩定性,Debian非常受VPS用戶的歡迎。此外還有Arch Linxu、Gentoo、Slackware等一系列的Linux和FreeBSD、Unix等系統,由於其涉及領域更加專業,很少在VPS中出現,因此不作介紹。對於初學者,我們建議採用CentOS或Debian,這兩種系統都能在配置較低的VPS上流暢運行。但是如果VPS配置太低(OPENVZ內存在128M以下,或者XEN架構內存在192M以下),建議採用Debian;否則建議採用CentOS,以獲取更多的在線幫助與支持,讓自己入門更輕鬆。 CentOS、Ubuntu、Debian三個linux都是非常優秀的系統,開源的系統,也分付費的商業版和free免費版本,下面簡單比較這三種系統。 CentOS系統 很多網站站長一般都選擇centOS系統,CentOS是從redhat源代碼編譯重新發布版。CentOS去除很多與服務器功能無關的應用,系統簡單但非常穩定,命令行操作可以方便管理系統和應用,並且有幫助文檔和社區的支持。 Ubuntu系統 Ubuntu有亮麗的用戶界面,完善的包管理系統,強大的軟件源支持,豐富的技術社區,並且Ubuntu對計算機硬件的支持好於centos和debian,兼容性強,Ubuntu應用非常多,但對於服務器系統來說,個人感覺並不需要太多的各種應用程序,需要的是穩定,操作方便,維護簡單的系統。如果你需要在服務器端使用圖形界面,ubuntu是一個不錯的選擇,你需要注意的是,圖形界面佔用的內存非常大,而內存越大的vps價格也越高。 Debian系統 Debian也非常適合做服務器操作系統,與Ubuntu比較,它沒有太多的花哨,穩定壓倒一切,對於服務器系統來說是一條不變的真理,debian這個linux系統,底層非常穩定,內核和內存的佔用都非常小,在小內存的VPS就可以流暢運行Debian,比如128m的內存,但debian的幫助文檔和技術資料比較少。對於小內存,首選debian,對於非常熟悉linux系統的vps高手,首選debian。 在系統的選擇上,屬於新手,首選CentOS,並不是centos比Debian和ubuntu好,而是centos是初學者安裝vps的首選,它既穩定,佔用資源又少,在網絡上能方便搜索到安裝配置的文檔,自身的幫助文檔也非常強大;如果你是linux高手,高手的境界一般都選擇debian,因爲高手能在低配的vps上穩定運行系統;而ubuntu,系統雖然免費,但它適合有錢人玩,它佔用的資源是比前面兩種系統更高,而vps基本就是賣內存,內存越高,價格越貴。


image 


三、 參考文獻

https://zh.wikipedia.org/wiki/Linux%E5%8E%86%E5%8F%B2維基百科

鳥哥的私房菜第三版

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章