3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

UdonTechAdvent Calendar 2021

Day 9

Udon TechメンバーのGoを知ってる人向けのPlan 9 from Bell labs

Posted at

今更ながらPlan 9 from Bell labsの紹介です。どちらかというと言語のGoを知ってる人向けに書きますね。
よくPlan 9と呼ばれますが、正確にはPlan 9 from Bell labsが正式名称です。
しかし、この記事でずっとPlan 9 from Bell labsと書き続けるのはしんどいのでPlan 9と今後書いていきますね。

Plan 9とはどういうOSかというと、今は結構普及した言語であるGoを開発したRob PikeやKen Thompsonが中心に開発したOSです。
言語の流れからすると、最初にCがあって、その後Plan 9の時にCも改修されPlan 9 Cがあって、その後Alefが出てきて、Plan 9の後継のOSとしてInfernoが開発された時の言語としてLimbo(その後Plan 9にもLimboを移植)が来て、そしてその開発者がみんなGoogleに行ってしまって、今のGoがある訳です。詳細はかどたさんのブログ記事の方が詳しいです。

Plan 9の特徴としてはたくさんありますが、幾つか列挙しますと、
・UTF-8を最初に実装されたOS
・/proc
・9P
・Cはcreatがcreateにちゃんと修正されている
・shellはrc
・Windows systemはrio
・namespace
・UNIXの流れとしては正統な系譜のOS
・CPUサーバー、ファイルサーバー、認証サーバー、ターミナルの4種類に分割可能

とか、挙げだすときりがないくらいですし、今のLinux等のOSに取り込まれてるものが結構多いですね。UTF-8や/proc,ファイルシステムを被せるNetBSDでいうunionfs的なnamespaceとか本当に挙げだすときりがないです。
そんなPlan 9の大きな特徴としてCPUサーバーを立てて、9PでCPUリソースを持ってくる事が可能という事で、ターミナルのCPUが貧弱であってもCPUサーバーのCPUが高速であれば問題ないというものです。それも前提としてはネットワークは無限に速いという前提です。
ファイルサーバーとの共有も9Pです。
9Pって実はいろんなものにこっそり入っていて、最近ですとChromebookにこっそり入っていて、アップデートの時に9Pを一瞬使っているらしいです。

そんなPlan 9ですが、Bell Labsが解散してから色々中途半端な状態で宙に浮いた状態でしたが、最近はforkした9legacy中心にだと思いますが、今年Plan 9のライセンスがLPLからMITに変更され、Plan 9 foundation中心に分散したパッチのマージしていくように見えます。
また、後継のOSのInfernoのライセンスも同時にMITに変更されて、こちらも同様の動きがみられます。
ちなみにInfernoの方はMMU無しでも動く組み込み系にも使えるOSですし、色んなOS上でも動く仮想OS的な物としても使えるものです。そちらはまた別の時にでも書きます。

次回は9PやInfernoの記事にしましょうか?

とりあえずは、こんな感じで。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?