GNU/Hurd

GNU/Hurd

GNU/Hurd 是 GNU 作業系統最早用於核心的軟體項目,自 1990 年開始研發,到目前(2018年5月)還處於開發階段。由於 Linux 核心已經很適合 GNU 作業系統,而且 GNU 和 Linux 的融合十分成功,使得 GNU/Linux 已經十分流行,所以 Hurd 的核心被套用的必要性被減弱了。儘管如此,GNU 還是沒有放棄它,它依然是最有潛力的類 UNIX 作業系統核心。

基本介紹

  • 軟體名稱:GNU/Hurd
  • 軟體授權:自由軟體
  • 性質:作業系統核心
  • 開發組織:GNU
  • 研發時間:1990 年
  • 中文名稱:赫德
產生背景,發展歷史,優勢與挑戰,

產生背景

談到 Hurd 核心的背景,必須從 GNU 說起。
上個世紀 70 年代初誕生的 UNIX 作業系統是極富有意義的:由於它十分的簡潔、功能強大、移植性優良,而且由於 AT&T 因法律原因無法對這個作業系統壟斷經營,許多開發商都積極開發它的分發版本,很快就成為了風靡美國的作業系統。但是由於之後計算機世界出現了軟體自由化的呼聲,而 UNIX 作為一種專屬作業系統,顯然不利於軟體自由化。而軟體自由化又迫切需要一種由自由軟體組織自主掌握的平台,也就是自由化的作業系統。
在這種背景下,Richard Stallman 於 1983 年發起了 GNU 項目,旨在建立一個與 UNIX 作業系統兼容的、自由化的作業系統。(GNU 全稱,GNU's Not UNIX)。
一個作業系統不僅僅是一個可以提供運行程式的虛擬環境的軟體(這幾乎是核心的作用),它還必須提供足夠的功能滿足使用者的需要。而且在當時的環境下,由於核心不是開發 GNU 作業系統的必要因素,所以 GNU 項目正在開發除了核心以外的其他軟體,這樣可以增強自由軟體的影響力(這些軟體可以被 UNIX 用戶直接使用)。直到 1990 年才開始開發一個旨在能夠替換 UNIX 核心的自由核心—— Hurd。

發展歷史

Richard Stallman (RMS) 於 1983 年創建 GNU,作為創建完整免費作業系統的項目。在 GNU 宣言中,他提到有一個原始的核心,在 1986 年 2 月發布的第一封 GNUsletter 檔案中,他說這個原始核心是在麻省理工學院開發的 TRIX。
自 1986 年 12 月以來,自由軟體基金會(FSF)已經開始著手 "TRIX所需的變革"。此後不久,FSF開始 “與卡內基梅隆大學大學的 Rashid 教授進行談判,與他們一起研究 Mach 核心的開發”。該檔案暗示 FSF 有意向直接使用別人的工作,而不是執著於修復 TRIX。
在《Gnusletter, Feb. 1988》中,RMS 正在談論採用 Mach 並將 Berkeley Sprite 檔案系統置於其之上,“在Berkeley Unix 的部分被替換之後”。
六個月後,FSF 說“如果我們不能得到 Mach,我們會使用 TRIX 或 Berkeley's Sprite”。在這裡,他們將 Sprite 當作一個完整的核心,而不僅僅是一個檔案系統。
1990 年 1 月,他們說:“我們沒有做任何核心工作,現在開始一個核心項目,當我們仍然希望使用 Mach 時,沒有任何意義。”。直到 1991 年宣布更詳細的計畫時,沒有什麼重大事件發生。
“詳細的計畫”:
我們仍然對運行於 Mach 之上的多進程核心感興趣。 CMU律師目前正在決定是否可以釋放具有分配條件的 Mach,以便我們分配它。如果他們決定這樣做,那么我們可能會開始工作。 與 Mach 的可用條件相同,CMU 有一個稱為 Poe 的單伺服器部分Unix仿真器。它不僅相當慢,而且只提供最少的功能。我們可能會從擴展 Poe 開始,提供完整的功能。我們希望後面可以將模組化仿真器分成多個進程。
RMS 解釋了 Hurd 和 Linux 之間的關係,他提到 FSF 在 1990 年開始開發 Hurd。從[Gnusletter, Nov. 1991],開始,Hurd (運行在Mach上) 是GNU的官方核心。
這些都是多年來的公告。
  • hurd-announce -- GNU Hurd announcement, May 91
  • hurd-announce2 -- GNU Hurd announcement, Nov 93
  • hurd-flash -- News flash, Apr 94 -- it boots!
  • hurd-flash2 -- News flash, May 94
  • hurd-flash3 -- News flash, Jul 94 -- emacs runs!
  • hurd-flash4 -- News flash, Aug 94
  • hurd-flash5 -- News flash, Sep 94 -- gcc runs!
  • hurd-flash6 -- News flash, Nov 94
  • hurd-flash7 -- New Snapshot, Apr 95
  • hurd-flash8 -- New Snapshot, Jul 95 -- ext2fs support
  • hurd-flash9 -- News Flash, Nov 95 -- ftp works!
  • hurd-flash10 -- New Snapshot, Apr 96 -- NFS and lots else works!
  • hurd-flash11 -- Binary image available, Apr 96 This and NetBSD boot flopies should be enough to get a working GNU/Hurd system!
  • hurd-flash12 -- Test release status (Jul 96)
  • hurd-flash13 -- Test release announcement (Aug 96)
  • GNU Hurd 0.1 (1996-09-06)
  • hurd-flash14 -- Release 0.2 announcement (Hurd)
  • hurd-flash15 -- Release 0.2 announcement (complete GNU system)
  • GNU 0.2 (1997-06-16)
GNU Hurd 0.5 released (2013-09-27)
GNU Hurd 0.6 released (2015-04-10)
GNU Hurd 0.7 released (2015-10-31)
GNU Hurd 0.8 released (2016-05-18)
GNU Hurd 0.9 released (2016-12-18)
這些公告詳細記錄了 Hurd 核心發布的版本以及時間。

優勢與挑戰

GNU Hurd 有許多誘人的特點:

它是免費軟體,所以任何人都可以在 GNU 通用公共許可證 (GPL) 的條款下使用,修改和重新發布它。

它兼容,因為它提供了一個熟悉的編程和用戶環境。對於所有意圖和目的,Hurd 提供與現代類 Unix 核心相同的設施。 Hurd 使用 GNU C 庫,其開發緊密遵循 ANSI / ISO,BSD,POSIX,Single Unix,SVID 和 X / Open等標準。

與其它流行的核心軟體不同,Hurd 具有面向對象的結構,可以在不影響其設計的前提下進行改進。這種結構將幫助Hurd 進行重大設計和修改,而不必完全重寫。

Hurd 以非常模組化的方式建造。其他類似 Unix 的核心 (例如Linux) 也是模組化的,因為它們允許載入(和卸載)一些組件作為核心模組,但 Hurd 更進一步,因為構成整個核心的大多數組件都作為分離用戶空間進程並因此使用彼此隔離的不同地址空間。這是基於微核心的多伺服器設計。在 TCP / IP 協定棧中錯誤的記憶體解引用不可能導致整個核心以及整個系統的崩潰,這在單一的 Unix 核心體系結構中是一個真正的問題。

Hurd 將類似核心的功能分解為單獨的組件(伺服器)的一個優點是可以使用不同的程式語言構造這些功能 - 這在單片核心中不太可能實現。實質上,只需要從編程環境到RPC機制的接口。 (如果您有興趣,我們為此提供項目提案)。

Hurd 是學習如何成為核心研究者或實施核心技術新思路的有吸引力的平台。系統的每個部分都被設計為易於修改和擴展。

在不重新啟動機器的情況下,可以開發和測試新的 Hurd 核心組件。運行您自己的核心組件不會干擾其他用戶,因此不需要特殊的系統特權。核心擴展的機制在設計上是安全的:除非授權他們或者您是系統管理員,否則不可能將更改強加給其他用戶。

Hurd 是正在運行的真正的軟體。這不僅僅是一個研究項目或提案。
當然,Hurd 也面臨著一些挑戰:
儘管它們在更簡單的嵌入式領域非常流行,但目前還沒有成功的真正的多伺服器微核心系統用於通用桌面。 這仍然是一項正在進行的研究工作。

同樣,分散式作業系統核心中的資源調度也是一個研究課題。 例如,在相關的“打開問題”頁面上閱讀更多關於它的信息。 另外,Viengoos 研究核心項目努力探索這些內容。

相關詞條

熱門詞條

聯絡我們