実身/仮身
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/23 09:21 UTC 版)
BTRONでは、ファイル管理モデルとして、従来のディレクトリ(フォルダ)によるツリー構造をなすモデルではなく、実身/仮身モデルと呼ぶ任意の有向グラフ構造をなすネットワーク型のモデルを採用している。BTRON2ではさらに全ての計算機資源を実身/仮身モデルで管理している。ユーザに提供される機能としては、BTRON(実装が広く使われているBTRON1やBTRON3)の実身/仮身モデルは手軽なハイパーテキスト環境となっている。 従来はファイルとフォルダとして、データを収める実体とそれを指し示すインデックスのまとまりとを区別していたわけであるが、BTRONではそのような区分けを廃した。実身/仮身モデルでは、データ本体全体を実身(じっしん、Real Object)とし、実身の中から別の実身を指し示すものを仮身(かしん、Virtual Object)としている。 実身はデータを保持するものという意味では、ファイルのようなものであるが、その内容として含む仮身によって別の実身を指し示す機能があるという意味ではフォルダのようなものでもある。 現在のほぼ全てのUnixでは、ディレクトリを指すようなエイリアスとなるハードリンクを作ることができないようになっているが、BTRONの実身/仮身のリンクは、そのようなリンクを含む任意のリンクを自由に作ることができるハードリンクのようなものである。Unixでは ".." で示される親へのリンクがひとつしかないということが問題となるが、BTRONではそもそもツリー状に管理することを放棄しているため問題とならない。 リンクが削除されることで、実身が参照されなくなったことの確認はUnixのファイルシステムなどと同様に参照カウント方式でおこなわれているが、任意の構造が許されているために、参照カウント方式の弱点としてよく知られている通りループがあるとどこからもたどりつけないのにディスク容量を占領し続ける、という実身が発生し得る。現状では、ファイルシステムを一旦切り離すか、(システムディスクの場合は)システムを特別な状態で起動し、fsck同様のチェックと同時にいわゆるストップ・ザ・ワールド方式のガベージコレクションをおこなってそのような実身をチェックする機能が実装されている。 また、従前のたいていのファイルシステムと異なり、基本的には名前(「実身名」)をシステム側での識別には(IDとしては)使わないことになっているため、ユーザは自由に名前を付けることができる(現状では実装上の理由で長さの制限がある)。 現在BTRONの使用感覚を再現したソフトとしてWindows用のBTMemoがある。 現存のBTRON3およびBTRON1の実装では、以上の機能をマルチレコード機能を持ったファイルシステム上に実現している。1ファイルが1実身に対応し、データ本体を含むレコードがあり、その他に、その実身が含む仮身が指す先の実身に対応するファイルを指す「リンクレコード」を持っている。このような設計であるため、TADによる実身データそのものは、基盤となるシステムにおけるリンクの表現方法の影響を受けない。
※この「実身/仮身」の解説は、「BTRON」の解説の一部です。
「実身/仮身」を含む「BTRON」の記事については、「BTRON」の概要を参照ください。
- 実身/仮身のページへのリンク