快轉到主要內容

嘗試安裝Debian GNU/Hurd系統 + XFCE桌面

· 民國115年丙午年
·
切換繁體/簡體
分類 Linux系統 Linux系統安裝教學
標籤 Free Software Foundation Debian
目錄

這不是Linux,也不是BSD,它是:Hurd

因為沒有實體機運作紀錄,只能裝在虛擬機。

安裝版本:Debian GNU/Hurd 2026

實際測試下來這個系統非常不穩定。

1. GNU/Hurd系統簡介
#

GNU/Hurd是一個自由開源的Unix-like作業系統。

首先你要知道的是,GNU/Hurd是一個獨立的作業系統,不是Unix,也不是Linux。不過因為本文用到了Debian的軟體,我還是把它放在Linux的文章分類之下。

對自由軟體運動的追隨者來說,GNU/Hurd系統可說是信徒們心中的聖杯。

1983年,Richard Stallman等人發起自由軟體運動,成立GNU計畫與FSF基金會,希望打造一個自由開源的GNU作業系統,目標是取代現有的Unix系統又保持向下相容性。作業系統核心選定當時相對先進的Mach進行開發,但是核心原始碼一直沒有釋出導致計畫推遲。所以開發團隊只好先完成GNU系統軟體,包括Shell和常用程式,以及GCC編譯器,但是重要的核心一直沒有著落。1990年,FSF宣佈Hurd核心開發工作開始,1996年推出第一個版本。HURD這個字是「HIRD of Unix Replacing Daemons」的遞迴縮寫。HIRD又是「Hurd of Interfaces Representing Depth」的縮寫。這個文字遊戲反應了Hurd核心的複雜特性。

但是Hurd核心的知名度卻輸給了Linux。1991年,Linus Torvalds發表Linux核心,當時Hurd的開發工作尚不明朗,另外一個著名開源作業系統BSD Unix又深陷與AT&T Unix的法律糾紛。因此Linux吸引許多開發者為其移植軟體,GNU系統軟體也被移植到了Linux,隨後形成了GNU/Linux的生態系,出現了許多GNU/Linux發行版,其中一些版本獲得了商業公司支持。在那之後,GNU/Linux便成為了自由軟體社群的主流開發平台。但是Hurd開發工作並沒有因為GNU/Linux崛起而停止,FSF一直維持專案運作,在那之後斷斷續續的進行開發。直到今天。

為什麼GNU/Hurd還要堅持開發下去呢?我覺得啦,雖然Linux是自由軟體,但對GNU計畫來說,Linux核心是外來者,無法受到FSF控制。而且Linux核心有自己的開發團隊,加上還在使用GPLv2沒有跟著GNU計畫的其他軟體一起更新到GPLv3,顯得不夠自由。因此GNU有自己專屬的作業系統核心才顯得有必要吧。

GNU/Hurd系統當初在自由軟體駭客圈子聲勢很高,連Linus Torvalds剛開始發表Linux核心的時候都稱自己的作品不會像GNU OS那樣專業 ( “I’m doing a free operating system just a hobby, won’t be big and professional like gnu for 386 AT clones.”) 。結果30年過去了,GNU/Linux大獲成功,GNU/Hurd止步不前,而且很多當時看來先進的設計在現代已經過時了。

根據一些網友的分析,專案失敗原因在於過度追求完美,他們想要設計一個全面超越Unix的核心,把架構弄得太複雜。還有專案缺乏明確發展方向與領導。因為去中心化的開發模式導致進度混亂,等到他們總算要開始認真做的時候,Linux已經超越GNU/Hurd很多了。

GNU/Hurd開發了30年,很長一段時間僅支援i386架構的處理器,直到2026年才開始支援amd64。可見其開發進度之緩慢。

論作業系統完成度,恐怕連FreeBSD都要比GNU/Hurd要高。對FSF的狂熱份子來說,GNU/Hurd是他們追求的聖杯。不過從實用面考量,要有一個實際可用的系統,還是只能屈就GNU/Linux。目前FSF官網推薦使用的自由作業系統,依然還是使用linux-libre核心的GNU/Linux為主。


從結構上來看,Hurd的設計跟Linux的整塊式核心截然不同。Hurd並非單一的核心,而是一個圍繞在GNU Mach微核心的一組伺服器程式,GNU Mach屬於微核心,只負責很小一部分的的底層操作工作,其餘操作由外圍的HURD servers完成,TCP/IP的驅動甚至可以跑在userland。GNU Mach基於Mach開發,以後見之明來看設計過時了,應該換成L4才對!但是現在的版本依然是使用GNU Mach。

只有Hurd核心並不足以構成作業系統,還要搭配GNU系統軟體,因此這個系統便可以稱之為GNU/Hurd。為了讓系統有更多軟體能用,1998年FSF成員建立了「Debian GNU/Hurd」這個專案,讓Debian的Linux軟體可以移植到GNU/Hurd系統。根據2019年的統計,Debian套件庫裡面的Linux軟體只有75%左右能在GNU/Hurd編譯。實際上還是缺很大,連Firefox瀏覽器都未能成功移植。

2015年,Guix套件管理器被移植到了GNU/Hurd,於是有了「Guix GNU/Hurd」這個專案。Guix是FSF成員自研的套件管理器,主打宣告式和可復現,讓系統方便部署與維護,可以想成是只收錄自由軟體的Nix。Guix屬於FSF旗下的專案,主要是在GNU/Linux系統使用。Guix作為FSF的官方項目,理應得到更多關照吧。因此目前Guix GNU/Hurd是除了Debian GNU/Hurd以外主要有在維護的GNU/Hurd發行版之一。

除了Guix GNU/Hurd外,還有Arch GNU/Hurd、Gentoo GNU/Hurd、Alpine GNU/Hurd等更瘋狂的專案。

但是!Guix GNU/Hurd可用套件比Debian更少,只有1%可用,而且Guix相較Debian套件之下更冷門,因此目前還是得用Debian GNU/Hurd比較好吧。

2. 取得Debian GNU/Hurd安裝檔
#

目前Debian GNU/Hurd可以在Debian Ports官網取得,分為32位元(hurd-i386)與64位元(hurd-amd64)版本。32位元版本因為開發比較久,所以可用套件數量應該會略多於64位元。

目前的版本基於Debian Sid建置,使用Debian Ports的套件庫,有專門為GNU/Hurd系統建置的套件庫(hurd-amd64)

我下載的是amd64架構的Debian GNU/Hurd。

*.img是預先安裝好系統的虛擬磁碟映像檔。透過QEMU開機就能用。

netinstall.iso則是含有Debian安裝程式的映像檔,允許手動分區。

3. 安裝Debian GNU/Hurd系統
#

目前Debian GNU/Hurd幾乎沒有實機安裝案例,硬體驅動支援度應該也很糟糕。所以只得使用虛擬機。我使用Virt Manager + QEMU/KVM虛擬機測試。

需要注意的是這個映像檔的GRUB尚不支援UEFI,需要用BIOS安裝

Debian GNU/Hurd的安裝過程跟一般Debian GNU/Linux差不多,依照GTK安裝器指示,一直下一步就好了。

但是我下載的20260314快照版,安裝器十分不穩定,隨時都會崩潰。因此後來我是用QEMU Preinstalled Image來測試系統的。

透過qemu-img resize調整虛擬磁碟大小。

然後建立QEMU開機指令。需要注意的是GNU/Hurd無法定址到2GB以上記憶體。

4. GNU/Hurd基本系統設定
#

  1. 開機後應該會進入終端機,使用root帳號登入。

  2. 登入後修改密碼

passwd root
  1. 編輯/etc/ssh/sshd_config啟用PermitRootLogin yes,用SSH從Linux宿主機登入:
ssh -p 2222 root@127.0.0.1
  1. 新增一般使用者,修改密碼
useradd -m -g users -G wheel,audio,video,storage -s /bin/bash user

passwd user

5. 系統管理
#

GNU/Hurd有自研的init系統,位於/hurd/init,可以用service指令管理系統服務。

Debian GNU/Hurd既然是Debian改的,那麼套件管理器當然就是APT了。

常用的GNU軟體都可以在Hurd找到,包含Glibc與GCC。

鑑於hurd-i386套件可能比hurd-amd64要多,可以在64位元的系統啟用32位元套件庫的支援以取得更多套件。

sudo dpkg --add-architecture  hurd-i386

sudo apt update

要安裝32位元版本的套件,只要在後面加上:hurd-i386後綴就行了 。例如,hurd-amd64套件庫有一個遠古版本的Firefox 45。

sudo apt install firefox:hurd-i386

6. 安裝XFCE桌面
#

GNU/Hurd支援不需要DRM的顯示卡驅動。

  1. 在虛擬機裡面,X.org X Server強制使用軟體渲染可行:
sudo apt install xorg

sudo dpkg-reconfigure x11-common xserver-xorg-legacy
  1. 編輯/etc/X11/xorg.conf,新增一個虛擬顯示器
Section "InputDevice"
        Identifier "Generic Keyboard"
        Driver "kbd"
        Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

Section "Screen"
   Identifier "myScreen"
   SubSection "Display"
      Virtual 1024 768
   EndSubSection
EndSection           
  1. 然後安裝XFCE桌面
sudo apt install lightdm xfce4 xfce4-goodies
  1. LightDM好像沒辦法啟動,只得手動startx
echo "/usr/bin/startxfce4" >> ~/.xinitrc

startx
  1. 關於瀏覽器嘛,Firefox和Chromium都沒有移植到GNU/Hurd,只得安裝w3m這類輕量瀏覽器:
sudo apt install w3m

參考資料
#

相關文章


此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

(留言板載入中)這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。