Linux USB はブロック デバイスです。ブロック デバイスは、Linux システムで TO 操作を実行するときにブロック単位でアクセスする必要があるデバイスです。ブロック デバイスはファイル システムをインストールできます。Linux システムの一般的なブロック デバイスには、ハードディスク、フロッピー ドライブ、Blu-ray ディスク、USB ディスクなどが含まれます。ブロック デバイスは、主にディスクなどの低速デバイス用に設計されており、CPU 待機時間が過度に消費されることを回避します。
#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。
Linux USB はどのような種類のデバイスに属しますか?
Linux USB はブロック デバイスです。
Linux は、情報構成の特性に応じてデバイスを次の 3 つのカテゴリに分類します。
文字デバイス:
文字単位で送信 またはブロック構造に関係なく文字ストリームを受信します。キャラクタ デバイスはアドレス指定できず、シーク操作もありません。たとえば、プリンター、ネットワーク インターフェイス、マウスなどです。
ブロック デバイス:
ブロック デバイスは、Linux システムで TO 操作を実行するときにブロック単位でアクセスする必要があるデバイスです。ブロック デバイスはファイル システムをインストールできます。ブロック デバイス ドライバーはシステム メモリの一部をバッファとして使用するため、ブロック デバイスへの読み取りおよび書き込みアクセスを発行しても、必ずしも直ちにハードウェア I/O 操作が行われるわけではありません。 Linux システムの一般的なブロック デバイスには、ハードディスク、フロッピー ドライブ、Blu-ray ディスク、USB ディスクなどが含まれます。
ネットワーク機器:
ネットワーク デバイスは、ネットワーク カードなどのハードウェア デバイス、またはループバック デバイスなどの純粋なソフトウェア デバイスのいずれかです。ネットワーク デバイスは Linux ネットワーク サブシステムによって駆動され、ストリーム デバイスではなくデータ パケットの送受信を担当するため、ネットワーク デバイスは Linux システム ファイル システムにノードを持ちません。ネットワーク デバイスへのアクセスは、オープン/クローズや読み取り/書き込みなどの通常のファイル操作ではなく、ソケット呼び出しを通じて生成されます。
ブロック デバイスとキャラクタ デバイスの違い:
キャラクタ デバイスはシーケンシャルにのみ読み取ることができますが、ブロック デバイスはランダムに読み取ることができます。
ブロック デバイスは、物理ディスクから直接ではなく、システム キャッシュを通じて読み取られます。キャラクター デバイスは、システム キャッシュを経由せずに物理ディスクを直接読み取ることができます。読み取り/書き込みリクエストがキャラクター デバイスに発行されると、通常、実際のハードウェア I/O は直ちに発生しますが、ブロック デバイスはシステム メモリの一部をバッファとして使用します。デバイスに対するユーザー プロセスのリクエストがユーザーの要件を満たすことができる場合データが取得できない場合は、リクエスト関数を呼び出して実際の I/O 操作を実行します。したがって、ブロック デバイスは主にディスクなどの低速デバイス用に設計されており、過度の CPU 時間待機を避けることができます。
オペレーティング システムのデバイス管理機能では、デバイスは専用デバイス、共有デバイス、および仮想デバイスに分類されます。デバイス割り当てには、排他的デバイスにはすべてのキャラクタ デバイスが含まれ、共有デバイスにはすべてのブロック デバイスが含まれます。
Linux ブロック デバイス情報の表示
Linux では、lsblk コマンドを使用してブロック デバイス情報を表示できます。
英語の lsblk コマンドは「list block」です。これは、使用可能なすべてのブロック デバイスに関する情報を一覧表示し、それらの間の依存関係も表示するために使用されますが、RAM ディスク情報は一覧表示されません。ブロック デバイスには、ハードディスク、フラッシュ ドライブ、CD-ROM などが含まれます。 lsblk コマンドは util-linux-ng パッケージに含まれていますが、このパッケージは現在 util-linux に名前変更されています。
lsblk コマンドにはいくつかのオプションがあります。
デフォルト オプション
lsblk コマンドは、デフォルトでツリー ビューにすべてのブロック デバイスをリストします。ターミナルを開いて次のコマンドを入力します:
$ lsblk
出力は次のとおりです:
lsblk default lsblk default
7 つの列名は次のとおりです:
NAME : 这是块设备名。 MAJ:MIN : 本栏显示主要和次要设备号。 RM : 本栏显示设备是否可移动设备。注意,在本例中设备sdb和sr0的RM值等于1,这说明他们是可移动设备。 SIZE : 本栏列出设备的容量大小信息。例如298.1G表明该设备大小为298.1GB,而1K表明该设备大小为1KB。 RO : 该项表明设备是否为只读。在本案例中,所有设备的RO值为0,表明他们不是只读的。 TYPE :本栏显示块设备是否是磁盘或磁盘上的一个分区。在本例中,sda和sdb是磁盘,而sr0是只读存储(rom)。(LCTT译注,此处sr0的RO项没有标记为1,可能存在一些错误?) MOUNTPOINT : 本栏指出设备挂载的挂载点。
すべてのデバイスをリストします:
デフォルトのオプションでは、空のデバイスがすべてリストされるわけではありません。これらの空のデバイスを表示するには、次のコマンドを使用します。
$ lsblk -a
このオプションでは、空のデバイスを含むすべてのデバイスが一覧表示されます。
lsblk bytes sda lsblk bytes sda
デバイスの権限と所有者の一覧表示:
lsblk コマンドを使用して、特定のデバイスの所有権、グループ、モードの一覧を表示することもできます。この情報は、次のコマンドで取得できます。
$ lsblk -m lsblk permissions lsblk permissions
指定したデバイスの一覧を表示します。
このコマンドは、指定したデバイスの情報のみを取得することもできます。これは、lsblk コマンドに指定されたオプションの後にデバイス名を指定することによって実現されます。たとえば、ディスク ドライブのサイズをバイト単位で知りたい場合は、次のコマンドを実行して確認できます:
$ lsblk -b /dev/sda
または、次のコマンドも同等です:
$ lsblk --bytes /dev/sda
リスト形式でヘッドなしデバイスをリストします:
いくつかのオプションを組み合わせて特定の出力を取得することもできます。たとえば、デフォルトのツリー形式ではなくリスト形式でデバイスを一覧表示したい場合があります。別の列名のヘッダーを削除することもできます。次のコマンドで 2 つの異なるオプションを組み合わせて、目的の出力を取得できます。
$ lsblk -nl
あるいは、以下の長いオプションを使用しても、同じ出力が得られます。
$ lsblk --noheadings --list lsblk no header and list lsblk no header and list
SCSI デバイスのリスト:
SCSI デバイスのリストを取得するには、-S オプションのみを使用できます。このオプションは大文字の S であり、依存関係を逆の順序で出力する -s オプションと混同しないでください。
$ lsblk -S
lsblk列出SCSI设备,而-s是逆序选项(LCTT译注:将设备和分区的组织关系逆转过来显示),其将给出如下输出。输入命令:
$ lsblk -s
或者
$ lsblk --inverse
你可以使用lsblk来获取关于你的块设备的更多信息,自己把它试着显示出来吧
相关推荐:《Linux视频教程》
以上がLinux USBはどのようなデバイスに属しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。