Linux核心
Linux 核心(英語:Linux kernel)是一種開源的類 Unix 作業系統單核心。規个 Linux 作業系統家族因為這个核心部署佇傳統電腦平台(若這个人電腦佮侍服器,以 Linux 發行版的形式)佮各種的1875入式的平台,如路由器、無線存取點、專用小交換機、機頂頭觳仔、FTA 接收器、智慧型電視、數位影片錄影機、網路附加儲存(NAS)等。做工課佇平板電腦、智慧型手機仔佮智慧型手錶仔的 Android 作業系統仝款通過 Linux 核心提供的服務完成自身功能。就算講桌面電腦占用率較低,是因為 Linux 的作業系統治差不多對行動裝置到主機的其他全部領域。截至二空一七年十一月,世界前五百台上強的超級電腦全部使用 Linux。
Linux 核心上早是一九九一年對芬蘭駭客林納斯 ・ 托瓦茲為家己的個人電腦開發的,伊彼陣佇咧 Usenet 新聞群組 ` comp . os . minix ` 登載貼文,這份出名的貼文標誌對 Linux 核心計劃的正式開始。現此時,該計畫已經拓展到支援大量的電腦體系架構,遠超其他的作業系統佮核心。伊快速吸引著一批開發者和使用者,利用伊做其他的自由軟體專案的核心,如出名的 GNU 作業系統。啊若今仔日,Linux 核心已經接受超過一千兩百間公司的最近一孵二千名程式設計師的貢獻,其中包括一寡知名的軟硬體發行商。
對技術上講,Linux 只是一个符合 POSIX 標準的核心。伊提供一套應用程式介面(API), 通過介面使用者程式能佮核心佮硬體互動。干焦一个核心並毋是一套完整的作業系統。有一套是無 Linux 核心的完整作業系統叫做 Linux 作業系統,抑是講 GNU / Linux(佇該系統內底有包含著足濟 GNU 計畫的系統組件)。
Linux 核心是佇咧 GNU 通用公眾授權條款第二版之下釋出的(加上一寡非自由的韌體、blob 佮各種非自由授權條款), 是一个開源專案協同運作的突出例。伊的版本支援根據版本上長會當達到六年,貢獻者遍佈世界各地,日常開發相關的討論佇 Linux 核心郵寄清單頂頭。
歷史
一九九一年,林納斯 ・ 托瓦茲,一个二十一歲的就讀佇芬蘭赫爾辛基大學的電腦科學專業學生,是因為一寡簡單的想法,按算編寫一个作業系統核心。伊通過英特爾八八七空三百八十六組合語言的工課切換器佮一个終端驅動程式開始工作。八月二五,伊佇咧 ` comp . os . minix ` 新聞群組里發一封貼文:
> 我咧做一个(自由的)作業系統(就是一个興趣佮意愛好,我袂去舞甲像 GNU 遐爾仔大著遐爾仔專業), 按算予伊做工課佇咧三百八十六 AT 平台頂。伊對四月就開始醞釀矣,連鞭就欲好矣。我想欲遐佮意無佮意 minix 的人的意見,因為我的系統佮伊有淡薄仔類似(仝款的檔案系統的物理布局—— 因為實際的原因—— 猶閣有一寡其他的物件)。 > > 我這馬已經徙栽矣 bash ( 一孵空八 ) 和 gcc ( 一孵四空 ),而且看起來奏效矣。意味著我會佇幾個月內得著一寡實用的物件。「……」是啊—— 伊無任何 minix 代碼,並且伊有一个多執行緒的 fs。伊無會當徙栽(使用三百八十六工作切換等), 而且伊可能永遠袂支援除 AT 硬碟之外的其他物件,因為我干焦有遮的 :-(。 > >「……」伊基本上是用 C 語言寫的,但是大多數的人可能袂共我寫的物件叫做 C 語言。伊使用我會當揣著的三百八十六的每一个會當想像的特性,因為伊嘛是一个共我教關於三百八十六的功能的專案。我頭前講過,伊使用記持體管理單元來進行分頁(猶未實現著對硬碟的功能)佮分段。這个分段功能予伊真正的依賴三百八十六(每一个任務攏有六十四 Mb 的代碼佮資料段—— 四 Gb 上濟六十四个任務。人若需要超過每一个任務六十四 Mb 的限制,彼將是一个麻煩事)。「……」我的一寡 C 語言檔案(特別是 mm . c)差不多用著佮 C 平大的組譯。「……」無成 minix,我嘛拄好佮意中斷,所以斷將佇咧無試圖隱藏背後的原因的情形下去予人處理。 > >
了後,真濟人為這个案貢獻代碼。佇咧以前,MINIX 社群向 Linux 核心貢獻了代碼佮想法。彼當陣,GNU 專案已經建立了真濟自由作業系統所需要的組件,但是伊家己的核心 GNU Hurd 猶無完整而且無法度使用;而且 BSD 作業系統猶未排除合法的阻礙。所以,就算講早期版本的 Linux 功能有限,但是伊真緊提著開發人員和使用者。
到一九九一年九月,Linux 核心版本零交零一佇芬蘭大學佮研究網路(FUNET)的 FTP 侍服器(ftp . funet . fi)頂頭釋出。伊有十 , 二百三十九行代碼。佇咧一九九一年十月,空九十二版本的核心釋出了。
一九九一年十二月,空七一一版本的核心釋出。因為伊會當由執行仝款核心版本的電腦編譯,所以版本是頭一个自代管的 Linux 核心。做托瓦茲佇一九九二年二月釋出零扣一二版本時,伊採用矣 GNU 通用公眾授權條款(GPL), 毋是以前的孤一味的授權條款,原先的授權條款無允准商業閣分發。
一九九二年一月十九,頭一篇文章提交予新的新聞群組 ` alt . os . linux ` 出現。一九九二年三月三十一,該新聞群組的閣較名 ` comp . os . linux `。
X Window 系統隨後予徙栽去 Linux 上,所以佇一九九二年三月,Linux 空七九五是頭一个會當執行 X 的版本。對無分一 x 到零操九 x 的版本號大幅度迒過是因為向望無大的欠失部份的版本一鋪排的咧欲出現。毋過,這个人證明是錯誤的。對一九九三年到一九九四年初,出現矣空七九九版本的十五个開發版本。
一九九四年三月十四,Linux 核心一孵零 . 零釋出,把一百七十六 , 二百五十行代碼。隨後的一九九五年三月,有三百十一 , 九百五十行代碼的 Linux 核心一孵二 . 零釋出。
佇一九九六年六月初九釋出的 Linux 核心二交零版本了後,較大版本的主要去更新不如下遮的:
- 一九九九年一月二五-釋出 Linux 核心二交二 . 零(一 , 八百 , 八百四十七行代碼)
- 九九年十二月十八號-針對二鋪二 . 十三的 IBM 大型電腦修補程式釋出,容允 Linux 核心用佇企業級機器
- 二空空一年一月四號-釋出 Linux 核心二交四 . 零(三 , 三百七十七 , 九百空二行代碼)
- 二空空三年十二月十七號-釋出 Linux 核心二交六 . 零(五 , 九百二九 , 九百十三行代碼)
對二空空四年開始,釋出過程發生矣變化,新的核心每隔二爿三個月定期釋出,編號做二孵六 . 零、二孵六 . 一,一直到二鋪六 . 三十九。
二空一一年七月二一,Torvalds 宣佈釋出 Linux 核心三孵空:「 二孵六 . < 大版本 > 的日子過去矣」。 佮 Linux 二孵六 . 三十九相比,大的技術變化仝版本躍升無關係;伊標誌對核心的二十周年紀念。因為時間的釋出過程保持無變。
二空一三年六月釋出的 Linux 核心版本三石一空包含十五 , 八百空三 , 四百九十九行代碼,啊若二空一五年六月釋出的四石一版本已經發展甲超過一千九百五十萬行代碼,因為一爿四千个程式設計師貢獻。
塔能鮑姆-林納斯辯論
Linux 毋是微核心架構的事實捌引起林納斯 ・ 托瓦茲佮安德魯 ・ 史都華 ・ 塔能鮑姆之間一場出名的爭論。一九九二年佇咧 Usenet 討論群組 comp . os . minix 開始一場網路論戰,討論的主題佇咧作業系統架構的選擇。較等咧出名的駭客嘛加入討論,如大衛 ・ 穆勒、曹子德。這場辯論影響矣 Linux 核心的設計行向。塔能鮑姆認為 Linux 核心採用的單核心已經過時矣,應該採取較先進的微核心架構,引起林納斯的反擊。
佇二空空六年五月九號,這个主題予人重新審視,並且佇二空空六年五月十二日塔能鮑姆寫了一份立場聲明。
架構
Linux 是一个單體核心,支援真正的搶佔式真濟工處理(佇咧使用者態,佮版本二交六系列了後的核心態)、 虛擬記憶體、共享庫、請求分頁、共享寫時複製會當執行體(通過核心同頁合併)、 記持體管理、Internet 協定族佮執行緒等等的功能。
裝置驅動程式佮核心擴充執行佇核心空間(佇咧足濟 CPU 架構內底是 ring 零), 會當完全的存取硬體,但是嘛有執行佇咧使用者空間的一寡例外,比如講基於 FUSE / CUSE 的檔案系統,佮部份 UIO。多數人佮 Linux 做伙使用的圖形系統無執行佇核心中。佮標準單體核心無仝款,Linux 的裝置驅動程式會當輕易的組態為核心模組,閣佇咧系統執行期間會當直接裝載抑是解除安裝。嘛無仝款標準單體核心,裝置驅動程式會當佇特定條件下跤予人搶占;增加這个特徵用佇正確來處理硬體斷並閣較好的支援對稱多處理。出於自願選擇,Linux 核心無二進位核心介面。
硬體嘛予人整合入檔案層級內底。使用者應用著裝置驅動的介面是佇咧 / dev 抑是 / sys kha-tá-lok-guh 後的入口檔案。行程資訊嘛通過 / proc kha-tá-lok-guh 對映到檔案系統。
程式語言
Linux 是用 C 語言內底的 GCC 版(這種 C 語言有對標準 C 進行擴展)寫的,閣有幾个用組合語言(用的是 GCC 的 " AT & T 風格 ")寫的目標架構短段。因為欲支援擴展的 C 語言,GCC 佇足長的時間里是唯一一个會當正確編譯 Linux 的編譯器。有真濟其他的這个語言用佇一寡方面上,主要集中佇核心構建過程當中(遮指對原始碼建立會當啟動鏡像)。 包括講 Perl、Python 佮加種手稿語言。有一寡驅動可能是用 C + +、Fortran 抑是其他的語言寫的,但是按呢是強烈無建議的。
編譯器相容性
GCC 是 Linux 核心原始碼的預設編譯器。佇二空空四年,Intel 主張通過修改核心,以便 Intel C + + 編譯器能正確編譯核心。佇二空空九年,有通過修改核心二孵六 . 二十二版而成功編譯的報告(並且𤆬來平均八百分之刃九效能是增長)。
自從二空一空年,已經開始咧行使用 Clang 建造 Linux 核心的拍拚,Clang 是一个可作為替代的 C 語言編譯器;截止二空一四年四月十二,官方核心差不多會當完全用 Clang 編譯。共這个目標的計畫共號做「LLVMLinux」,著等於 Clang 所以對的 LLVM 編譯器下部構造。LLVMLinux 無意圖複製 Linux 核心抑是 LLVM,所以伊是由最後提交予頂游計畫的修補程式構成的一个元計畫。使 Linux 核心會用得 Clang 編譯上大的好處是比 GCC 有閣較緊的編譯速度,核心開發者會當因為按呢來的工課較緊的工作流程。
介面
符合標準是 Linux 核心內部的普遍策略。另外一个規則是講 Linux 核心主線無欲接受只是專有使用者空間軟體使用的核心模組。
核心至使用者空間 API
原始碼可移植性確保符合標準的 C 程式會當佇符合仝款標準的任何系統上編譯佮執行。Linux 核心開發、GNU C 函式庫和相關的實用工具致力於追隨 POSIX 佮單一 UNIX 規範。Linux 核心 API 是核心的系統呼叫介面。
核心至使用者空間 API
二進位可移植性共保證任何程式佇符合標準的予定硬體平台頂一旦編譯通過,會當佇符合仝款標準的任何其他硬體平台以編譯以後的形式執行。二進位會當移植性是佇咧基於 Linux 核心的作業系統上建造獨立軟體供應商(ISV)應用有商業會當趁的本質要求。現有唯一的二進位相容標準是 Linux 標準規範(LSB)。
核心內 API
佇無仝款的系統間使用了數個核心內部 API。其中一寡是迒愈濟个發行版保持穩定的,另外一寡著無。對核心內 API 無作擔保。維護者佮貢獻者會當佇任何時陣增加抑是變更加𪜶。
核心內 API 的例包括針對下列類別裝置驅動程式的軟體框 / API:
- Video 四 Linux –用佇影片掠硬體。
- 進階 Linux 聲音體系(ALSA) –用佇音效卡。
- New API–用佇網路介面控制器。
- 直接彩現管理器–用佇咧圖形加速器。
- KMS 趕動器–用佇影片顯示控制器。
- mac 八堵空二百十一 –用無線網路介面控制台。
核心內 ABI
Linux 核心開發者選擇無維護穩定的核心內 ABI。
技術特性
搶占式排程系統
Linux 核心提供予佇咧特定的條件之下的搶先式的排程。一直到核心版本二交四,干焦使用者會當搶頭路的,就是講除了時間片盡量用,佇咧使用者模式下執行的當前行程,若有閣較高態優先級的行程進入 ` TASK _ RUNNING ` 狀態,伊就會予人斷去。自從二堵六系列 Linux 核心,增加中斷執行核心代碼的任務的能力,但毋是對核心代碼的所有一段落。
Linux 核心有無仝的排程器類。核心預設使用的排程機制叫做完全公平排程器,伊介入去核心版本內底二四界 . 二十三。這个預設排程器類佇內底嘛叫做 ` SCHED _ OTHER `,去核心猶閣有兩个遵循 POSIX 的即時排程類,分別號做 ` SCHED _ FIFO `(即時先進先出)和 ` SCHED _ RR `(即時輪串流), 二者攏優先於預設類。
通過使用即時 Linux 核心修補程式 ` PREEMPT _ RT `,會當支援對關鍵段落、就斷處理器佮「斷去禁用」代碼序列的完全搶頭前。即時 Linux 核心修補程式部分地整合入主線核心已經帶予伊一寡功能。搶先機制改善延遲、增進回應性,並使得 Linux 更加適合桌面佮即時應用。老版本核心有所謂的巨鎖,用佇鎖定粒度做規个核心的同步,伊到落尾由 Arnd Bergmann 佇二空一一年共徙掉。
猶閣有叫做 ` SCHED \ _ DEADLINE ` 的排程策略,實現矣最近截止期限上代先(EDF)演算法,伊增加佇二空一四年三月三十發行的核心版本三石一四。
可移植性
就算林納斯 ・ 托瓦茲的初衷毋是使 Linux 成做一个會當徙栽的作業系統,今仔日的 Linux 煞是全球被上廣泛移植的作業系統核心。對行動電話到超級電腦,甚至講有人成功的將 Linux 核心咧索尼出品的遊戲機 PS 二及 PS 三和微軟出品的遊戲機 Xbox 最使用。Linux 嘛是啦 IBM 超級電腦 Blue Gene 的作業系統。一直到二空一一年十一月,全球前五百大超級電腦(TOP 五百)有懸到百分之九十一交四的比例共採用 Linux 為𪜶的作業系統。一寡為手機仔開發的作業系統,使用 Linux 核心的修改過的版本,其中包括講 GoogleAndroid、Firefox OS、HP WebOS 和諾基亞 Maemo。
核心錯誤和 oops
佇咧 Linux 中,核心錯誤(Kernel panic)是講作業系統佇咧監測著核心系統內部無法度恢復的錯誤,佮咧使用者空間代碼類似的錯誤。作業系統試圖讀寫無效無允准的記持體位址是致使核心錯誤的一个捷看原因。核心錯誤也有可能佇拄著硬體錯誤抑是作業系統 BUG 時發生。佇足濟狀況內底,作業系統會當佇記憶體存取違例發生時繼續執行。毋過,系統處無穩定的狀態的時陣,作業系統通常會停止工課以避免造成破壞安全佮資料損害的風險,並且提供錯誤的診斷資訊。
佇咧 Linux 上,oops 即 Linux 核心的行為無正確,並產生一份相關的錯誤紀錄檔。真濟類型的 oops 會致使核心錯誤,即令系統隨停止工課,但是部份 oops 凡勢繼續操作,當做佮穩定性的妥協。這个概念干焦代表一个簡單的錯誤。做核心檢測著問題的時,伊會列印一个 oops 資訊然後刣死全部相關的行程。oops 資訊會當幫助 Linux 核心工程師除了毋著,檢測 oops 出現的條件,並修復致使著 oops 的程式錯誤。
安全
電腦安全是一个非常公眾化的主題,關係著 Linux 核心,因為大量佇核心中的錯誤可能成做是藏佇的安全漏洞,是毋是有允准提升權限漏洞或者是阻斷服務攻擊源漏洞。佇過去的幾年中,真濟按呢的缺陷予人發現,並佇咧 Linux 核心中予人修理好。新的安全功能被繼續實現,以解決佇咧 Linux 核心中的電腦無安全問題。
批評者指責核心開發人員,共𪜶崁崁(至少並無公佈)安全漏洞。二空空八年,做回應,Torvalds 稱:「 個人認為,安全漏洞只是『正常的空隙』。 遮的空縫我並無去掩崁,猶毋過我無認為應當共𪜶特殊化,閣較無認為應該追蹤並公示𪜶…… 我無愛插規个安全團隊,原因之一就是,我認為遮的空毋但美化閣鼓勵毋著錯誤的行為乎。這予安全人員成做『英雄』,就若準無修補正常落勾的人就毋值咧提似的。事實上,所有的無聊的正常是無聊,干焦因為𪜶實在是太濟矣。我無認為這个美化佮關心遐的嚴重的安全漏洞—— 𪜶並無赴遐的由死鎖造成的隨機嚴重崩盤來甲閣較特殊。」
如二空一二年五月,SYSRET 指令予人發現佇咧 AMD 佮英特爾處理器間佇實現方面有差,這差異在 Windows、FreeBSD、XenServer 和 Solaris 遮的主流作業系統會致使空隙。二空一二年六月,Linux 核心內底該問題已經予人修復。
二空二一年,來自明尼蘇達大學的研究人員,捌藉著貢獻修補程式來做 Linux 核心的名義,利用修補程式匯入臭蟲抑是空隙,來觀察 Linux 核心社群的反應,再度故技重施時,去予人發現了後封鎖矣所有來自該大學的貢獻,佮移除過去該大學捌貢獻的坎站。
開發
開發者社群
截止二空空七年,核心開發已經對二十位上活跳開發者寫百分之八十的代碼轉變做頂端三十人寫百分之三十的代碼,毋過極端開發者開閣較濟時間稽核變閣較。開發者猶閣會當按照對屬關係來歸類;佇二空空七年,上端類屬是「毋知名」啊若頂端公司是 Red Hat,伊占有百分之十二的貢獻,才知名業餘愛好者占百分之三孵九。佇二空空七年的時所做核心變更加已經由超過一千九百位開發者提交。一般假定 Linux 核心開發者社群由五千箍六千名成員組成。
Linux 基金會發表的二空一六年 Linux 核心開發報告的閣較新表明,對版本三石一八(二空一四年十二月)到四配七(二空一六年七月)期間:平均逐改發行有來自兩百箍左右兩百五十个公司的大約一千五百位開發者作出貢獻。極端三十位開發者貢獻矣代誌大過十六的代碼。佇公司內底,頂懸貢獻者是 Intel(百分之十二爿的九)和 Red Hat(百分之八堵空), 第三佮第四个為「none」(百分之七堵七)和「unknown」(百分之六交八)類屬。
開發的過程佮模式
一个想欲著 Linux 核心進行修改的開發者一般就對對彼修改的開發佮測試開始對手。紲落來的過程伊就決定佇咧變化的重要程度,佮修改該變更的子系統數量是由單個還是多個修補程式組成。若是干焦修改了由單一个維護人員維護的單個子系統,若按呢遮的修改的修程式代碼就佇遐直接通過矣 Cc 中某一个郵寄清單傳送予相關的維護人員。郵寄清單的閱讀者佮子系統的維護人員會檢查修補程式代碼閣提供回饋。一旦審查的過程完成,維護者接受伊核心代碼樹仔中的修補程式。若遮的閣較改被認為是有夠重要的錯誤修復,按呢包括這修補程式的拉取請求(pull request)共佇幾工內底傳送予 Linus。抑無,將佇後一个合併窗口的時向 Linus 傳送拉取請求。合併窗口通常會相連紲兩禮拜,並且佇咧進前的核心版本釋出了後隨啟動。
Linus Torvalds 有嘿 Linux 核心會當接受佗一寡改佮啥人會當成做維護者的最終決定權。核心維護者佇𪜶自願放棄進前將維持𪜶的角色。目前,無任何已知的核心維護者予人要求登出。此外,猶閣無一个核心維護者因佮其他維護者的互動風格的因素去受著 Linus 批評的例。這為著維護者提供著真闊的社群空間。雖然核心開發社群的文化久年來有所改善,但是捌有一段時間伊的聲譽足害的。認為家己受著無公正對待的開發者會使向 Linux 基金會的技術專家委員會報告。就算講按呢,一寡社群的成員猶原無認同這馬的討論氣氛。
仝 Linux 發行版的關係
大多數啦 Linux 使用者執行一个由𪜶 Linux 發行版提供的核心。一寡發行版搭載的是 Linux 的通用核心(也就是講「vanilla」抑是「stable」)版本。猶毋過,一寡仔 Linux 核心發行商(如 Red Hat 和 SUSE)會維護𪜶家己的核心分支。這寡發行商分支的核心版本通常攏相對較穩定版本(vanilla)來講更新的速度閣較慢一寡,但是仝款會包括所有相關的穩定版本的分支的修補程式。此外,𪜶同時嘛會加添一寡新的特性佮對新硬體的支援,遮的支援是遮的發行商分支佇咧的穩定分支所無包括的。
重新開發的估價
按照傳統商業軟體開發的方式,重新開發 Linux 二孵六 . 空核心的估計代價將是六嬸一二億(四配六七億歐元、三碰九四億英鎊), 以二空空四年的 COCOMO 人月估計模型。佇二空空六年,歐盟鬥幫贊的一項研究表明,重新開發 Linux 二孵六 . 八以後的核心,代價是八學八二億歐元(十一孵四億美金、七扶四四億英鎊)。
節甲二空一一年一月初四,使用當前的台碼行(LOC)佮大衛 ・ 惠勒的計算工資數,這將開差不多三十億美金(差不多二十二億歐元), 才會當重新來開發 Linux 的核心。
版本號名
Linux 核心有三个無仝的號名方案。早期版本:頭一个版本的核心是零交零一,其次是零仙化零二 , 空三 , 空七一空 , 空七一一 , 空七一二(第一 GPL 版本 ) , 空九五 , 空九九六 , 空九七 , 空九八 , 空空九九佮一九空。,對無影九五版有真濟的修補程式釋出到主要版本版本之間。
舊計畫(一鋪空佮二交六版之間 ),版本的格式為 A . B . C,其中 A , B , C 代表:A大幅度轉變的核心,這是真少發生變化,干焦做發生重大變化的代碼佮核心發生毋才會發生,佇歷史上捌改變兩改的核心:一九九四年的一孵空佮一九九六年的二孵空;B是講一寡重大修改的核心,核心使用傳統的奇幾若改愛版本號碼的軟體號碼系統(用偶數的次要版本號碼來表示穩定版本);C是講輕輕仔修訂的核心,這个數字當有安全修補程式,bug 修復,新的功能抑是趕動的程式,核心便會有變化。自二孵六 . 零(二空空三年十二月)釋出了後,𪜶熟似著,閣較短的釋出周期將是有益的。自彼陣仔起,版本的格式為 A . B . C . D,其中 A , B , C , D 代表:A和B是無關係要緊,C是核心的版本,D是安全修補程式。
自三堵零(二空一一年七月)釋出了後,版本的格式為三 . A . B,其中 A , B 代表:A是核心的版本,B是安全修補程式。四配零(兩千空一五年四月)釋出了後,是延續三 . A . B 的號名格式,只是將主版號變更為四。
法律層面
授權條款
原先托瓦茲將 Linux 一个禁止任何商業的行為的條例之下,但是零仙一二版本了後改用 GNU 通用公眾授權條款第二版。該協定允准任何人對軟體做修改抑是發行,包括商業行為,只要其遵守該協定,所有對 Linux 的軟體嘛必須愛以該協定的形式發表,閣提供原始碼。
托瓦茲曾經公開叫叫將 Linux 置於 GNU 通用公眾授權條款之下是伊一生中所做的「上好的決定」。
GPL 第三版
Linux 核心明確地干焦發表佇咧 GNU 通用公眾授權條款(GPL)二版下,無向去予授權方提供選擇「任何閣較懸版本」的選項(這是捷看的 GPL 擴充)。 關於是按怎輕鬆的改變授權條款來使用後來的 GPL 版本(包括第三版)猶閣有這種更改敢有需要,有相當的爭論是偌濟。托瓦茲本人佇咧版本二茲四 . 零的釋出中明確指出,伊家己的代碼干焦佇版本二下釋出。毋過,GPL 的條款規定,若是無指定版本,哪會使用任何版本;而且艾倫 ・ 考克斯指出,足罕得有其他 Linux 貢獻者指定矣特定版本的 GPL。
二空空六年九月,對二十九位關鍵核心程式設計師的調查顯示其中的二十八位元閣較傾向使用 GPL 二版(GPLv 二)毋是彼當陣的 GPL 第三版(GPLv 三)草案。托瓦茲評論講:「 我認為一寡外界人 . . . . . . 相信我才是彼个古怪袂合群的人,因為我遮爾大支旗鼓地無做 GPLv 三的忠實迷眾。」遮的高水平的核心開發者就眾媒體著 GPLv 三的反對發表矣評論,其中包括林納斯 ・ 托瓦茲本人、葛雷格 ・ 克羅哈曼佮安德魯 ・ 不要頓。𪜶講著有關係 DRM / TiVo 化、專利佮「附加限制」的條款,閣警告 GPLv 三對「開源以稻」的巴爾幹化。決定無欲採用 GPLv 三作為 Linux 核心授權條款的托瓦茲佇幾年後重申伊的批評。
韌體爭議
授權條款的爭議的一个重點是 Linux 使用韌體第二進位包來支援某一寡硬體裝置。理察 ・ 馬修 ・ 斯托曼認為遮的物件予 Linux 某部份成做是足自由軟體,甚至是按呢散佈 Linux 閣較會破壞 GPL,因為乎 GPL 需要完全會當得著的原始碼。
林納斯 ・ 托瓦茲及 Linux 社群內底的領導者,支援較冗的授權條款,無支援理察 ・ 馬修 ・ 斯托曼的立場。社群內底的 Linux-libre 提供完整的自由軟體韌體。
載入式核心模組授權條款
閣有另外一个爭論點,就是載入式核心模組敢是算是智慧財產權下的衍生創作,意即 LKM 敢嘛受著 GPL 約束?托瓦茲本人相信 LKM 干焦用一部份「公開」的核心介面,因此無算衍生創作,才會允准一寡干焦兩進位包裹的驅動程式抑是無法度 GPL 宣告的驅動程式用於核心。但是嘛毋是逐家人攏按呢同意,而且托瓦茲嘛同意足濟的 LKM 確實是純粹的衍生創作,嘛共寫落去「基本上,核心模組是衍生創作」按呢的句。另外一方面托瓦茲也捌講過:
> 有當時仔一寡趕動的程式原先並毋是 Linux 設計的,是為其他的作業系統來做(意即並毋是為 Linux 作的衍生創作), 這是灰色地帶…… 這「的呢有影」是一个殕色的所在,啊若我個人相信一寡模組會當看做非 Linux 衍生創作,嘿針對 Linux 設計的,嘛因此袂遵守 Linux 定落來的行為準備。 > >
特別像繪圖卡驅動程式就有真大的爭議,凡勢到尾仔著由立法機關予一个答案。
SCO 爭議
佇二空空三年三月,SCO Group 著 IBM 提告,聲稱 IBM 共一寡咧 SCO 智慧財產權授權條款保護之下的 Unix 原始碼入去植物 Linux 中,破壞去矣 SCO 給給給 IBM 的原始碼使用許可權。另外咧 SCO 嘛發出一大堆的存證函予真濟公司,警告𪜶佇咧無 SCO 許可權的情況下使用矣 Linux,此舉可能會致使侵犯智慧財產權,並且以起訴為手段對個別使用者施壓。SCO 嘛仝時間著 Novell、戴姆勒克萊斯勒(DaimlerChrysler,佇二空空四年七月被部份駁倒轉來)以及 AutoZone 提出告訴,而且予 Red Hat 佮其他來反對 SCO 論點的公司反告。二空空七年八月二十四號,聯邦法院咧審理 SCO 著 Novell 案(SCO v . Novell), 法院認定 Novell 才著 Unix 商標的合法有的人,毋是 SCO。二空一空年三月二十,美國聯邦第十巡迴上訴法院宣判,Novell 才著 UNIX 佮 UnixWare 商標的合法有的人。此項判決宣布了後,已經進入破產保護程式的 SCO 公司,決定停止繼續提出訴訟。
參見
- Linux
- 林納斯 ・ 托瓦茲
- 作業系統核心的較
- Linux 核心版本歷史
參考文獻
外部連結
- (英文)Linux 核心官方下載中心
- (英文)日漸漸膨脹 Linux 郵寄清單內容挽愛
- (英文)林納斯佮塔能包姆爭論微核心的筆仗
- (英文)Greg Kroah Hartman on the Linux Kernel at youtube
- (中文)如何檢視 Linux 核心版本的資訊