言語でデスクトップ世界を創造する——言語学の角度から見るNixOSの哲学
Creating a Desktop by Language: The Philosophy of NixOS

この記事は、私が言語学のSemanticsの授業を受け、そのうえでしばらくNixOSで遊んだ後、一時の思いつきでChatGPTに協力してもらい、でっち上げた文章である。私がアウトラインを書き、その後AIに細部の補足を頼んだ。壇上で発表した時、教授を含め全員がわけのわからない顔をしていた。
実は私自身も、自分が何を言っているのかわからない。
1. 第三のOS#
マスター・ヨーダは言った:There’s another。
OSの世界には、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 = OSの構文木
各パッケージ設定は言語単位(lexeme)
OS全体は発話の実現(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
- Immutable
システムは勝手に変更されない。
システムは「不変」であり、変更のたびに新しいバージョンが生成される。
私たちは、自然言語における統語規則は、一度成立すれば突然意味を変えず、意味を安定して予測できるようにすると仮定する。
あなたは一文を話している途中で文法が爆発することはない。NixOSも同じだ。
言語の本質は曖昧だが、意味論は「変化に抵抗する」努力をしている!
意味論(semantics)は意味が固定されることを保証しない。しかしその目標の一つはまさに——意味を予測可能、再現可能にする枠組みを作ることだ。この点はNixOSの設計哲学「同じ入力 → 同じ結果」と非常によく似ている。
言い換えれば:
自然言語では、私たちは異なる文脈でも意味を安定させる方法を研究する;
NixOSでは、時間と環境によって設定が変わらないようシステムを設計する。
Immutable ≠ 不変の意味ではなく、制御可能な意味である。
自然言語では、語義は時間とともに変わる。たとえばliterallyは今では比喩を表すためによく使われる。
しかし意味論者の目標は、曖昧性を制御し、意味を予測できるシステムを作ることだ。
NixOSのimmutable設計——それは世界が変わらないことを保証するのではなく、私たちが意味を追跡、回溯、再構築できることを保証する。
言い換えれば、言語学とNixOSはいずれも「意味またはシステムのエントロピー増大」と戦っている。
- Atomic
成功するか、変わらないかのどちらか。
システム更新時、NixOSは「原子的」であり、すべて成功するか、完全に動かないかのどちらかだ。停電してシャットダウンした後でさえ、システムは動作できる。自然言語の文が完全でなければ意味を持たず、主語だけで動詞がない状態ではいけないのと同じだ。
- Reproducible
完璧に再構築できる。
システム全体を一つの関数と見なせるため、System as Codeの理念に従えば、毎回固定された出力がある。
NixOSの同じ設定ファイル → どのPCでも、どの日でも、結果は同じ。
少し構文規則に似ている:同じ構文なら、どこに置いても同じ意味を生成できる。
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


