【Linux發(fā)展史】筆記

計(jì)算機(jī)操作系統(tǒng)演化(續(xù))

80年代末,System V Unix與BSD之間打起了官司,Windows在此期間茁壯成長。
1990年,BSD把含有的Unix代碼清除殆盡,團(tuán)隊(duì)感到使命完成,項(xiàng)目終止。Bill Jolitz 嘗試將BSD移植到X86系統(tǒng)。
1991年,由于BSD移植X86支持方為商業(yè)公司,項(xiàng)目被希望閉源開發(fā),Bill Jolitz相當(dāng)不滿,怒刪一年多的研究成果,并退出項(xiàng)目。

  • 1991年8月:linus torvalds宣布成立Linux。

由于Linux遵循GPL協(xié)定,Linux得到各路技術(shù)大咖支持。
Larry wall開發(fā)的diff/patch使得接下來的互聯(lián)網(wǎng)協(xié)同開發(fā)工作成為可能。
Linux得到迅猛發(fā)展,1994年時(shí),0.99和1.0版本誕生,僅三年一個(gè)系統(tǒng)就能夠在生產(chǎn)環(huán)境中使用。
沒有任何商業(yè)組織支撐,Linux自我迭代完全靠愛好者們業(yè)余時(shí)間共同協(xié)作研發(fā)。
Windows的程序員開發(fā)環(huán)境被稱作大教堂式,Linux的程序員開發(fā)環(huán)境被稱為集市。
而BUG在集市環(huán)境中無所遁形并得到了最高效的更新。

1992年中期,BSD移植386項(xiàng)目重啟

程序基本結(jié)構(gòu)

所謂的多任務(wù)操作系統(tǒng)實(shí)際指的是,工作在底層硬件之上的,負(fù)責(zé)驅(qū)動(dòng)底層硬件,分割硬件資源,
并監(jiān)控多個(gè)任務(wù)啟動(dòng)與關(guān)閉的一個(gè)硬件虛擬化程序,也叫做通用程序或Kernel。包括BSD,Unix,Linux,等。
廣義上一個(gè)完整的OS由Kernel和Application組成,狹義上OS僅指Kernel。
GNU提供了Application,Linux提供了Kernel,這樣一個(gè)完整的OS誕生了—— GNU/Linux。

OS的接口有兩類:

  • GUI(圖形界面):Graphic User Interface

    GNome:C語言研發(fā),開發(fā)環(huán)境為gtk
    KDE:C++開發(fā),開發(fā)環(huán)境為qt

  • CLI(命令行界面):Command Line Interface

    TUI(文本接口):Text User Interface
    純命令行接口
    程序有bash,zsh,sh,csh,tcsh,ksh,等

操作系統(tǒng)的功能:

驅(qū)動(dòng)程序,進(jìn)程管理,安全,網(wǎng)絡(luò)功能,內(nèi)存管理,文件系統(tǒng),等等

Kelnel接口的調(diào)用程序需要一定的編譯知識(shí),用戶門檻比較高,接口調(diào)用稱為syscall,調(diào)用速度快。
針對(duì)syscall的封裝程序,稱為libraries(庫),接口調(diào)用稱為libcall,速度比syscall慢,但用戶門檻較低。

  • API:Application Program Interface
    程序員面對(duì)的編程接口

    • POSIX:Portable Operating System
      兼容接口,用于各API接口的兼容標(biāo)準(zhǔn)。API兼容,ABI不兼容
  • ABI:Application Binary Interface
    程序應(yīng)用者面對(duì)允許程序的接口

Linux發(fā)行版

開始的Linux只有源碼形式提供開源,源碼要編譯成二進(jìn)制格式才能被運(yùn)行,編譯過程非常復(fù)雜。
一些組織或個(gè)人,把Linux系統(tǒng)自己編譯成二進(jìn)制格式并打包給用戶,成為Linux發(fā)行版,這些組織或個(gè)人稱為發(fā)行商,發(fā)行版種類達(dá)數(shù)百種之多。
*圖片 GNU/Linux Distribution Timeline Version 12.10

三大分支
  • Debian
    • Ubunt
    • Mint
    • Knopix
  • Slackware
    • S.u.S.E
    • OpenSUSE
    • SLES
  • RedHat
    • RedHat 9.0
    • RedHat Enterprise Linux : RHEL
    • CentOS : Community ENTerprise OS
    • Fedora Core(每6個(gè)月更新一個(gè)版本)

RedHat能夠下載到的更新包是未經(jīng)編譯過的程序,用戶需要夠買軟件才能得到服務(wù)。
CentOS把RedHat的更新包重新編譯并作為發(fā)行版本發(fā)布。
CentOS服務(wù)器需要運(yùn)維人員管理,RedHat為付費(fèi)用戶提供維護(hù)服務(wù)。

其它比較流行的發(fā)行版本
  • Gentoo
  • ArchLinux

版本號(hào)

major . minor . release

  • major:主版本號(hào),一般主程序有大變動(dòng)才會(huì)更新。
  • minor:次版本號(hào),分支變化時(shí)才會(huì)更新。
  • release:發(fā)行號(hào)或者修正號(hào),一般BUG修正更新。
    *GNU/Linux 資源下載網(wǎng)站及最新版本查詢

Linux發(fā)行版和軟件也有自己的版本號(hào),但其變化與kernel無關(guān),彼此沒有繼承性。
每三行代碼便可能有BUG,而修復(fù)BUG將帶來更多的代碼。
所以,并不是版本越新越好,作為服務(wù)器未必也不應(yīng)該追求最新版本。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容