検索
ホームページシステムチュートリアルLinuxLinux /dev ディレクトリ: 特別なデバイス ファイルの導入と適用

Linux /dev ディレクトリ: 特別なデバイス ファイルの導入と適用

Feb 11, 2024 pm 08:45 PM
linuxLinuxチュートリアルLinuxシステムLinuxコマンドシェルスクリプト埋め込みLinuxLinux を始めるLinux学習

Linux システムでは、すべてがファイルです。これは、通常のテキスト ファイルやバイナリ ファイルに加えて、システム内のさまざまなデバイスもファイルの形式で表現し、アクセスできることを意味します。これらのデバイス ファイルは通常 /dev ディレクトリに保存され、メジャー デバイス番号、マイナー デバイス番号、キャラクタ デバイス、ブロック デバイスなどの特別な属性と機能を持ちます。 Linux システムで一般的な特殊デバイス ファイルは何ですか?それらの機能と用途は何ですか?この記事では、Linux /dev ディレクトリにある特殊なデバイス ファイルについて、概念と例の観点から詳しく紹介します。

Linux /dev目录:特殊设备文件的介绍与应用

Linux はファイル システムであり、ソフトウェアなどのすべてのハードウェアは、対応するディレクトリの下に対応するファイル表現を持ちます。 dev ディレクトリについては、その下のファイルが Linux デバイスを表すことがわかっています。 Windows システムでは、デバイスはハード ドライブのように誰でもよく理解されており、ディスクは実際のハードウェアを指します。 Linux ファイル システムには、これらのデバイスに関連付けられたファイルがあります。実際のハードウェア上にアクセスすることができるので、Linux のほうが柔軟です。それをファイルにすれば、なんと簡単な操作でしょう。以前の com、prt、およびその他のインターフェイスを呼び出す必要はありません。ファイルを直接読み書きして、読み取りまたは書き込み操作をデバイスに送信します。データの読み取り、書き込み、保存の方法に応じて、デバイスはキャラクタ デバイス、ブロック デバイス、擬似デバイスのタイプに分類できます。

1. 機器の分類

  • キャラクターデバイス

キャラクターデバイスとは、一度に 1 つのキャラクターをシステムに送信するデバイスを指します。これらのデバイス ノードは通常、FAX、仮想端末、シリアル モデムやキーボードなどのデバイスにストリーミング通信サービスを提供しますが、通常はランダム アクセス データをサポートしません。キャラクタ デバイスが実装される場合、ほとんどはバッファを使用しません。システムは各文字をデバイスから直接読み取り/書き込みします。たとえば、キーボードなどのデバイスはデータ ストリームを提供し、「cnblogs」という文字列を入力すると、キーボード ドライバーはこの 7 文字のデータ ストリームを入力とまったく同じ順序で返します。これらはシーケンシャルであり、最初に c を返し、最後に s を返します。

  • デバイスをブロックする
#ブロック デバイスとは、ブロックを使用してシステム間でデータを移動するデバイスを指します。これらのデバイス ノードは通常、ハードディスク、CD-ROM、メモリ領域などのアドレス指定可能なデバイスを表します。

ブロック デバイスは通常、ランダム アクセスとアドレス指定をサポートし、バッファを使用します。オペレーティング システムは、データ ブロックを格納するために入力および出力用のバッファを割り当てます。プログラムがデータの読み取りまたは書き込みリクエストをデバイスに送信すると、システムはデータ内の各文字を適切なキャッシュに保存します。キャッシュがいっぱいになると、適切なアクションが実行され (データが転送され)、システムはキャッシュをクリアします。キャラクター デバイスとの違いは、ランダム ストレージをサポートしているかどうかです。文字種はストリーム形式で1文字ずつ格納されます。

    擬似デバイス
Unix 系オペレーティング システムでは、デバイス ノードは必ずしも物理デバイスに対応するとは限りません。この対応がないデバイスは擬似デバイスです。オペレーティングシステムは、それが提供するさまざまな機能を利用します。一般的に使用される疑似デバイスには、null、zero、full、loop、random、urandom

などがあります。

2.特別な機器と使用方法

ここで言う特殊なデバイスとは、ハードディスクやマザーボードなどを除いたものですが、Linux のシェルコマンドでは特殊な機能を持っているため、個別に取り出します。これらのデバイスは次のとおりです:

/dev/stdin

/dev/stdout

/dev/stderr

/dev/null

/dev/ゼロ

/dev/フル

/dev/ランダム,ランダム

/dev/fd

/dev/tcp|upd

/dev/ループ

1. 標準の出力および入力デバイス

前回、Linux リダイレクトについて述べたことを覚えていますか? Linux シェル データ リダイレクト (入力リダイレクトと出力リダイレクト) の詳細な分析を読むことができます。これらは、いくつかの特殊なファイル記述子、fd0、fd1、fd2 (stdin、stdout、stderr)

に対応します。 ###のように:### リーリー

/dev/stdin はキーボードデバイスを指します

リーリー

/dev/null デバイス

は、書き込まれたすべてのデータを破棄するブラック ホール デバイスです。通常、空のデバイスは、不要な出力ストリームを破棄するために使用されます。 Windows を使っていた頃には、同様の機能を持つ NUL というデバイスがあったと記憶しています。デバイスに書き込まれたデータはすべて破棄されます。ここからデータを読み取ると空が返されます。未使用のコンテンツを頻繁にこのデバイスに送信し、不要なデータを破棄します。

###のように:### リーリー

/dev/ゼロデバイス

UNIX 系オペレーティング システムでは、/dev/zero は、読み取り時に無制限の NULL 文字 (NULL、ASCII NUL、0x00) を提供する特別なファイルです。一般的な用途の 1 つは、提供される文字ストリームで情報を上書きすることです。もう 1 つの一般的な用途は、特定のサイズの空のファイルを生成することです。

###のように:###

[chengmo@centos5 shell]$ dd if=/dev/zero of=testzero count=1024 bs=1024
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB) copied, 0.0107194 seconds, 97.8 MB/s
#创建一个大小为1M文件,该文件一个块是1024字节,一共是1024块(刚好1M),用/dev/zero文件内容填充它。输出创建到:testzero文件
  
  
[chengmo@centos5 shell]$dd if=/dev/zero of=/dev/磁盘分区
#这个命令一定不要随便用,有点象windows里面的粉碎文件工具。不过它是用x00填充整个分区。这样做数据是不可以恢复的了。
  
[chengmo@centos5 shell]$cat /dev/zero>testinputzero
#这个命令也不能随便使用咯,/dev/zero设备一个特效是,如果你读取的话,是一个死循环会输出无穷的\x00,这样你将创建一个用\x00填充的文件。如果你没有限制该用户磁盘配额。它将耗尽整个磁盘空间。

在linux资源配额限制里面,如果没有现在普通用户的磁盘空间利用,或内存使用。一个普通用户就可以通过上面方法一会就塞满整个磁盘。也可以通过while(true) {fork……}类程序,启动无限线程,耗尽整个系统内存。

/dev/full设备

类Unix系统中,/dev/full(常满设备)是一个特殊设备文件,总是在向其写入时返回设备无剩余空间(错误码为ENOSPC),读取时则与/dev/zero相似,返回无限的空字符(NULL, ASCII NUL, 0×00)。这个设备通常被用来测试程序在遇到磁盘无剩余空间错误时的行为。

如:

[chengmo@centos5 shell]$ echo 'chengmo' >/dev/full
-bash: echo: write error: 设备上没有空间
[chengmo@centos5 shell]$ echo $?
1
#命令执行返回错误

/dev/random[urandom]

在类UNIX操作系统中,/dev/random是一个特殊的设备文件,可以用作随机数发生器或伪随机数发生器。它允许程序访问来自设备驱动程序或其它来源的背景噪声。常用作随机数发生器。具体参考:linux shell实现随机数多种方法(date,random,uuid)

/dev/fd

记录用户打开的文件描述符

[chengmo@centos5 shell]$ ls /dev/fd/
0 1 2 3

详细参考:

linux shell数据重定向(输入重定向与输出重定向)详细分析 文件描述符介绍。

/dev/tcp[udp]/host/port

读取该类形式设备,将会创建一个连接host主机port端口的tcp[upd]连接。打开一个socket通讯接口。

详细使用可以参考:

linux shell 脚本实现tcp/upd协议通讯(重定向应用)

/dev/loop

在类UNIX操作系统中,Loop设备 可以把loop 文件,作为块设备挂载使用。

如:

[chengmo@centos5 shell]$mount -o loop example.img /home/chengmo/img

#将img镜像文件挂载到/home/chengmo/img目录下面,有了这个设备,我们不需要通过虚拟光驱就可以读虚拟磁盘格式的文件。

本文介绍了Linux /dev目录下的特殊设备文件,包括它们的分类、属性、命名规则等。我们还了解了一些常见的特殊设备文件,如/dev/null、/dev/zero、/dev/random、/dev/tty、/dev/sda等,以及它们的作用和用法。通过本文,我们可以更清楚地了解Linux系统中的设备管理和访问机制。

以上がLinux /dev ディレクトリ: 特別なデバイス ファイルの導入と適用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は良许Linux教程网で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Linuxシステム管理者の主なタスクは何ですか?Linuxシステム管理者の主なタスクは何ですか?Apr 19, 2025 am 12:23 AM

Linuxシステム管理者の主なタスクには、システムの監視とパフォーマンスチューニング、ユーザー管理、ソフトウェアパッケージ管理、セキュリティ管理とバックアップ、トラブルシューティングと解像度、パフォーマンスの最適化、ベストプラクティスが含まれます。 1. TOP、HTOP、その他のツールを使用して、システムのパフォーマンスを監視し、チューニングします。 2。ユーザーADDコマンドおよびその他のコマンドを介して、ユーザーアカウントとアクセス許可を管理します。 3. APTとYUMを使用してソフトウェアパッケージを管理し、システムの更新とセキュリティを確保します。 4.ファイアウォールを構成し、ログを監視し、データバックアップを実行して、システムセキュリティを確保します。 5.ログ分析とツールの使用を通じてトラブルシューティングと解決。 6.カーネルパラメーターとアプリケーションの構成を最適化し、ベストプラクティスに従ってシステムのパフォーマンスと安定性を向上させます。

Linuxを学ぶのは難しいですか?Linuxを学ぶのは難しいですか?Apr 18, 2025 am 12:23 AM

Linuxの学習は難しくありません。 1.Linuxは、UNIXに基づいたオープンソースオペレーティングシステムであり、サーバー、組み込みシステム、およびパーソナルコンピューターで広く使用されています。 2。ファイルシステムと許可管理を理解することが重要です。ファイルシステムは階層的であり、許可には読み取り、書き込み、実行が含まれます。 3。APTやDNFなどのパッケージ管理システムは、ソフトウェア管理を便利にします。 4。プロセス管理は、PSおよびTOPコマンドを通じて実装されます。 5. MKDIR、CD、Touch、Nanoなどの基本的なコマンドから学習を開始し、シェルスクリプトやテキスト処理などの高度な使用法を試してください。 6.許可問題などの一般的なエラーは、SudoとChmodを通じて解決できます。 7.パフォーマンスの最適化の提案には、HTOPを使用してリソースを監視すること、不要なファイルのクリーニング、SYの使用が含まれます

Linux管理者の給与はいくらですか?Linux管理者の給与はいくらですか?Apr 17, 2025 am 12:24 AM

Linux管理者の平均年salは、米国で75,000〜95,000ドル、ヨーロッパでは40,000〜60,000ユーロです。給与を増やすには、次のことができます。1。クラウドコンピューティングやコンテナテクノロジーなどの新しいテクノロジーを継続的に学習します。 2。プロジェクトの経験を蓄積し、ポートフォリオを確立します。 3.プロフェッショナルネットワークを確立し、ネットワークを拡大します。

Linuxの主な目的は何ですか?Linuxの主な目的は何ですか?Apr 16, 2025 am 12:19 AM

Linuxの主な用途には、1。Serverオペレーティングシステム、2。EmbeddedSystem、3。Desktopオペレーティングシステム、4。開発およびテスト環境。 Linuxはこれらの分野で優れており、安定性、セキュリティ、効率的な開発ツールを提供します。

インターネットはLinuxで実行されますか?インターネットはLinuxで実行されますか?Apr 14, 2025 am 12:03 AM

インターネットは単一のオペレーティングシステムに依存していませんが、Linuxはその上で重要な役割を果たしています。 Linuxは、サーバーやネットワークデバイスで広く使用されており、安定性、セキュリティ、スケーラビリティに人気があります。

Linux操作とは何ですか?Linux操作とは何ですか?Apr 13, 2025 am 12:20 AM

Linuxオペレーティングシステムのコアは、コマンドラインインターフェイスで、コマンドラインを介してさまざまな操作を実行できます。 1.ファイルおよびディレクトリ操作は、ファイルとディレクトリを管理するために、LS、CD、MKDIR、RM、その他のコマンドを使用します。 2。ユーザーおよび許可管理は、useradd、passwd、chmod、その他のコマンドを介してシステムのセキュリティとリソースの割り当てを保証します。 3。プロセス管理は、PS、Kill、およびその他のコマンドを使用して、システムプロセスを監視および制御します。 4。ネットワーク操作には、Ping、Ifconfig、SSH、およびネットワーク接続を構成および管理するためのその他のコマンドが含まれます。 5.システムの監視とメンテナンスは、TOP、DF、DUなどのコマンドを使用して、システムの動作ステータスとリソースの使用を理解します。

Linuxエイリアスを使用したカスタムコマンドショートカットで生産性を高めますLinuxエイリアスを使用したカスタムコマンドショートカットで生産性を高めますApr 12, 2025 am 11:43 AM

導入 Linuxは、柔軟性と効率性により、開発者、システム管理者、およびパワーユーザーが好む強力なオペレーティングシステムです。しかし、頻繁に長く複雑なコマンドを使用することは退屈でERです

Linuxは実際に何に適していますか?Linuxは実際に何に適していますか?Apr 12, 2025 am 12:20 AM

Linuxは、サーバー、開発環境、埋め込みシステムに適しています。 1.サーバーオペレーティングシステムとして、Linuxは安定して効率的であり、多くの場合、高電流アプリケーションの展開に使用されます。 2。開発環境として、Linuxは効率的なコマンドラインツールとパッケージ管理システムを提供して、開発効率を向上させます。 3.埋め込まれたシステムでは、Linuxは軽量でカスタマイズ可能で、リソースが限られている環境に適しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境