デバイスファイル

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

Unixライクな オペレーティングシステムで はデバイスファイルまたは特殊ファイル、通常のファイルであるかのようにファイルシステムに表示されるデバイスドライバへのインターフェイスです。DOSOS / 2、およびWindowsには特別なファイルもありますこれらの特別なファイルを使用すると、アプリケーションプログラムは、標準の入出力システムコールを介してデバイスドライバを使用してデバイスと対話できます標準のシステムコールを使用すると、多くのプログラミングタスクが簡素化され、デバイスの特徴や機能に関係なく、一貫したユーザースペースI/Oメカニズムが実現します。

デバイスファイルは通常、標準デバイス(プリンタやシリアルポートなど)へのシンプルなインターフェイスを提供しますが、ディスクパーティションなど、それらのデバイス上の特定の一意のリソースにアクセスするためにも使用できます。さらに、デバイスファイルは、データシンク乱数ジェネレータなど、実際のデバイスとは関係のないシステムリソースにアクセスする場合に役立ちます

Unixライクなオペレーティングシステムには、文字特殊ファイルブロック特殊ファイルとして知られる2種類の一般的なデバイスファイルがありますそれらの違いは、オペレーティングシステムとハードウェアによって読み書きされるデータの量にあります。これらを合わせて、デバイスに接続されていないが通常のファイルでもない 名前付きパイプとは対照的に、デバイス特殊ファイルと呼ぶことができます。

MS-DOSは、Unixから特殊ファイルの概念を借用しましたが、それらの名前をデバイスに変更しました。[1]初期バージョンのMS-DOSはディレクトリ階層をサポートしていなかったため、デバイスは、名前を予約語にすることで通常のファイルと区別されていました。たとえば、悪名高いCONこれらはCP/Mとのある程度の互換性のために選択され、下位互換性のために最新のWindowsにまだ存在しています。

一部のUnixのようなシステムでは、ほとんどのデバイスファイルは、実行時にハードウェアの追加と削除を監視し、デバイスファイルシステムに対応する変更を加える制御デーモンに関連付けられている、従来の方法でマウントされた仮想ファイルシステムの一部として管理されます。カーネルによって自動的に実行されるわけではなく、特別なデバイスのニーズを処理するためにシステムまたはユーザースペースでスクリプトを呼び出す可能性があります。FreeBSDDragonFly BSDおよびDarwinには、専用のファイルシステムdevfsがあります。デバイスノードは、カーネル空間でこのファイルシステムによって自動的に管理されますLinuxには以前同様の開発者がいました/dev実装されていますが、後で放棄され、バージョン2.6.17以降削除されました。[2] Linuxは現在、主にudevと呼ばれるユーザースペースの実装を使用していますが、多くのバリエーションがあります。

Solarisコンテナなどのchrootプロセス分離をサポートするUnixシステムでは、通常、各chroot環境には独自の;が必要です。これらのマウントポイントは、ホストOSのグローバルファイルシステムツリーのさまざまなノードに表示されます。のchrootインスタンスに入力されるデバイスノードを制限することにより、ハードウェアの分離をchroot環境によって強制できます(プログラムは、表示も名前も付けられないハードウェアに干渉することはできません。Unixファイルシステムのアクセス許可よりも強力なアクセス制御の形式です)。 /dev/dev

各デバイスファイルを排他的に開くことにより、MS-DOSで管理されるハードウェアデバイスの競合(TSRを参照)。すでに使用されているデバイスにアクセスしようとするアプリケーションは、デバイスファイルノードを開くことができないことを発見します。同時アクセスに関して、さまざまなデバイスドライバセマンティクスがUnixおよびLinuxに実装されています[3]

UnixおよびUnixライクなシステム

Linuxカーネルの単純化された構造。ファイルシステムは、I/Oサブシステムの一部として実装されます。

デバイスノードは、オペレーティングシステムのカーネルがすでに割り当てているリソースに対応しています。Unixは、これらのリソースをメジャー番号マイナー番号[4]で識別し、どちらもノードの構造の一部として格納されますこれらの番号の割り当ては、さまざまなオペレーティングシステムおよびさまざまなコンピュータプラットフォームで一意に行われます。一般に、メジャー番号はデバイスドライバーを識別し、マイナー番号はドライバーが制御する特定のデバイス(おそらく多くのうち)を識別します。[5]この場合、システムはマイナー番号をドライバーに渡すことができます。ただし、動的な番号割り当てが存在する場合、これは当てはまらない場合があります(たとえば、FreeBSD 5以降)。

他の特殊なファイルタイプと同様に、コンピュータシステムは標準のシステムコールを使用してデバイスノードにアクセスし、それらを通常のコンピュータファイルのように扱います。2つの標準タイプのデバイスファイルが存在します。残念ながら、それらの名前は歴史的な理由からかなり直感に反しており、その結果、2つの違いの説明が正しくないことがよくあります。

キャラクターデバイス

文字特殊ファイルまたは文字デバイスは、ハードウェアデバイスへのバッファなしの直接アクセスを提供します。プログラムが一度に1文字を読み書きできるとは限りません。それは問題のデバイス次第です。たとえば、ハードディスクの文字デバイスでは、通常、すべての読み取りと書き込みをブロック境界に揃える必要があり、1バイトの読み取りを許可しないことは間違いありません。

キャラクターデバイスは、ブロックベースのハードウェアのキャラクターデバイスが通常、整列されたブロックの読み取りと書き込みを行うプログラムを必要とするという事実を取り巻く混乱を避けるために、 rawデバイスと呼ばれることもあります。

デバイスをブロックする

特殊ファイルのブロックまたはデバイスのブロックは、ハードウェアデバイスへのバッファリングされたアクセスを提供し、それらの詳細からの抽象化を提供します。[6]文字デバイスとは異なり、ブロックデバイスでは、プログラマーは常に任意のサイズ(1文字/バイトを含む)および任意の配置のブロックを読み書きできます。欠点は、ブロックデバイスがバッファリングされるため、プログラマーは、書き込まれたデータがカーネルのバッファーから実際のデバイスに渡されるまでにかかる時間、または実際に2つの別々の書き込みが物理デバイスに到着する順序を知らないことです。さらに、同じハードウェアがキャラクターデバイスとブロックデバイスの両方を公開する場合、キャラクターデバイスを使用するクライアントがブロックデバイスのバッファーで行われた変更を認識しないため、データが破損するリスクがあります。

ほとんどのシステムは、ハードディスクなどのハードウェアを表すためにブロックデバイスとキャラクターデバイスの両方を作成します。FreeBSDとLinuxは特にそうではありません。前者はブロックデバイスのサポートを削除しましたが[7]、後者はブロックデバイスのみを作成します。Linuxでは、ディスク用の文字デバイスを取得するには、「raw」ドライバーを使用する必要がありますが、Linux固有のO_DIRECTフラグ を使用してブロックデバイスを開くことで文字デバイスを開くのと同じ効果を得ることができます。

疑似デバイス

Unixライクなシステムのデバイスノードは、必ずしも物理デバイスに対応している必要はありません。この対応がないノードは、疑似デバイスのグループを形成します。これらは、オペレーティングシステムによって処理されるさまざまな機能を提供します。最も一般的に使用される(文字ベースの)疑似デバイスには、次のものがあります。

さらに、 ioctlインターフェイスを備えたBSD固有の疑似デバイスには、次のものも含まれる場合があります。

ノードの作成

ノードは、mknodシステムコールによって作成されます。ノードを作成するためのコマンドラインプログラムは、 mknodとも呼ばれます。ノードは、通常のファイルシステムシステムコール(renameunlink)およびコマンドmvrm)によって移動または削除できます。

一部のUnixバージョンには、ディレクトリ/devに必要なすべてのデバイスを作成するためのmakedevまたはMAKEDEVという名前のスクリプトが含まれています。これは、デバイスにメジャー番号が静的に割り当てられているシステムでのみ意味があります(たとえば、カーネルモジュールにハードコーディングすることによって)。

FreeBSDなどの他の一部のUnixシステムは、devfsのみを介したカーネルベースのデバイスノード管理を使用し、手動ノード作成をサポートしていませんでした。posIXとの互換性を維持するためにmknod(2)システムコールとmknod(8)コマンドが存在しますが、devfsの外部で手動で作成されたデバイスノードはまったく機能しません。[9]

命名規則

次のプレフィックスは、デバイスのタイプを識別するために、/dev階層 内の一部のデバイスの名前に使用されます。

一部のオペレーティングシステムでは、いくつかの追加のプレフィックスが一般的に使用されるようになりました。

  • fbフレームバッファ
  • fd :(プラットフォーム)フロッピーディスク。ただし、この同じ略語は、ファイル記述子を参照するためにも一般的に使用されます。
  • hd:( "classic")IDEドライバー(以前はATAハードディスクドライブ、ATAPI光ディスクドライブなどに使用されていました)
    • hda:最初のATAチャネルのマ​​スターデバイス(通常、メジャー番号3とマイナー番号0で識別されます)
    • hdb:最初のATAチャネルのスレーブデバイス
    • hdc:2番目のATAチャネルのマ​​スターデバイス
    • hdd:2番目のATAチャネルのスレーブデバイス
  • parportppパラレルポート
  • memメインメモリ(キャラクターデバイス)
  • NVMeドライバー:
    • nvme0:最初に登録されたデバイスのデバイスコントローラー(キャラクターデバイス)
    • nvme0n1:最初に登録されたデバイスの最初の名前空間(ブロックデバイス)
    • nvme0n1p1:最初に登録されたデバイスの最初の名前空間の最初のパーティション(ブロックデバイス)
  • MMCドライバー:
    • mmcblk : MMCメディア用のストレージドライバー( SDカード、ラップトップ上のeMMCチップなど)
      • mmcblk0:最初に登録されたデバイス
      • mmcblk0p1:最初に登録されたデバイスの最初のパーティション
  • SCSIドライバー。libATA(最新のPATA / SATAドライバー)、USBIEEE1394など でも使用されます。
    • sd:マスストレージドライバー(ブロックデバイス)
      • sda:最初に登録されたデバイス
      • sdb、sdcなど:2番目、3番目などの登録済みデバイス
    • ses:エンクロージャードライバー
    • sg:汎用SCSIレイヤー
    • sr:「ROM」ドライバ(データ指向の光ディスクドライブ。scdは単なるセカンダリエイリアスです)
    • st磁気テープドライバー
  • tty端末
    • ttyS :(プラットフォーム)シリアルポートドライバー
    • ttyUSB:USBシリアルコンバーター、モデムなど。

Linuxで使用されるプレフィックスの正規リストは、Linuxオペレーティングシステムに割り当てられたデバイス番号と/devディレクトリノードの公式レジストリであるLinuxデバイスリストにあります。[10]

ほとんどのデバイスでは、このプレフィックスの後に特定のデバイスを一意に識別する番号が続きます。ハードドライブの場合、デバイスを識別するために文字が使用され、パーティションを識別するために数字が続きますしたがって、ファイルシステムは、たとえば/ dev / sda3としてディスク上の領域を「認識」したり、 / dev / pts/14に関連付けられたネットワーク端末セッションを「参照」したりする場合があります。

通常のPCマスターブートレコードを使用するディスクでは、プライマリおよびオプションの拡張パーティションのデバイス番号は1〜4の番号が付けられ、論理パーティションのインデックスは、以前のパーティション(親が拡張されたパーティション)のレイアウトに関係なく5以降になります。パーティションはディスク上の4番目のパーティションである必要はなく、4つのプライマリパーティションすべてが存在する必要もありません)。

デバイス名は通常、異なるUnixライクなシステムバリアント間で移植できません。たとえば、一部のBSDシステムでは、IDEデバイスの名前は/ dev / wd0/ dev/wd1などです。

devfs

devfsは、デバイスファイルを表示するために使用されるUnixライクなオペレーティングシステム上のデバイスファイルシステムの特定の実装です。実装の基本的なメカニズムは、OSによって異なる場合があります。

これらの特別なファイルを物理的に実装されたファイルシステム(つまり、ハードドライブ)に保持することは不便であり、とにかくカーネルの支援が必要なため、物理的に保存されない特別な目的の論​​理ファイルシステム のアイデアが生まれました。

また、デバイスがいつ表示される準備ができているかを定義することは、完全に簡単ではありません。devfsアプローチは、デバイスドライバーが、有効または無効にするデバイスに関連するdevfsエントリの作成と削除を要求するためのものです。

PC DOS、TOS、OS / 2、およびWindows

デバイスファイルは、PC DOSTOSOS / 2、およびWindowsシステムで使用される予約済みのキーワードであり、特定のポートおよびデバイスへのアクセスを許可します。

MS-DOSは、Unixから特殊ファイルの概念を借用しましたが、それらの名前をデバイスに変更しました。[1]初期バージョンのMS-DOSはディレクトリ階層をサポートしていなかったため、デバイスは名前を予約語にすることで通常のファイルと区別されていましたこれは、特定のファイル名がデバイス用に予約されていることを意味し、新しいファイルやディレクトリに名前を付けるために使用しないでください。[11]予約名自体は、 CP/MPIPでのコマンド の「特殊ファイル」処理と互換性があるように選択されましたDOSには、ブロックデバイス(ディスクドライブに使用)とキャラクターデバイス(通常、COMデバイスやPRNデバイスを含む他のすべてのデバイス)の2種類のデバイスがありました。[12]

DOSは、デバイスファイルを使用してプリンタとポートにアクセスします。ほとんどのバージョンのWindowsにもこのサポートが含まれており、特定の名前のファイルやフォルダーを作成しようとすると、これらの名前を使用できないため、混乱が生じる可能性があります。[13]バージョン2.xのMS-DOSは、 AVAILDEV CONFIG.SYSパラメータを提供します。このパラメータを設定するとFALSE、接頭辞が。の場合にのみこれらの特別な名前がアクティブ\DEV\になり、通常のファイルをこれらの名前で作成できます。[14]

Atari TOSのDOSに似た部分であるGEMDOSは、DOSと同様のデバイス名をサポートしていましたが、DOSとは異なり、通常のファイル名ではなくデバイスとして識別するために、末尾に「:」文字が必要でした(したがって、「 CON: "はDOSとTOSの両方で機能しますが、" CON "はTOSでは通常のファイルに名前を付けますが、DOSではコンソールデバイスに名前を付けます)。MiNTおよびMagiCでは、「U:」ドライブ文字を介してアクセスされる特別なUNIXライクな統合ファイルシステムビューも、「U:\DEV」にデバイスファイルを配置しました。

デバイスキーワード[13] 入力として使用 出力として使用
CON ^ Z(Ctrl-Z)が押される まで、入力されたデータを受信します。 データをコンソールに出力します。
PRN [15] 該当なし テキストをプリンタに印刷します。通常はLPT1またはLSTにリダイレクトされます。他のデバイスに再構成できる場合もあります。[16] [17] [18]
AUX(OS / 2 [15]にはない) 補助デバイス(通常はCOM1などのシリアルデバイス)からデータを読み取ります。他のデバイスに再構成できる場合もあります。[16] [17] [18] 補助デバイス(通常はCOM1などのシリアルデバイス)にデータを送信します他のデバイスに再構成できる場合もあります。[16] [17] [18]
NUL nullまたはデータなしを返します。 受信したデータを破棄します。
CLOCK $ ( MS-DOS 2.11 [19] [16] [17]の一部のバージョンではまだCLOCKと呼ばれています) 該当なし 該当なし
KEYBD $マルチタスクMS-DOSのみ)
KBD $OS / 2 [15]のみ)
SCREEN $(マルチタスクMS-DOSおよびOS / 2 [15]のみ)
POINTER $(OS / 2 [15]のみ)
MOUSE $(OS / 2 [15]のみ)
$ IDLE $DR-DOS(5.0以降)およびマルチユーザーDOSConcurrent DOS 386以降)ファミリのみ) 該当なし 該当なし
CONFIG $(MS-DOS 7.0以降のみ) 該当なし 該当なし
LST86-DOSおよびDOS 1.xのみ、HPPortablePlus用のHewlett-PackardのMS-DOS2.11 [ 16] [17] データを返しません。 ラインプリンタにデータを送信します。(ヒューレットパッカードのMS-DOS 2.11 [16] [17]のLPT2 )
PLT( HP PortablePlus用のHewlett-PackardのMS-DOS2.11のみ[16] [17] データを返しません。 割り当てられたプロッタにデータを送信します。付属のプロッタデバイスは再構成可能です。[16] [17]
LPT1LPT2LPT3、および場合によってはLPT4(DR-DOS 7.02以降および一部のバージョンのマルチユーザーDOS) 該当なし 選択したパラレルポートにデータを送信します。
COM1COM2COM3COM4 選択したシリアルポートからデータを読み取ります。 選択したシリアルポートにデータを送信します。
82164A( HP PortablePlus用のHewlett-PackardのMS-DOS2.11のみ[16] [17] COM2にリダイレクトします。 COM2にリダイレクトします。

シェルリダイレクトとパイプを使用して、データをデバイスとの間で送受信できます。たとえば、次のように入力すると、ファイルc:\data.txtがプリンタに 送信されます。

タイプc:\ data.txt> PRN

PIPE、MAILSLOT、およびMUPは、その他の標準的なWindowsデバイスです。[20]

IOCS

PC-E500PC-E500Sなどのシャープ ポケットコンピュータの8ビットオペレーティングシステムはBASICインタープリター、基本的な12ビットFATのようなファイルシステムを実装するDOS 2のようなファイル制御システム(FCS)、およびBIOSのような入出力制御システム(IOCS)は、STDO:/ SCRN :(ディスプレイ)、STDI:/ KYBD :(キーボード)、COM :(キーボード)などの特殊なファイルデバイスだけでなく、多数の標準文字およびブロックデバイスドライバーを実装しています。シリアルI/O)、STDL:/ PRN :(プリンタ)、CAS :(カセットテープ)、E:/ F:/ G :(メモリファイル)、S1:/ S2:/ S3 :(メモリカード)、X: / Y :(フロッピー)、SYSTM :(システム)、およびNIL :(関数)。[21]

実装

オペレーティング・システム ファイルシステムまたは管理ソフトウェア 標準マウントポイント 著者 ノート
Linux 2.3.46pre5–2.6.17 devfs [22]およびdevfsd /dev リチャードグーチ カーネルに完全に実装され、オプションのデーモンdevfsdを使用して、ユーザースペースでデバイスノードイベントを処理します。[23]廃止–ユーザーはudevdevtmpfsに移行することをお勧めします。
Linux 2.5– 任意のfsのudev、ただし通常はtmpfs /dev グレッグ・クロー・ハートマンケイ・シェバースダン・ステクロフ 主にユーザースペースに実装され、デバイス情報はsysfsから収集されます。デバイスファイルは、従来の汎用ファイルシステムまたはメモリファイルシステム(tmpfs)に保存できます。
Linux 2.6.32– udevの有無にかかわらずdevtmpfs /dev ケイ・シェバース、ヤン・ブランク、グレッグ・クロー・ハートマン udevが初めて実行される前にノードを提供するためのデバイスファイルシステムのハイブリッドカーネル/ユーザースペースアプローチ[24]
Solaris devfs [25] /devices サンマイクロシステムズ Solaris-2.1で動的にロードされたドライバで導入されました
FreeBSD 2.0– devfs /dev ポールヘニングカンプ カーネルに完全に実装されています。
DragonFly BSD 2.3.2– devfs /dev アレックス・ホルヌング カーネルに完全に実装されています。
マックOS devfs /dev アップル社。 カーネルに完全に実装されています。
HP-UX B.11.31 devfs /dev HP カーネルに完全に実装されています。
プラン9 # ベル研究所 カーネルに実装されています。
RISC OS DeviceFS Devices: エイコーンコンピュータ DeviceFSは1991年に開始され[26]、RISC OS 3で最初に登場しました。これは特別なファイルのようないくつかのデバイスを管理します。最も一般的なのはParallel、Serial、FastParallel、USBです。SystemDevicesモジュールは、Vdu、Kbd、Null、Printerなどの疑似デバイスを実装します。
MS-DOSPC DOSDR-DOS 肥満 \DEV(および/DEV 様々 カーネルに実装されているように、文字デバイスは仮想\DEVディレクトリと任意のディスクディレクトリに表示されます。MS-DOS / PC DOS 2.xでは、CONFIG.SYS AVAILDEV = FALSEディレクティブを使用して、デバイスを\DEVにのみ存在させることができます。
MagiCMiNTMultiTOS U:\DEV[27] [28] アプリケーションシステムHeidelberg、Eric R. Smith、Atari Corp. 特別なU:ドライブには、仮想DEVディレクトリが含まれており、その中にデバイスファイルを見つけることができます。
Windows 9x \\devices\ マイクロソフト
Windows NT \Device マイクロソフト この\Deviceディレクトリは、WindowsNTオブジェクトの名前空間の一部です。
WindowsNTWin32サブシステム \\.\ マイクロソフト プレフィックスにより、\\.\サポートAPIはWin32ファイル名前空間ではなくWin32デバイス名前空間にアクセスできます。Win32デバイス名は、WindowsNT\Deviceディレクトリのデバイス名へのシンボリックリンクです。

も参照してください

参照

  1. ^ a b "Windows for Workgroups:VSHARE.386がファイル共有を管理する方法"Support.microsoft.com。1999-09-22 2014年1月22日取得
  2. ^ Kroah-Hartman、Greg(2005-06-20)。"[PATCH] devfs:カーネルツリーからdevfsを削除します"Linuxカーネルソースツリー2021-06-12を取得
  3. ^ コーベット、ジョナサン; Kroah-Hartman、Greg; ルビーニ、アレッサンドロ(2005)。「デバイスファイルのアクセス制御」。Linuxデバイスドライバー、第3版オライリー2017年4月28日取得シングルオープンデバイスを超えた次のステップは、1人のユーザーが複数のプロセスでデバイスを開くことができるようにすることですが、一度に1人のユーザーだけがデバイスを開くことができるようにします。
  4. ^ Kernighan、Brian W .; パイク、ロブ(1984)。UNIXプログラミング環境Prentice-Hallp。 66ISBN 0-13-937681-X
  5. ^ ニールブラウン(2010-10-27)。「Unixの過去の幽霊:デザインパターンの歴史的探求」Linuxウィークリーニュース2014年3月30日取得
  6. ^ 「IEEEStd1003.1、2013Edition」2014年4月24日取得
  7. ^ 「FreeBSDアーキテクチャハンドブック」2013年3月7日取得
  8. ^ "usr.sbin/envstat/envstat.c"BSD相互参照NetBSD2021年11月。
  9. ^ "mknod(8)"FreeBSDのマニュアルページFreeBSDプロジェクト。2016-10-03 2021-06-12を取得
  10. ^ Linuxが割り当てた名前と番号の権限(2009-04-06)。「Linuxで割り当てられたデバイス(2.6以降のバージョン)」Linuxカーネル(Documentation / devices.txt)2016年4月24日にオリジナルからアーカイブされまし2013年6月8日取得
  11. ^ 「NTデバイス名であるMacintoshファイル名の作成は避けてください」Support.microsoft.com。2006-11-01 2014年1月22日取得
  12. ^ 「デバイス属性」Stanislavs.org 2014年1月22日取得
  13. ^ ab "MS-DOSデバイスドライバ名をファイル名として使用することはできません"リビジョン2.0。Microsoft2003-05-12。KB74496、Q74496。2012年7月21日にオリジナルからアーカイブされました
  14. ^ 「文書化されていないコマンド」4dos.infoKevtronics。2002-04-12 2014年5月16日取得
  15. ^ a b c d e f IBMオペレーティング・システム/ 2テクニカル・リファレンス-プログラミング・ファミリー(PDF)1(第1版)。IBM1987年9月[1986]。2017-01-03のオリジナルからアーカイブ(PDF) 。
  16. ^ a b c d e f g h iHewlett -Packard-テクニカルリファレンスマニュアル-PortablePLUS(1版)。米国オレゴン州コーバリス:ヒューレットパッカード社、ポータブルコンピュータ部門。1985年8月。45559-90001 2016年11月27日取得
  17. ^ a b c d e f g h i Hewlett-Packard-テクニカルリファレンスマニュアル-PortablePLUS(PDF)(2版)。米国オレゴン州コーバリスのポータブルコンピュータ部門:Hewlett-PackardCompany1986年12月[1985年8月]。45559-90006。2016年11月28日のオリジナルからアーカイブ(PDF)2016年11月27日取得
  18. ^ a b c Paul、Matthias R.(1997-10-02)。「CalderaOpenDOS7.01/ 7.02 Update Alpha 3IBMBIO.COMREADME.TXT」2003-10-04にオリジナルからアーカイブされました2009年3月29日取得 [1]
  19. ^ パターソン、ティム; マイクロソフト(2013-12-19)[1983]。「MicrosoftDOSV1.1およびV2.0:/msdos/v20source/SKELIO.TXT、/msdos/v20source/HRDDRV.ASM」コンピュータ歴史博物館マイクロソフト2014年3月25日取得(注:発行元はこれがMS -DOS 1.1および2.0であると主張していますが、実際にはSCPMS-DOS1.25およびAltosMS-DOS2.11TeleVideoPCDOS 2.11の混合物です。)
  20. ^ 「REG:CurrentControlSetエントリパート2:SessionManager」Support.microsoft.com。2006-11-01 2014年1月22日取得
  21. ^ テクニカルリファレンスマニュアルPC-E500(PDF)シャープ株式会社情報システムグループパーソナル機器事業部。1990年3月。p。17. 2017-03-14のオリジナルからアーカイブ(PDF)2017年3月14日取得
  22. ^ グーチ、リチャード(2002-08-20)。「LinuxDevfs(デバイスファイルシステム)FAQ」2021-06-13を取得
  23. ^ グーチ、リチャード。「私のLinuxの貢献」2021-06-13を取得Devfsdは、Linuxデバイスファイルシステムを使用してデバイスノードの構成可能な管理を提供します。
  24. ^ 「ドライバーコア:devtmpfs-カーネルが維持するtmpfsベースの/dev」LWN 2009年8月10日取得
  25. ^ "devfs(7FS)"マニュアルページセクション7:デバイスおよびネットワークインターフェイスオラクル。2014 2021-06-12を取得
  26. ^ 「プロジェクトブラック変更ログ」2016年5月15日取得
  27. ^ 「ドライブU:MagiCで」2016-03-28。2017年1月15日にオリジナルからアーカイブされまし2017年1月9日取得
  28. ^ 「FreeMiNT-ポータル-mint.doc」2000-04-27。2017年1月15日にオリジナルからアーカイブされまし2017年1月9日取得

さらに読む