陳昱維/千秋
資工肥宅才在用
很冷門
清潔劑
系辦阿姨
沒錯,就是她們
延伸閱讀:
《人月神話:軟體專案管理之道》
(The Mythical Man-Month: Essays on Software Engineering)
肯尼斯‧藍‧湯普遜 Kenneth Lane Thompson
不要告狀 拜託
這是我玩遊戲玩到找到工作的故事
在完成Unix系統開發的基本工作之後,湯普遜覺得Unix系統需要一個系統級的程式語言,於是創造了B語言。
第一版UNIX是用PDP-7組合語言編寫的,一些應用是由叫做B語言的直譯式和組合語言混合編寫的。
因為PDP-7的效能不佳,肯‧湯普遜與丹尼斯‧裡奇決定把第一版UNIX移植到PDP-11/20的機器上,開發第二版UNIX。
1969年
在把遊戲移植好之後,湯普遜又著手把自己的工具擴充成完備的作業系統。
肯‧湯普遜發現要編寫驅動程式來驅動檔案系統,進行測試,並不容易,於是開發了一個殼層(shell)與一些驅動程式,實現了檔案系統、行程、裝置檔案、命令列直譯器和一些小的工具程式等。做出一個作業系統的雛形。
在團隊合作下,Multics的許多功能都被採納,重新實作,最終做出了一個分時多工作業系統,1970年,在布萊恩‧柯林漢的建議下,這個系統命名為「Unix」。
在進行系統編程時不夠強大,所以湯普遜和裡奇對其進行了改造,並於1971年共同發明了C語言。
1973年湯普遜和裡奇用C語言重寫了Unix,形成第三版UNIX。
1974年,湯普遜和裡奇合作在ACM通訊上發表了一篇關於UNIX的文章,這是UNIX第一次出現在貝爾實驗室以外。此後UNIX被政府機關,研究機構,企業和大學注意到,並逐漸流行開來。
1975年,UNIX發佈了4、5、6三個版本。
1978年,已經有大約600台電腦在執行UNIX。
1979年,版本7發佈,這是最後一個廣泛發佈的研究型UNIX版本。
20世紀80年代相繼發佈的8、9、10版本只授權給了少數大學。
因為AT&T的政策改變,在Version 7 Unix推出之後,發佈新的使用授權條款,將UNIX原始碼私有化,在大學中不再能使用UNIX原始碼。
1982年,AT&T基於版本7開發了UNIX System Ⅲ的第一個版本,這是一個商業版本僅供出售。
這個新的UNIX商業發佈版本不再包含原始碼,所以加州大學柏克萊分校繼續開發BSD UNIX,作為UNIX System III和V的替代選擇。
1991那年,陽光明媚的芬蘭赫爾辛基大學的校園裡,一個少年正好擁有了一台完全屬於自己的386電腦,不必再忍受學校機房漫長的等待。
但是他有了新的敵人:MS-DOS
(Richard Matthew Stallman,1953-)
美國程式設計師,自由軟體活動家。
發起自由軟體運動,倡導軟體使用者能夠對軟體自由進行使用、學習、共享和修改,確保了這些軟體被稱作自由軟體。
斯托曼發起了GNU項目,並成立了自由軟體基金會。他開發了GCC、GDB、GNU Emacs,同時編寫了GNU通用公共許可協議。
是一個自由軟體集體協作計畫,1983年9月27日由李察‧斯托曼在麻省理工學院公開發起。
它的目標是建立一套完全自由的作業系統,稱為GNU。李察‧斯托曼最早在net.unix-wizards新聞群組上公佈該訊息,並附帶一份《GNU宣言》等解釋為何發起該計畫的文章,其中一個理由就是要「重現當年軟體界合作互助的團結精神」。
GNU的創始人,理察‧馬修‧斯托曼,將GNU視為「達成社會目的技術方法」
1985年,李察‧斯托曼創立了自由軟體基金會來為GNU計畫提供技術、法律以及財政支援。儘管GNU計畫大部分時候是由個人自願無償貢獻,但FSF有時還是會聘請程式設計師幫助編寫。當GNU計畫開始逐漸獲得成功時,一些商業公司開始介入開發和技術支援。當中最著名的就是之後被Red Hat兼併的Cygnus Solutions。
1989年,GNU計畫中的其他部份,如編輯器、編譯器、Shell等都已經完成,包括了:
唯一依然沒有完成的重要元件,就是作業系統的內核
作為作業系統,GNU的發展仍未完成,其中最大的問題是具有完備功能的內核尚未被開發成功。
GNU的內核,稱為Hurd,是自由軟體基金會發展的重點,但是其發展尚未成熟。
1983年,理察‧斯托曼提出GNU計畫,根據湯瑪斯‧布希內爾的回憶,最早自由軟體基金會使用TRIX來開發作業系統。
1986年,放棄TRIX,改以輕量化後的4.4BSD為基礎進行開發。
1987年,理察‧斯托曼決定以Mach微內核進行開發,認為可以藉此加速作業系統的開發,但因為一直不確定卡內基梅隆大學何時要將核心原始碼釋出,造成計畫三年進展緩慢。他在之後承認這是個錯誤。
1990年,自由軟體基金會開始正式發展Hurd。
Minix由於過於短小精悍,只能跑在一種機器,其他機器沒有驅動。Andrew的學生就寫了好多好用驅動來擴展Minix。可是,教授Andrew卻覺得自己的操作系統要保持純潔,不能有其他的程式碼來源。於是學生們就很鬱悶,其中就有個叫Linus的同學。
聖誕節買了自己的PC的Linus,很討厭上面的MS-DOS,卻不能將Minix運行在自己的電腦上。
Linus也不得不走上了他無數前輩的道路,不讓用,不給用,那就自己寫一個操作系統來用。
林納斯‧本納第克特‧托瓦茲
僅僅兩個月後,一個「千瘡百孔但卻正好可以使用」的硬碟驅動程式和一個小到不能再小的文件系統就誕生了。
這就是第0.01版的Linux。隨後Linus將系統上傳至FTP,並公佈了全部原始碼。
1991年,Linux內核首次釋出
早前那些GNU計畫中的軟體經過修改移植後,可以在Linux之上使用,因而很多開發者轉向Linux。
Linux成為最常見的GNU系統軟體運行平台。
「我的核心!!我的王之力!!」
GNU 核心一開始並不叫做 Hurd。它最初稱為 Alix,是以當時斯托曼的女朋友來命名,斯托曼於是決定用 Alix 命名核心給她驚喜。
之後 Stallman 跟 Alix 分手,她也改了名字。
核心主要開發者 Michael Bushnell 較喜歡 Hurd 這個名字,Alix 被改以指稱核心中攔截系統呼叫,並發送訊息至 Hurd 伺服器加以處理的部分。
恰巧的是,Hurd 設計也有所更動,C 程式庫會直接發送訊息至伺服器,使得 Alix 元件消失在設計中。
2005年,Hurd的開發者Neal Walfield完成了Hurd/L4基本的記憶體管理框架,Marcus Brinkmann移植了glibc的重要部分。
2006年,Coyotos開發者嘗試將Coyotos核心移植到Hurd下。
2007年,放棄了L4與Coyotos,重新著手開發基於Mach微內核的GNU Mach上。
大概是人家很屌吧
理察‧斯托曼希望以該名稱來作為此作業系統的正式名稱。
他們認為,此作業系統,包括了GNU系統軟體套件與Linux核心,使用GNU/Linux這個名稱,可以良好概括它的主要內容。
Will...
依賴複雜的工具來管理整個系統的結果是給終端使用者帶來惡化的體驗。
如果你嘗試隱藏系統的複雜性,於是就得到一個更加複雜的系統。
為了隱藏內部機制而設定抽象層並非良好的架構方法,而應該把內部機制設計得精良而無需隱藏。
-march=native
「學其它 Linux 版本,你就是學會該版本而已。學會 Gentoo,你就學會所有的 Linux」
「把它修補到穩定為止。」
「For true hacker.」