Googleの研究者Laurie Kirk氏が、XとLinkedInにおいて、Windows NTのカーネル設計を高く評価し、Linuxとの設計思想の違いやAIエージェント時代における権限管理について意見を述べた。同氏はMicrosoftで4年間、リバースエンジニアとして勤務した経歴を持ち、現在はGoogleに所属している。
Windows NTのオブジェクト設計を再評価
Kirk氏が評価しているのはWindowsの画面やCopilotなどではなく、Windows NTの基盤となる「NTカーネル」だ。1993年に初期バージョンが登場して以降、主要なWindows製品の基盤となっている。
NTの特徴としてKirk氏が挙げるのが、オブジェクトを中心とした設計だ。古典的なC++言語の「オブジェクト指向」ではなく、コンポーネントをオブジェクトとして捉える考え方を指す。
プロセス、スレッド、ファイルなどはオブジェクトとして扱われ、オブジェクトマネージャーによって管理される。アプリケーションはハンドルを通じてオブジェクトへアクセスし、ハンドルには許可されたアクセス権が関連付けられる。
アプリケーションからはハンドルを通じてオブジェクトを扱う。ファイルを開くとWindowsは許可された権限を伴うハンドルを返し、その後の要求はハンドルが持つ権限に基づいて動作する。
Linuxとの設計思想の違い
Kirk氏はLinuxの権限管理について、UID、GID、ACL、cgroup、ポリシー、SELinux、ファイルシステムモードなど複数の仕組みを挙げ、権限モデルが単一ではないと指摘する。LinuxではUIDとGIDがユーザーやグループを識別し、ファイルモードやACLがファイルを保護する。
Capabilitiesはrootの権限を分割し、Namespaceはプロセスから見えるファイルシステムやプロセス、ネットワークなどを分離する。cgroupはCPUやメモリを制限し、SELinuxなどのセキュリティモジュールは追加のセキュリティポリシーを適用する。
NTカーネルが単一のオブジェクトモデルを採用しているのに対し、LinuxはUNIXを基盤とする柔軟な仕組みを発展させてきた。どちらが優れるかは視点次第であり断言できるものではないが、Kirk氏がNTカーネルに軍配を上げたことで、投稿の返信欄では反論意見が出ている。
AIエージェントにLinuxは不向きと考える理由
論争の焦点はAIエージェントにも及ぶ。人間の管理者が1つずつ操作する場合と異なり、AIエージェントは短時間に大量の処理を実行し、自ら生成したコードを動かしたり、ファイルを読み込んだり、複数の権限を連鎖させたりできる。このため、ソフトウェアに何を許可し、どの資源へ、どの範囲でアクセスさせ、その行動をどう監査するかが課題となる。
Kirk氏は、NTのように資源を明確な型として扱う設計なら、エージェントの権限を管理しやすく、誤作動を起こした場合においても監査記録を残すことができると主張する。ただし、これは個人の見解だ。
LinuxにもLandlockがあり、特権を持たないプロセス自身がファイルシステムやネットワークへのアクセスを制限できる。制限は子プロセスに受け継がれ、拒否されたリクエストはデフォルトで監査ログに記録される。
AIエージェント時代のOSに求められるもの
今回の論点は、NTとLinuxのどちらが優れているかではない。AIエージェントが人間の代わりに処理を実行する未来のコンピューティング環境では、幅広い権限管理と実行結果の監査が重要な要素となる。これをどのように実現するべきかという問いかけだ。
Kirk氏はNTカーネルがオープンに開発された場合に、この課題に適した答えになる可能性があると指摘する。しかしMicrosoftがWindowsの基盤コードをオープンソース化するとは考えられず、実現可能性は低い。
同氏も「別の歴史を想像する」と述べ、想像の域を出ないことを認めている。それでも新規にAIエージェント主体のオペレーティングシステムを開発するのであれば、少なくともLinuxよりもNTカーネルに近い設計になるはずだと主張している。
