「... Infernoアーキテクチャの基礎の1つ-ファイルデバイスを使用したUnixのアイデアは限界に達しました。Infernoでは、ファイルは絶対にすべてです...」 powerman 。 そして、上記に照らして、データベースはどのように見えるでしょうか?
wm /カレンダープログラムの多言語ユーザーインターフェイスの可能性に慣れると、誤って可能な実装に遭遇しました...
Inferno OSには、データベースをファイルシステムの形で表す興味深い方法があります。 これを行うには、データベースをファイルシステムとしてマウントするdbfs、rawdbfsコマンドを使用します。
たとえば、カレンダーデータベース(wm / calendar)を考えます。
rawdbfs -e user / inferno / cal / mnt / schedule
/ mnt / scheduleフォルダーのuser / inferno / calファイルからデータベースをマウントします(calファイルが存在しない場合は、-eスイッチのおかげで作成されます)。 マウントポイントで、ファイルのリストが生成されます。各ファイルはデータベース内の1つのエントリに対応しています。 これにより、対応するファイルを作成、削除、書き込み、読み取りすることにより、データベースレコードを操作できます。 新しいファイルに書き込むと、新しいエントリが作成されます。
%echo 20071107 1> / mnt /スケジュール/新規
空のメレンゲで、彼らはチェックする最初のレコードを作成しました:
%ls / mnt /スケジュール
/ mnt /スケジュール/ 0
/ mnt /スケジュール/新規
エントリー番号はゼロです:
%cat / mnt /スケジュール/ 0
20071107 1
dbfsとrawdbfsの主な違いは、データの保存方法です。 最初のケースでは、エントリが空の文字列で区切られている通常のテキストファイルが使用されます。 2つ目は、1つのレコードのみを変更するときにデータベースファイル全体を上書きしない特別な形式です。これは、フラッシュドライブに適しています。
Infernoには他のデータベースがあります。「フォーマット」で動作するdbm、attrdbモジュールがあります。 メインオペレーティングシステムのデータベースにアクセスできるdbsrvモジュール(InfernoがゲストOSとして使用されている場合)。