快轉到主要內容

用語言創造Linux桌面世界——從語言學角度看NixOS程式的哲學

· 民國114年乙巳年
·
切換繁體/簡體
分類   人文藝術 自由軟體議題
標籤   Immutable Distro Linguistics
目錄

用語言創造桌面世界——從語言學角度看NixOS的哲學

Creating a Desktop by Language: The Philosophy of NixOS

這篇文章是我上了語言學的Semantics課程之後,再加上玩了一陣子NixOS,一時興起讓ChatGPT協助胡謅出來的一篇文章,我寫好大綱,然後請AI協助補充細節。當我在台上報告的時候,包括教授在內的所有人都一頭霧水。

其實我也不知道自己在工三小。

1. 第三個作業系統
#

尤達大師說過:There’s another。

作業系統的世界,除了 Windows 和 macOS,其實還有第三個強大的系統世界:Linux。

如果 Windows 是便利商店、macOS 是精品咖啡廳,那 Linux 就像自己種豆子、自己烘、自己煮的咖啡愛好者。並且Linux可以有很多間分店,每間分店有自己的配方,這稱之為Linux發行版。

Linux 的一個特別發行版 —— NixOS。

它不只是系統,還是一種「用語言描述電腦世界」的哲學。

從語言談起NixOS。

如果語言的意思是可以用數學或邏輯規則表達的,那我們就能把語言變成像程式一樣精確的東西。

說話也是在創造世界,所有的輸入與輸出都可以看成一個函數,怎樣的輸入必然得到怎樣的結果,沒有例外。

這邊聽起來有點瘋對吧?但語言學家 Montague 也曾經試圖把語言變成數學公式,所以我只是延續傳統而已(笑

2. 語言學概念
#

英國哲學家約翰·奧斯丁提出「說話行為」(Speech Act Theory)在說出某句話就能改變現實,例如「我宣布你們結為夫妻」。

那如果我們能用語言不只是結婚,而是『讓一整個電腦軟體世界出現』呢?」

NixOS它讓你只要寫下一份設定檔,整個系統就會自己生成。

NixOS即利用Nix套件管理器組成的宣告式系統。

一般 Linux系統是你要自己安裝每個軟體、自己設定

NixOS 則是你只要用幾行文字說明你要的世界,它就會自動建好。

Declarative vs. Imperative

傳統Linux是imperative:用指令「一步步」操作系統

NixOS乃declarative:用設定檔「描述」理想狀態,一蹴可幾。

System as Code:語言的具象化

Nix configuration file = 作業系統的語法樹

每個套件設定都是語言單位(lexeme)

整個作樂系統是語句的實現(utterance)

寫成公式的話

對於NixOS系統而言

system = f (configuration.nix)

在語意學裡面

meaning = f (syntax, context)

一小段Nix設定檔範例:

{
  services.desktopManager.plasma6.enable = true;

  services.displayManager.sddm.enable = true;

  services.displayManager.sddm.wayland.enable = true;
}

這行文字的意思就像一句祈使句:

讓KDE桌面出現吧!一執行nixos-rebuild switch指令,系統真的照辦,沒有亂七八糟的錯誤或版本地獄。

3. NixOS的三個神奇特性
#

最常被提及的好處:

  • Immutable
  • Atomic
  • Reproducible
  1. Immutable

系統不會被亂改。

系統是「不可變」的,每次改動都會生成一個新的版本。

我們假設,自然語言中的句法規則,一旦成立,不會忽然改變意思,讓意義能夠穩定的被預測。

你不會講一句話講到一半語法爆炸,NixOS 也不會。

語言本質是模糊的,但語意學努力「抵抗變化」!

語意學(semantics)並不保證語意固定,但它的目標之一正是——建立一個讓語意可預測、可重現的框架。這點跟 NixOS 的設計哲學「相同輸入 → 相同結果」非常像。

換句話說:

在自然語言中,我們研究怎麼讓意義在不同語境中仍然穩定;

在 NixOS 中,我們設計系統讓設定不會被時間與環境改變。

Immutable ≠ 不變的語意,而是可控制的語意。

在自然語言中,詞義會隨時間變化,例如literally現在常被用來表示比喻。

但語意學家的目標是建立一套能控制歧義、預測意義的系統。

NixOS的immutable設計——它不保證世界不變,但保證我們可以追蹤、回溯、重建意義。

換句話說,語言學與NixOS都在對抗「語意或系統的熵增」

  1. Atomic

要嘛成功,要嘛不變

在更新系統的時候,NixOS是「原子性的」,要嘛全部成功,要嘛完全不動。甚至在斷電關機後系統仍能運作。就像自然語言裡的句子要完整才有意義,不能只有主詞沒有動詞。

  1. Reproducible

可以完美重建。

因為整個系統可以視為一個函數,依照System as Code的理念,每次都有固定的輸出。

NixOS的同一份設定檔 → 不論哪台電腦、哪一天,結果都一樣。

有點像語法規則:一樣的句法,放哪裡都能生成同樣意思。

KDE Plasma桌面:語言具現化的樣子

KDE Plasma是 NixOS 上最受歡迎的桌面環境之一,設計優雅、可客製化。雖然自訂性高,不過也有點複雜。在NixOS,你不再用滑鼠一個個設定外觀,而是用語言寫出你的理想桌面。

這就像詩人用語言建構想像世界,只是我們建的是數位世界。

我不是在教大家寫程式,而是在講語言哲學在電腦世界的延伸。

4. 從混亂到秩序:Linux的「熵」與語言的「熵」
#

傳統Linux的熵增問題是什麼呢?

傳統 Linux 的軟體管理是imperative的:你手動安裝、移除套件。各種 dependency、版本、config 都可能互相污染。時間久了就變成「系統熵增」:你不知道哪些套件為何存在,也不敢輕易動它。

手動安裝軟體,依賴混亂、版本衝突、不可逆。系統狀態將不再可重現,進入「軟體熵增」。

語言中也可以用熵(Information Entropy)來解釋。

Shannon熵提到了語言的不確定性、可預測性。

自然語言透過語法對抗混亂,維持可理解性。

如果將NixOS作為對抗系統熵的語言實驗?

訊息熵(information entropy)用來衡量語言資訊的不確定性或預測難度。

語言中的「熵」越高,代表句子越難預測、越混亂。

例如:「狗叫」的語意可預測性高、熵低;而「紫色的概念在跳舞」這句則熵高,因為語意出現的機率極低。

語言學家 Zipf 和 Shannon 都發現:自然語言雖然表面看似混亂,但整體遵守某種統計秩序(如Zipf’s law)。

所以語言系統其實在「對抗熵增」:它透過規則、語法、語意限制來壓制混亂,維持可理解性(order within chaos)。

NixOS的哲學是對抗系統熵增的語言實驗。透過declarative的設定檔與不可變架構(immutable store),它讓系統狀態始終可重現(reproducible)、可回溯(atomic rollback)。

NixOS 用語言與版本控制維持秩序,每個設定宣告都是一個「語法規則」,抑制混亂。

語言學研究如何維持意義的穩定,NixOS 研究如何維持系統的穩定。

NixOS 的declarative架構就像「語法規則」,讓秩序重新回來。

根據Shannon的「資訊熵」概念,以「可預測性」來講。

即「語言壓制混亂以維持理解,NixOS壓制系統熵以維持秩序。」

5. 結論:從秩序創造語言
#

在語言中我們構築思想,在 NixOS 中我們以語言構築現實。

當其他系統被熵吞噬時,NixOS 仍以語法維持秩序。

References
#

  • Austin, J. L. (1962). How to Do Things with Words.
  • Shannon, C. E. (1948). A Mathematical Theory of Communication.
  • Zipf, G. K. (1949). Human Behavior and the Principle of Least Effort.
  • NixOS Manual Documentation

相關文章

比較Ubuntu與Linux Mint有何不同?桌面使用者應該選哪一個?
分類   人文藝術 自由軟體議題
標籤   Linux Mint Ubuntu GNOME Snap
為什麼推薦你選擇主流Linux發行版?小眾發行版的問題多多
分類   人文藝術 自由軟體議題
標籤   Free Software Ubuntu Fedora Systemd Freedesktop Specifications
使用Linux四年後的心得,我覺得Wayland已經能用了...吧
分類   人文藝術 自由軟體議題
標籤   Linux

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

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

Click here to edit your comments.

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