Linuxファイルシステムがどのように機能するかを理解したいのですが、私が持っている唯一のLinuxシステムはルート化されたAndroid携帯電話だけなので、Android携帯電話でadbシェルを使用してこの内容に基づいて質問します。
~からここそしてここAndroidシステムに接続されているすべてのハードウェアは、オペレーティングシステムでファイルとして処理されるという内容を読みました。したがって、/ dev / dspはオーディオハードウェアであり、このファイルに記録されている内容はすべてスピーカーを介してサウンドとして表示されます。したがって、このファイルに1バイトの文字ストリームを書き込むと、最初に2バイトの単語として解釈されると仮定します。 wavファイルのように左右のチャンネルに対してインターリーブされ、スピーカーで再生されますか?ただし、adbシェルから/ devに移動してlsコマンドを使用すると、dspファイルは表示されません。
私の質問は、/ devフォルダのファイル命名が標準ですか、それとも名前を持つことができますか?それは言うここ名前は完全にランダムに指定できます。
いくつかの命名スキームがありますが、ほとんどの場合、これらの命名スキームは完全に非論理的です。
これが真であれば、どのファイルが何を表すかをどうやって知ることができますか?
答え1
あなたのtldpリンクにはいくつかの歴史があります。/dev
ファイルシステムの一部としてのみ考えると、サブシステムの本質を見逃すことです。
ABのコメントにはメジャー/マイナーが言及されていますが、彼のリンクは生のリストにすぎません。ここ割り当てられたデバイスkernel.org HTMLいくつかの追加情報があります。
私はこの文脈で「すべてがファイルです」という誤解を招くと思います。のファイル/dev
が呼び出されます。特殊ファイル、文字またはブロック。 「c」または「b」はこれを示します。
]# ls -l /dev/tty1 /dev/sda1
brw-rw---- 1 root disk 8, 1 Nov 5 17:27 /dev/sda1
crw------- 1 root tty 4, 1 Nov 7 05:48 /dev/tty1
ドキュメントの Major=8:
8 block SCSI disk devices (0-15)
0 = /dev/sda First SCSI disk whole disk
16 = /dev/sdb Second SCSI disk whole disk
32 = /dev/sdc Third SCSI disk whole disk
...
240 = /dev/sdp Sixteenth SCSI disk whole disk
しかし、これは、高い数のパーティションが突然 major = 259 になる理由を直接説明しません。
]# ls -l /dev/sda16
brw-rw---- 1 root disk 259, 0 Nov 5 17:27 /dev/sda16
この「sda」の例は、主に大容量のストレージであるため、選択しました。これがAndroidにどのように変換されるかわかりません。
ブロックデバイス(パーティション)は直接書き込むこともできますが、通常はファイルシステムでフォーマットしてマウントします。
通常、/ devのファイルはデバイス自体ではなく、デバイスへのインターフェイスです。
現在、/ devは/ sysなどの擬似ファイルシステムです。
TARGET SOURCE FSTYPE
/dev dev devtmpfs
/sys sys sysfs
/ /dev/sda3 ext4
起動中、/ devはカーネルによって埋められます。ユーザーはモジュールをロードしてデバイスを追加できます。例えばmodprobe loop
ください/dev/loop0-7
(提案された編集は「カーネルによって」ではなく「udevによって」埋められることでした。私の考えでは、これはパディング自体よりも命名の問題だと思います。
外部USBストレージを接続するとsdb、sdcなどを取得できますが、モジュールがusb_storage
ロードされている場合にのみ可能です。
これ相互作用/ dev特殊ファイルの属性は名前にも表示されます。 sdaやttyなどの一部は技術的であり、一部(/dev/disk/by-...下)は、便宜または識別のために提供されるリンクです。