ディスカッション (8件)
「LinuxはOSというよりも、むしろインタプリタである」という捉え方があります。システム上のあらゆるリソースがファイルとして抽象化され、コマンドラインを通じて対話的に操作できるその設計思想を紐解いてみましょう。
まぁ、Linuxってのは、実行可能でプログラミング可能なタスクのための汎用インターフェースみたいなもんだよな。Windowsでも同じことができるけど、個人的にはLinuxの方がその手の作業には向いてると思う。唯一Windowsの方がマシかもしれないのはGUIかな。WindowsのUIには死ぬほどイライラさせられるけど、GNOMEもKDEも同じようにイライラするんだよね。最近はfluxboxかicewm、気分が乗ればxfceやmate-desktopを使うこともあるけど、基本的には「ハードコアなデスクトップ全盛期」は終わったかな。今は速くて効率的でシンプルなのがいい。仕事の95%くらいは、コマンドラインと少しのブラウジング、あとはエディタでコード書いたりテキスト打ったりするだけで完結してるし。
シリーズの前の方にあったやつだけど、「最初は、あらかじめ用意されたディスクイメージからVPSを起動するためだけに、Contaboにオブジェクトストレージ代として月1.50ドル払いたくなかったから始めた」って話だよね。「1.50ドル節約するために50時間費やす」のと「全エンジニアがAIトークンに月25万ドル溶かすべき」の間には、ちょうどいい落とし穴(スイートスポット)があると思う。ホスト側の従業員だって食べていかなきゃいけないし、月1.50ドルすら払えないなら、それはプロとは言えない。従量課金のインフラにお金を払ってるプロが支えてる本物のインフラにタダ乗りしてるだけ。もっと極端な例もあって、GitHub PagesやVercelのサブドメインだけでやりくりしてるデベロッパーも何千人もいる。だからVPSを持ってるだけで競争力はあるけど、月1.50ドルを惜しむのは結構キツい状況だよね。そこまで行くと技術的なスキルがボトルネックなんじゃなくて、社会的な活動が必要なんじゃないかな。経済的にピンチな時にcurlでDOOMを動かすことに執着するのは、あまり生産的な時間の使い方じゃない。自分もそういう状況にいるから、深読みしすぎかもしれないけど。
全てのOSって、カーネル権限を持ったマシンコードのインタプリタなんじゃないの?
誤解だらけで読んでて辛い記事だった。cpioアーカイブはファイルシステムじゃない。筆者はtmpfsベースのinitramfsを使ってるけど、Linuxはcpioをtmpfsに展開できるだけ。ファイルやディレクトリのアーカイブ自体はプログラムじゃないんだ。見た目が似てるからって、同じってわけじゃない。バイナリプログラムはCPUで実行されるから、もしインタプリタが介在してるとしたらそれはハードウェア環境に隠れてる。それはOSカーネルの範囲外だよ。ファイルシステムにシェルスクリプトがあってそれを動かすなら、スクリプトを解釈するシェルも必要になる。筆者はその詳細を省いて、カーネルとシェルプログラムを混同してるね。Linuxはinitramfsやramdiskのサポートなしでも簡単にコンパイルできる。それでもファイルシステム上のユーザーランドにあるものなら何でも起動して動かせるし。「Linux initrd インタプリタ」なんて言葉、頭が痛くなる。そんな仕組みじゃないよ。追記:もっと読み進めるべきだったけど、それでも説明の仕方が本末転倒だと思う。
man ld.soを見てみなよ:「...(この場合、ダイナミックリンカーへのコマンドラインオプションは渡せず、ELFの場合はプログラムの .interp セクションに格納されているダイナミックリンカーが実行される)」 ELFセクションの名前がどうなってるか注目。
チューリングのシータ・コンビネータ
すべてがインタプリタなの?