linux發(fā)展史:
一狂巢、簡(jiǎn)單的說: 一個(gè)名叫Linus Torvalds 的芬蘭大學(xué)生想要了解Intel的新CPU386珊搀。他認(rèn)為比較好的學(xué)習(xí)方法是自己編寫一個(gè)操作系統(tǒng)的內(nèi)核蠢络。出于這種目的缕贡,加上他對(duì)當(dāng)時(shí)Unix 變種版本(即Minix)對(duì)于80386類機(jī)器的脆弱支持十分不滿,他決定要開發(fā)出一個(gè)全功能的残拐、支持POSIX標(biāo)準(zhǔn)的、類Unix的操作系統(tǒng)內(nèi)核碟嘴,該系統(tǒng)吸收了BSD和System V的優(yōu)點(diǎn)溪食,同時(shí)摒棄了它們的缺點(diǎn)。Linus獨(dú)立把這個(gè)內(nèi)核開發(fā)到0.02 版娜扇,這個(gè)版本已經(jīng)可以運(yùn)行g(shù)cc错沃、bash 和很少的一些應(yīng)用程序。這些就是他開始的全部工作了雀瓢。后來枢析,他又開始在因特網(wǎng)上尋求廣泛的幫助。? 二刃麸、具體的分析: Linux 操作系統(tǒng)的誕生醒叁、發(fā)展和成長(zhǎng)過程依賴于以下五個(gè)重要支柱:? ? ? ? ? ? UNIX 操作系統(tǒng)、? ? MINIX操作系統(tǒng)泊业、? ? ? GNU 計(jì)劃把沼、? ? ? POSIX 標(biāo)準(zhǔn) 、? Internet 網(wǎng)絡(luò)吁伺。? UNIX操作系統(tǒng)? ? ? ? Linux 操作系統(tǒng)是UNIX 操作系統(tǒng)的一個(gè)克隆版本饮睬。UNIX 操作系統(tǒng)是美國(guó)貝爾實(shí)驗(yàn)室的Ken.Thompson和Dennis Ritchie 于1969 年夏在DEC PDP-7 小型計(jì)算機(jī)上開發(fā)的一個(gè)分時(shí)操作系統(tǒng)。Ken Thompson 為了能在閑置不用的PDP-7 計(jì)算機(jī)上運(yùn)行他非常喜歡的星際旅行(Space travel)游戲篮奄,于是在1969 年夏天乘他夫人回家鄉(xiāng)加利福尼亞渡假期間捆愁,在一個(gè)月內(nèi)開發(fā)出了UNIX 操作系統(tǒng)的原型。當(dāng)時(shí)使用的是BCPL 語言(基本組合編程語言)窟却,后經(jīng)Dennis Ritchie 于1972 年用移植性很強(qiáng)的C語言進(jìn)行了改寫昼丑,使得UNIX 系統(tǒng)在大專院校得到了推廣。 MINIX操作系統(tǒng)? ? ? ? MINIX 系統(tǒng)是由Andrew S. Tanenbaum(AST)開發(fā)的间校。AST 是在荷蘭Amsterdam 的Vrije 大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)系統(tǒng)工作矾克,是ACM 和IEEE 的資深會(huì)員(全世界也只有很少人是兩會(huì)的資深會(huì)員)页慷。MINIX 是他1987 年編制的憔足,主要用于學(xué)生學(xué)習(xí)操作系統(tǒng)原理。到1991 年時(shí)版本是1.5酒繁。目前主要有兩個(gè)版本在使用:1.5 版和2.0 版滓彰。當(dāng)然目前MINIX 系統(tǒng)已經(jīng)是免費(fèi)的,可以從許多FTP 上下載州袒。? ? ? ? 對(duì)于Linux 系統(tǒng)揭绑,他后來曾表示對(duì)其開發(fā)者Linus的稱贊。但他認(rèn)為L(zhǎng)inux的發(fā)展很大原因是由于他為了保持MINIX 的小型化,能讓學(xué)生在一個(gè)學(xué)期內(nèi)就能學(xué)完他匪,因而沒有接納全世界許多人對(duì)MINIX的擴(kuò)展要求菇存。因此在這樣的前提下激發(fā)了Linus 編寫Linux 系統(tǒng)。當(dāng)然Linus 也正好抓住了這個(gè)好時(shí)機(jī)邦蜜。? ? ? ? 作為一個(gè)操作系統(tǒng)依鸥,MINIX 并不是優(yōu)秀者,但它同時(shí)提供了用C 語言和匯編語言編寫的系統(tǒng)源代碼悼沈。這是第一次使得有抱負(fù)的程序員或hacker 能夠閱讀操作系統(tǒng)的源代碼贱迟。在當(dāng)時(shí),這種源代碼是軟件商們一直小心守護(hù)著的秘密絮供。 GNU計(jì)劃? ? ? ? 軟件產(chǎn)業(yè)在70年代成就了兩位針鋒相對(duì)的領(lǐng)袖人物衣吠,來自哈佛大學(xué)的比爾·蓋茨和Richard M.Stallman。前者宣布了Copyright(版權(quán))時(shí)代的到來壤靶,并構(gòu)建了微軟帝國(guó)的輝煌缚俏;后者于1984年創(chuàng)立自由軟件體系GNU,擬定普遍公用版權(quán)協(xié)議(GeneralPublicLicense贮乳,簡(jiǎn)稱GPL)袍榆,今天Linux的成功就得益于GPL協(xié)議。? ? ? ? 所有GPL協(xié)議下的自由軟件都遵循著Richard M. Stallman的"Copyleft"(非版權(quán))原則:即自由軟件允許用戶自由拷貝塘揣、修改和銷售包雀,但是對(duì)其源代碼的任何修改都必須向所有用戶公開。? ? ? ? GNU 計(jì)劃和自由軟件基金會(huì)FSF(the Free Software Foundation)是由Richard M. Stallman 于1984 年一手創(chuàng)辦的亲铡。旨在開發(fā)一個(gè)類似UNIX 并且是自由軟件的完整操作系統(tǒng):GNU 系統(tǒng)(GNU 是"GNU's Not Unix"的遞歸縮寫才写,它的發(fā)音為"guh-NEW")。? ? ? ? 各種使用Linux 作為核心的GNU 操作系統(tǒng)正在被廣泛的使用奖蔓。雖然這些系統(tǒng)通常被稱作"Linux"赞草,但是Stallman 認(rèn)為,嚴(yán)格地說吆鹤,它們應(yīng)該被稱為GNU/Linux系統(tǒng)厨疙。? ? ? ? 到上世紀(jì)90 年代初,GNU 項(xiàng)目已經(jīng)開發(fā)出許多高質(zhì)量的免費(fèi)軟件疑务,其中包括有名的emacs 編輯系統(tǒng)沾凄、bash shell 程序、gcc 系列編譯程序知允、gdb 調(diào)試程序等等撒蟀。這些軟件為L(zhǎng)inux 操作系統(tǒng)的開發(fā)創(chuàng)造了一個(gè)合適的環(huán)境。這是Linux 能夠誕生的基礎(chǔ)之一温鸽,以至于目前許多人都將Linux 操作系統(tǒng)稱為“GNU/Linux”操作系統(tǒng)保屯。 POSIX標(biāo)準(zhǔn)? ? ? ? POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 開發(fā)的一簇標(biāo)準(zhǔn)手负。該標(biāo)準(zhǔn)是基于現(xiàn)有的UNIX 實(shí)踐和經(jīng)驗(yàn),描述了操作系統(tǒng)的調(diào)用服務(wù)接口姑尺。用于保證編制的應(yīng)用程序可以在源代碼一級(jí)上在多種操作系統(tǒng)上移植和運(yùn)行竟终。它是在1980 年早期一個(gè)UNIX 用戶組(usr/group)的早期工作基礎(chǔ)上取得的。該UNIX 用戶組原來試圖將AT&T 的System V 操作系統(tǒng)和BerkeleyCSRG 的BSD 操作系統(tǒng)的調(diào)用接口之間的區(qū)別重新調(diào)和集成切蟋。并于1984 年定制出了/usr/group 標(biāo)準(zhǔn)衡楞。? ? ? ? 關(guān)于POSIX標(biāo)準(zhǔn)的制定過程:略。? ? ? ? 在90 年代初敦姻,POSIX 標(biāo)準(zhǔn)的制定正處在最后投票敲定的時(shí)候瘾境,那是1991-1993 年間。此時(shí)正是Linux剛剛起步的時(shí)候镰惦,這個(gè)UNIX 標(biāo)準(zhǔn)為L(zhǎng)inux 提供了極為重要的信息迷守,使得Linux 能夠在標(biāo)準(zhǔn)的指導(dǎo)下進(jìn)行開發(fā),并能夠與絕大多數(shù)UNIX 操作系統(tǒng)兼容旺入。在最初的Linux 內(nèi)核源代碼中(0.01 版兑凿、0.11 版)就已經(jīng)為L(zhǎng)inux 系統(tǒng)與POSIX 標(biāo)準(zhǔn)的兼容做好了準(zhǔn)備工作。在Linux 0.01 版內(nèi)核的/include/unistd.h 文件中就已經(jīng)定義了幾個(gè)有關(guān)POSXI 標(biāo)準(zhǔn)要求的符號(hào)常數(shù)茵瘾,而且Linus 在注釋中已寫道:“OK礼华,這也許是個(gè)玩笑,但我正在著手研究它呢”拗秘。
一圣絮、簡(jiǎn)單的說: 一個(gè)名叫Linus Torvalds 的芬蘭大學(xué)生想要了解Intel的新CPU386。他認(rèn)為比較好的學(xué)習(xí)方法是自己編寫一個(gè)操作系統(tǒng)的內(nèi)核雕旨。出于這種目的扮匠,加上他對(duì)當(dāng)時(shí)Unix 變種版本(即Minix)對(duì)于80386類機(jī)器的脆弱支持十分不滿,他決定要開發(fā)出一個(gè)全功能的凡涩、支持POSIX標(biāo)準(zhǔn)的棒搜、類Unix的操作系統(tǒng)內(nèi)核,該系統(tǒng)吸收了BSD和System V的優(yōu)點(diǎn)活箕,同時(shí)摒棄了它們的缺點(diǎn)力麸。Linus獨(dú)立把這個(gè)內(nèi)核開發(fā)到0.02 版,這個(gè)版本已經(jīng)可以運(yùn)行g(shù)cc育韩、bash 和很少的一些應(yīng)用程序克蚂。這些就是他開始的全部工作了。后來座慰,他又開始在因特網(wǎng)上尋求廣泛的幫助陨舱。? 二、具體的分析: Linux 操作系統(tǒng)的誕生版仔、發(fā)展和成長(zhǎng)過程依賴于以下五個(gè)重要支柱:? ? ? ? ? ? UNIX 操作系統(tǒng)、? ? MINIX操作系統(tǒng)、? ? ? GNU 計(jì)劃蛮粮、? ? ? POSIX 標(biāo)準(zhǔn) 益缎、? Internet 網(wǎng)絡(luò)。? UNIX操作系統(tǒng)? ? ? ? Linux 操作系統(tǒng)是UNIX 操作系統(tǒng)的一個(gè)克隆版本然想。UNIX 操作系統(tǒng)是美國(guó)貝爾實(shí)驗(yàn)室的Ken.Thompson和Dennis Ritchie 于1969 年夏在DEC PDP-7 小型計(jì)算機(jī)上開發(fā)的一個(gè)分時(shí)操作系統(tǒng)莺奔。Ken Thompson 為了能在閑置不用的PDP-7 計(jì)算機(jī)上運(yùn)行他非常喜歡的星際旅行(Space travel)游戲,于是在1969 年夏天乘他夫人回家鄉(xiāng)加利福尼亞渡假期間变泄,在一個(gè)月內(nèi)開發(fā)出了UNIX 操作系統(tǒng)的原型令哟。當(dāng)時(shí)使用的是BCPL 語言(基本組合編程語言),后經(jīng)Dennis Ritchie 于1972 年用移植性很強(qiáng)的C語言進(jìn)行了改寫妨蛹,使得UNIX 系統(tǒng)在大專院校得到了推廣屏富。 MINIX操作系統(tǒng)? ? ? ? MINIX 系統(tǒng)是由Andrew S. Tanenbaum(AST)開發(fā)的。AST 是在荷蘭Amsterdam 的Vrije 大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)系統(tǒng)工作蛙卤,是ACM 和IEEE 的資深會(huì)員(全世界也只有很少人是兩會(huì)的資深會(huì)員)狠半。MINIX 是他1987 年編制的,主要用于學(xué)生學(xué)習(xí)操作系統(tǒng)原理颤难。到1991 年時(shí)版本是1.5神年。目前主要有兩個(gè)版本在使用:1.5 版和2.0 版。當(dāng)然目前MINIX 系統(tǒng)已經(jīng)是免費(fèi)的行嗤,可以從許多FTP 上下載已日。? ? ? ? 對(duì)于Linux 系統(tǒng),他后來曾表示對(duì)其開發(fā)者Linus的稱贊栅屏。但他認(rèn)為L(zhǎng)inux的發(fā)展很大原因是由于他為了保持MINIX 的小型化捂敌,能讓學(xué)生在一個(gè)學(xué)期內(nèi)就能學(xué)完,因而沒有接納全世界許多人對(duì)MINIX的擴(kuò)展要求既琴。因此在這樣的前提下激發(fā)了Linus 編寫Linux 系統(tǒng)占婉。當(dāng)然Linus 也正好抓住了這個(gè)好時(shí)機(jī)。? ? ? ? 作為一個(gè)操作系統(tǒng)甫恩,MINIX 并不是優(yōu)秀者逆济,但它同時(shí)提供了用C 語言和匯編語言編寫的系統(tǒng)源代碼。這是第一次使得有抱負(fù)的程序員或hacker 能夠閱讀操作系統(tǒng)的源代碼磺箕。在當(dāng)時(shí)奖慌,這種源代碼是軟件商們一直小心守護(hù)著的秘密。 GNU計(jì)劃? ? ? ? 軟件產(chǎn)業(yè)在70年代成就了兩位針鋒相對(duì)的領(lǐng)袖人物松靡,來自哈佛大學(xué)的比爾·蓋茨和Richard M.Stallman简僧。前者宣布了Copyright(版權(quán))時(shí)代的到來,并構(gòu)建了微軟帝國(guó)的輝煌雕欺;后者于1984年創(chuàng)立自由軟件體系GNU岛马,擬定普遍公用版權(quán)協(xié)議(GeneralPublicLicense棉姐,簡(jiǎn)稱GPL),今天Linux的成功就得益于GPL協(xié)議啦逆。? ? ? ? 所有GPL協(xié)議下的自由軟件都遵循著Richard M. Stallman的"Copyleft"(非版權(quán))原則:即自由軟件允許用戶自由拷貝伞矩、修改和銷售,但是對(duì)其源代碼的任何修改都必須向所有用戶公開夏志。? ? ? ? GNU 計(jì)劃和自由軟件基金會(huì)FSF(the Free Software Foundation)是由Richard M. Stallman 于1984 年一手創(chuàng)辦的乃坤。旨在開發(fā)一個(gè)類似UNIX 并且是自由軟件的完整操作系統(tǒng):GNU 系統(tǒng)(GNU 是"GNU's Not Unix"的遞歸縮寫,它的發(fā)音為"guh-NEW")沟蔑。? ? ? ? 各種使用Linux 作為核心的GNU 操作系統(tǒng)正在被廣泛的使用湿诊。雖然這些系統(tǒng)通常被稱作"Linux",但是Stallman 認(rèn)為瘦材,嚴(yán)格地說厅须,它們應(yīng)該被稱為GNU/Linux系統(tǒng)。? ? ? ? 到上世紀(jì)90 年代初宇色,GNU 項(xiàng)目已經(jīng)開發(fā)出許多高質(zhì)量的免費(fèi)軟件九杂,其中包括有名的emacs 編輯系統(tǒng)、bash shell 程序宣蠕、gcc 系列編譯程序例隆、gdb 調(diào)試程序等等。這些軟件為L(zhǎng)inux 操作系統(tǒng)的開發(fā)創(chuàng)造了一個(gè)合適的環(huán)境抢蚀。這是Linux 能夠誕生的基礎(chǔ)之一镀层,以至于目前許多人都將Linux 操作系統(tǒng)稱為“GNU/Linux”操作系統(tǒng)。 POSIX標(biāo)準(zhǔn)? ? ? ? POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 開發(fā)的一簇標(biāo)準(zhǔn)皿曲。該標(biāo)準(zhǔn)是基于現(xiàn)有的UNIX 實(shí)踐和經(jīng)驗(yàn)唱逢,描述了操作系統(tǒng)的調(diào)用服務(wù)接口。用于保證編制的應(yīng)用程序可以在源代碼一級(jí)上在多種操作系統(tǒng)上移植和運(yùn)行屋休。它是在1980 年早期一個(gè)UNIX 用戶組(usr/group)的早期工作基礎(chǔ)上取得的坞古。該UNIX 用戶組原來試圖將AT&T 的System V 操作系統(tǒng)和BerkeleyCSRG 的BSD 操作系統(tǒng)的調(diào)用接口之間的區(qū)別重新調(diào)和集成。并于1984 年定制出了/usr/group 標(biāo)準(zhǔn)劫樟。? ? ? ? 關(guān)于POSIX標(biāo)準(zhǔn)的制定過程:略痪枫。? ? ? ? 在90 年代初,POSIX 標(biāo)準(zhǔn)的制定正處在最后投票敲定的時(shí)候叠艳,那是1991-1993 年間奶陈。此時(shí)正是Linux剛剛起步的時(shí)候,這個(gè)UNIX 標(biāo)準(zhǔn)為L(zhǎng)inux 提供了極為重要的信息附较,使得Linux 能夠在標(biāo)準(zhǔn)的指導(dǎo)下進(jìn)行開發(fā)吃粒,并能夠與絕大多數(shù)UNIX 操作系統(tǒng)兼容。在最初的Linux 內(nèi)核源代碼中(0.01 版拒课、0.11 版)就已經(jīng)為L(zhǎng)inux 系統(tǒng)與POSIX 標(biāo)準(zhǔn)的兼容做好了準(zhǔn)備工作徐勃。在Linux 0.01 版內(nèi)核的/include/unistd.h 文件中就已經(jīng)定義了幾個(gè)有關(guān)POSXI 標(biāo)準(zhǔn)要求的符號(hào)常數(shù)事示,而且Linus 在注釋中已寫道:“OK,這也許是個(gè)玩笑疏旨,但我正在著手研究它呢”很魂。
Internet 網(wǎng)絡(luò)? ? ? ? Internet是linux開發(fā)扎酷、交流檐涝、發(fā)展的信息和資源的交流平臺(tái)。 三法挨、Linux的誕生? ? ? ? ? 在1981 年谁榜,IBM 公司推出了享譽(yù)全球的微型計(jì)算機(jī)IBM PC。在1981-1991 年間凡纳,MS-DOS 操作系統(tǒng) 一直是微型計(jì)算機(jī)操作系統(tǒng)的主宰窃植。此時(shí)計(jì)算機(jī)硬件價(jià)格雖然逐年下降,但軟件價(jià)格仍然居高不下 【a】荐糜。? ? ? ? 當(dāng)時(shí)Apple 的MACs 操作系統(tǒng)可以說是性能最好的巷怜,但是其天價(jià)使得沒人能夠輕易靠近 【b】。? ? ? ? 當(dāng)時(shí)的另一個(gè)計(jì)算機(jī)技術(shù)陣營(yíng)就是UNIX 世界暴氏。但是UNIX 操作系統(tǒng)就不僅是價(jià)格昂貴的問題 了延塑。為了尋求高利潤(rùn)率,UNIX 經(jīng)銷商們把價(jià)格抬得極高答渔,PC 小用戶根本不能靠近它关带。曾經(jīng)一度收到Bell Labs許可而能在大學(xué)中用于教學(xué)的UNIX 源代碼也一直被小心地守衛(wèi)著不許公開 【c】。? ? ? ? 對(duì)于廣大的PC 用戶沼撕,軟件行業(yè)的大型供應(yīng)商們始終沒有給出有效的解決這個(gè)問題的手段宋雏。? ? ? ? 正在此時(shí),出現(xiàn)了MINIX 操作系統(tǒng) 【d】务豺,并且有一本描述其設(shè)計(jì)實(shí)現(xiàn)原理的書 同時(shí)發(fā)行磨总。由于AST的這本書寫的非常詳細(xì),并且敘述得有條有理笼沥,于是幾乎全世界的計(jì)算機(jī)愛好者都開始看這本書蚪燕,以期能理解操作系統(tǒng)的工作原理。? ? ? ? 其中也包括Linux 系統(tǒng)的創(chuàng)始者Linus Benedict Torvalds敬拓。當(dāng)時(shí)(1991 年)邻薯,Linus Benedict Torvalds 是赫爾辛基大學(xué)計(jì)算機(jī)科學(xué)系的二年級(jí)學(xué)生,也是一個(gè)自學(xué)的計(jì)算機(jī)hacker乘凸。這個(gè)21歲的芬蘭年輕人喜歡鼓搗他的計(jì)算機(jī)厕诡,測(cè)試計(jì)算機(jī)的性能和限制。但當(dāng)時(shí)他所缺乏的就是一個(gè)專業(yè)級(jí)的操作系統(tǒng)营勤。? ? ? ? 在同一年間灵嫌,GNU 計(jì)劃已經(jīng)開發(fā)出了許多工具軟件壹罚。其中最受期盼的GNU C 編譯器已經(jīng)出現(xiàn),但還沒有開發(fā)出免費(fèi)的GNU 操作系統(tǒng)寿羞。 即使是教學(xué)使用的MINIX 操作系統(tǒng)也開始有了版權(quán)猖凛,需要購買才能得到源代碼。雖然GNU 的操作系統(tǒng)HURD一直在開發(fā)之中【e】绪穆,但在當(dāng)時(shí)看來不能在幾年內(nèi)完成辨泳。 (已經(jīng)有了【a-e】,但是還沒有一個(gè)os)? ? ? ? 為了能更好地學(xué)習(xí)計(jì)算機(jī)知識(shí)(或許也只是為了興趣)玖院,Linus 使用圣誕節(jié)的壓歲錢和貸款購買了一臺(tái)386 兼容電腦 菠红,并從美國(guó)郵購了一套MINIX 系統(tǒng)軟件 。就在等待MINIX 軟件期間难菌,Linus 認(rèn)真學(xué)習(xí)了有關(guān)Intel 80386 的硬件知識(shí)试溯。為了能通過Modem 撥號(hào)連接到學(xué)校的主機(jī)上,他使用匯編語言并利用80386 CPU的多任務(wù)特性編制出一個(gè)終端仿真程序郊酒。此后為了將自己一臺(tái)老式電腦上的軟件復(fù)制到新電腦上遇绞,他還為軟盤驅(qū)動(dòng)器、鍵盤等硬件設(shè)備編制出相應(yīng)的驅(qū)動(dòng)程序燎窘。(他編寫了一些os相關(guān)的程序)? ? ? ? 通過編程實(shí)踐摹闽,并在學(xué)習(xí)過程中認(rèn)識(shí)到MINIX 系統(tǒng)的諸多限制(MINIX 雖然很好,但只是一個(gè)用于教學(xué)目的簡(jiǎn)單操作系統(tǒng)荠耽,而不是一個(gè)強(qiáng)有力的實(shí)用操作系統(tǒng))钩骇,而且通過上述實(shí)踐Linus 已經(jīng)有了一些類似于操作系統(tǒng)硬件設(shè)備驅(qū)動(dòng)程序的代碼,于是他開始有了編制一個(gè)新操作系統(tǒng)的想法铝量。(一個(gè)影響深遠(yuǎn)的想法誕生了)? ? ? ? 從1991年4月份起(let take this time as thestart)倘屹,他通過修改終端仿真程序和硬件驅(qū)動(dòng)程序,開始編制起自己的操作系統(tǒng)來慢叨。開始纽匙,他的目的很簡(jiǎn)單,只是為了學(xué)習(xí)Intel 386 體系結(jié)構(gòu)保護(hù)模式運(yùn)行方式下的編程技術(shù)拍谐。但后來Linux發(fā)展卻完全改變了初衷烛缔。(起始的時(shí)間)? ? ? ? 根據(jù)Linus 在comp.os.minix 新聞組上發(fā)布的消息,我們可以知道他逐步從學(xué)MINIX 系統(tǒng)階段發(fā)展到開發(fā)自己的Linux 系統(tǒng)的過程轩拨。(具體了解的來源)? ? ? ? Linus第1次向comp.os.minix 投遞消息是在1991年3月29日践瓷。所發(fā)帖子的題目是“gcc on minix-386doesn't optimize”,是有關(guān)gcc 編譯器在MINIX-386 系統(tǒng)上運(yùn)行優(yōu)化的問題(由此可知,Linus在1991 年初期就已經(jīng)開始深入究了MINIX 系統(tǒng)亡蓉,并在這段時(shí)間有了改進(jìn)MINIX 操作系統(tǒng)的思想晕翠。在進(jìn)一步學(xué)習(xí)MINIX 系統(tǒng)之后,這個(gè)想法逐步演變成想重新設(shè)計(jì)一個(gè)基于Intel 80386 體系結(jié)構(gòu)的新操作系統(tǒng)的構(gòu)思。(思想的轉(zhuǎn)變)? ? ? ? 他在回答有人提出MINIX 上的一個(gè)問題時(shí)淋肾,所說的第一句話就是“閱讀源代碼”(“RTFSC (Read the F**ing Source Code :-)”)硫麻。他認(rèn)為答案就在源程序中。這也說明了對(duì)于學(xué)習(xí)系統(tǒng)軟件來說樊卓,我們不光需要懂得系統(tǒng)的工作基本原理拿愧,還需要結(jié)合實(shí)際系統(tǒng),學(xué)習(xí)實(shí)際系統(tǒng)的實(shí)現(xiàn)方法碌尔。因?yàn)槔碚摦吘故抢碚摻焦迹渲惺÷粤嗽S多枝節(jié),而這些枝節(jié)問題雖然沒有太多的理論含量七扰,但卻是一個(gè)系統(tǒng)必要的組成部分奢赂,就象麻雀身上的一根羽毛陪白。(實(shí)踐的重要意義) (以下是按照時(shí)間順序進(jìn)行介紹)? ? ? ? 從1991 年4 月 份開始颈走,Linus 幾乎花費(fèi)了全部時(shí)間研究MINIX-386 系統(tǒng)(Hacking the kernel),并且嘗試著移植GNU 的軟件到該系統(tǒng)上(GNU gcc咱士、bash立由、gdb 等)。并于4 月13 日在comp.os.minix 上發(fā)布說自己已經(jīng)成功地將bash 移植到了MINIX 上序厉,而且已經(jīng)愛不釋手锐膜、不能離開這個(gè)shell 軟件了。? ? ? ? 第一個(gè)與Linux 有關(guān)的消息是在1991 年7 月3日 在comp.os.minix 上發(fā)布的(當(dāng)然弛房,那時(shí)還不存在Linux 這個(gè)名稱道盏,當(dāng)時(shí)Linus 腦子里想的名稱可能是FREAX,F(xiàn)REAX 的英文含義是怪誕的文捶、怪物荷逞、異想天開等)。其中透露了他正在進(jìn)行Linux 系統(tǒng)的開發(fā)粹排,并且已經(jīng)想到要實(shí)現(xiàn)與POSIX 兼容的問題了种远。? ? ? ? 在Linus 另一個(gè)發(fā)布的消息中(1991 年8 月25日 comp.os.minix),他向所有MINIX 用戶詢問“Whatwould you like to see in minix?”(“你最想在MINIX系統(tǒng)中見到什么顽耳?”)坠敷,在該消息中他首次透露出正在開發(fā)一個(gè)(免費(fèi)的)386(486)操作系統(tǒng),并且說只是興趣而已射富,代碼不會(huì)很大膝迎,也不會(huì)象GNU 的那樣專業(yè)。希望大家反饋一些對(duì)于MINIX 系統(tǒng)中喜歡哪些特色不喜歡什么等信息胰耗,并且說明由于實(shí)際和其它一些原因限次,新開發(fā)的系統(tǒng)剛開始MINIX 很象(并且使用了MINIX的文件系統(tǒng))。并且已經(jīng)成功地將bash(1.08版)和gcc(1.40 版)移植到了新系統(tǒng)上宪郊,而且在過幾個(gè)月就可以實(shí)用了掂恕。最后拖陆,Linus 申明他開發(fā)的操作系統(tǒng)沒有使用一行MINIX 的源代碼;而且由于使用了386 的任務(wù)切換特性懊亡,所以該操作系統(tǒng)不好移植(沒有可移植性)依啰,并且只能使用AT 硬盤。對(duì)于Linux 的移植性問題店枣,Linus當(dāng)時(shí)并沒有考慮速警。但是目前Linux 幾乎可以運(yùn)行在任何一種硬件體系結(jié)構(gòu)上。? ? ? ? 到了1991 年的10 月5 日 鸯两,Linus 在comp.os.minix 新聞組上發(fā)布消息闷旧,正式向外宣布Linux 內(nèi)核系統(tǒng)的誕生(Free minix-like kernel sources for 386-AT)。這段消息可以稱為L(zhǎng)inux 的誕生宣言钧唐,并且一直廣為流傳忙灼。因此10 月5 日對(duì)Linux社區(qū)來說是一個(gè)特殊的日子,許多后來Linux 的新版本發(fā)布時(shí)都選擇了這個(gè)日子钝侠。所以RedHat 公司選擇這個(gè)日子發(fā)布它的新系統(tǒng)也不是偶然的该园。(產(chǎn)生的時(shí)間)
哈哈
一、簡(jiǎn)單的說: 一個(gè)名叫Linus Torvalds 的芬蘭大學(xué)生想要了解Intel的新CPU386帅韧。他認(rèn)為比較好的學(xué)習(xí)方法是自己編寫一個(gè)操作系統(tǒng)的內(nèi)核里初。出于這種目的,加上他對(duì)當(dāng)時(shí)Unix 變種版本(即Minix)對(duì)于80386類機(jī)器的脆弱支持十分不滿忽舟,他決定要開發(fā)出一個(gè)全功能的双妨、支持POSIX標(biāo)準(zhǔn)的、類Unix的操作系統(tǒng)內(nèi)核叮阅,該系統(tǒng)吸收了BSD和System V的優(yōu)點(diǎn)刁品,同時(shí)摒棄了它們的缺點(diǎn)。Linus獨(dú)立把這個(gè)內(nèi)核開發(fā)到0.02 版帘饶,這個(gè)版本已經(jīng)可以運(yùn)行g(shù)cc哑诊、bash 和很少的一些應(yīng)用程序。這些就是他開始的全部工作了及刻。后來镀裤,他又開始在因特網(wǎng)上尋求廣泛的幫助。? 二缴饭、具體的分析: Linux 操作系統(tǒng)的誕生暑劝、發(fā)展和成長(zhǎng)過程依賴于以下五個(gè)重要支柱:? ? ? ? ? ? UNIX 操作系統(tǒng)、? ? MINIX操作系統(tǒng)颗搂、? ? ? GNU 計(jì)劃担猛、? ? ? POSIX 標(biāo)準(zhǔn) 、? Internet 網(wǎng)絡(luò)。? UNIX操作系統(tǒng)? ? ? ? Linux 操作系統(tǒng)是UNIX 操作系統(tǒng)的一個(gè)克隆版本傅联。UNIX 操作系統(tǒng)是美國(guó)貝爾實(shí)驗(yàn)室的Ken.Thompson和Dennis Ritchie 于1969 年夏在DEC PDP-7 小型計(jì)算機(jī)上開發(fā)的一個(gè)分時(shí)操作系統(tǒng)先改。Ken Thompson 為了能在閑置不用的PDP-7 計(jì)算機(jī)上運(yùn)行他非常喜歡的星際旅行(Space travel)游戲,于是在1969 年夏天乘他夫人回家鄉(xiāng)加利福尼亞渡假期間蒸走,在一個(gè)月內(nèi)開發(fā)出了UNIX 操作系統(tǒng)的原型仇奶。當(dāng)時(shí)使用的是BCPL 語言(基本組合編程語言),后經(jīng)Dennis Ritchie 于1972 年用移植性很強(qiáng)的C語言進(jìn)行了改寫比驻,使得UNIX 系統(tǒng)在大專院校得到了推廣该溯。 MINIX操作系統(tǒng)? ? ? ? MINIX 系統(tǒng)是由Andrew S. Tanenbaum(AST)開發(fā)的。AST 是在荷蘭Amsterdam 的Vrije 大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)系統(tǒng)工作别惦,是ACM 和IEEE 的資深會(huì)員(全世界也只有很少人是兩會(huì)的資深會(huì)員)狈茉。MINIX 是他1987 年編制的,主要用于學(xué)生學(xué)習(xí)操作系統(tǒng)原理掸掸。到1991 年時(shí)版本是1.5氯庆。目前主要有兩個(gè)版本在使用:1.5 版和2.0 版。當(dāng)然目前MINIX 系統(tǒng)已經(jīng)是免費(fèi)的猾漫,可以從許多FTP 上下載点晴。? ? ? ? 對(duì)于Linux 系統(tǒng),他后來曾表示對(duì)其開發(fā)者Linus的稱贊悯周。但他認(rèn)為L(zhǎng)inux的發(fā)展很大原因是由于他為了保持MINIX 的小型化,能讓學(xué)生在一個(gè)學(xué)期內(nèi)就能學(xué)完陪竿,因而沒有接納全世界許多人對(duì)MINIX的擴(kuò)展要求禽翼。因此在這樣的前提下激發(fā)了Linus 編寫Linux 系統(tǒng)。當(dāng)然Linus 也正好抓住了這個(gè)好時(shí)機(jī)族跛。? ? ? ? 作為一個(gè)操作系統(tǒng)闰挡,MINIX 并不是優(yōu)秀者,但它同時(shí)提供了用C 語言和匯編語言編寫的系統(tǒng)源代碼礁哄。這是第一次使得有抱負(fù)的程序員或hacker 能夠閱讀操作系統(tǒng)的源代碼长酗。在當(dāng)時(shí),這種源代碼是軟件商們一直小心守護(hù)著的秘密桐绒。 GNU計(jì)劃? ? ? ? 軟件產(chǎn)業(yè)在70年代成就了兩位針鋒相對(duì)的領(lǐng)袖人物夺脾,來自哈佛大學(xué)的比爾·蓋茨和Richard M.Stallman。前者宣布了Copyright(版權(quán))時(shí)代的到來茉继,并構(gòu)建了微軟帝國(guó)的輝煌咧叭;后者于1984年創(chuàng)立自由軟件體系GNU,擬定普遍公用版權(quán)協(xié)議(GeneralPublicLicense烁竭,簡(jiǎn)稱GPL)菲茬,今天Linux的成功就得益于GPL協(xié)議。? ? ? ? 所有GPL協(xié)議下的自由軟件都遵循著Richard M. Stallman的"Copyleft"(非版權(quán))原則:即自由軟件允許用戶自由拷貝、修改和銷售婉弹,但是對(duì)其源代碼的任何修改都必須向所有用戶公開睬魂。? ? ? ? GNU 計(jì)劃和自由軟件基金會(huì)FSF(the Free Software Foundation)是由Richard M. Stallman 于1984 年一手創(chuàng)辦的。旨在開發(fā)一個(gè)類似UNIX 并且是自由軟件的完整操作系統(tǒng):GNU 系統(tǒng)(GNU 是"GNU's Not Unix"的遞歸縮寫镀赌,它的發(fā)音為"guh-NEW")汉买。? ? ? ? 各種使用Linux 作為核心的GNU 操作系統(tǒng)正在被廣泛的使用。雖然這些系統(tǒng)通常被稱作"Linux"佩脊,但是Stallman 認(rèn)為蛙粘,嚴(yán)格地說,它們應(yīng)該被稱為GNU/Linux系統(tǒng)威彰。? ? ? ? 到上世紀(jì)90 年代初出牧,GNU 項(xiàng)目已經(jīng)開發(fā)出許多高質(zhì)量的免費(fèi)軟件,其中包括有名的emacs 編輯系統(tǒng)歇盼、bash shell 程序舔痕、gcc 系列編譯程序、gdb 調(diào)試程序等等豹缀。這些軟件為L(zhǎng)inux 操作系統(tǒng)的開發(fā)創(chuàng)造了一個(gè)合適的環(huán)境伯复。這是Linux 能夠誕生的基礎(chǔ)之一,以至于目前許多人都將Linux 操作系統(tǒng)稱為“GNU/Linux”操作系統(tǒng)邢笙。 POSIX標(biāo)準(zhǔn)? ? ? ? POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 開發(fā)的一簇標(biāo)準(zhǔn)啸如。該標(biāo)準(zhǔn)是基于現(xiàn)有的UNIX 實(shí)踐和經(jīng)驗(yàn),描述了操作系統(tǒng)的調(diào)用服務(wù)接口氮惯。用于保證編制的應(yīng)用程序可以在源代碼一級(jí)上在多種操作系統(tǒng)上移植和運(yùn)行叮雳。它是在1980 年早期一個(gè)UNIX 用戶組(usr/group)的早期工作基礎(chǔ)上取得的。該UNIX 用戶組原來試圖將AT&T 的System V 操作系統(tǒng)和BerkeleyCSRG 的BSD 操作系統(tǒng)的調(diào)用接口之間的區(qū)別重新調(diào)和集成妇汗。并于1984 年定制出了/usr/group 標(biāo)準(zhǔn)帘不。? ? ? ? 關(guān)于POSIX標(biāo)準(zhǔn)的制定過程:略。? ? ? ? 在90 年代初杨箭,POSIX 標(biāo)準(zhǔn)的制定正處在最后投票敲定的時(shí)候寞焙,那是1991-1993 年間。此時(shí)正是Linux剛剛起步的時(shí)候互婿,這個(gè)UNIX 標(biāo)準(zhǔn)為L(zhǎng)inux 提供了極為重要的信息捣郊,使得Linux 能夠在標(biāo)準(zhǔn)的指導(dǎo)下進(jìn)行開發(fā),并能夠與絕大多數(shù)UNIX 操作系統(tǒng)兼容擒悬。在最初的Linux 內(nèi)核源代碼中(0.01 版模她、0.11 版)就已經(jīng)為L(zhǎng)inux 系統(tǒng)與POSIX 標(biāo)準(zhǔn)的兼容做好了準(zhǔn)備工作。在Linux 0.01 版內(nèi)核的/include/unistd.h 文件中就已經(jīng)定義了幾個(gè)有關(guān)POSXI 標(biāo)準(zhǔn)要求的符號(hào)常數(shù)懂牧,而且Linus 在注釋中已寫道:“OK侈净,這也許是個(gè)玩笑尊勿,但我正在著手研究它呢”。