web-dev-qa-db-ja.com

/ devと/ sysの違い

devfssysfsの違いは何ですか?どちらもシステムに接続されているハードウェアのリストを維持しているようです。では、なぜ2つの別個のファイルが必要になったのでしょうか。私が取得できる限り/ sysは、デバイスの「生の」リスト(「ser0」など)をいくらか維持しています。 Udevはそれらのデバイスに作用し、さまざまな情報を取得し、さまざまなルールを適用して認識可能な名前として表示し、/ devにマップされます(「カメラ」など) 。これが唯一の理由ですか?次に、/ devfsから対応するデバイスをマウントします(/ sysからそれを行うことはできません) fs)を/ mediafsに変換します。

/ devと/ sys/classの違いは? で回答を読みました。しかし、私はそれがそれを述べているsys fs部分を得ることができません

デバイスにコンピューターに接続されているため、sysfsにはデバイスの階層が含まれます。

/ sys内のファイルはデバイスノードファイルではありませんか?次に、それらはどのような種類のファイルですか?

19
sounak

/sysファイルシステム(sysfs)には、デバイスの電源が入っているかどうか、ベンダー名とモデル、デバイスが接続されているバスなどの情報を提供するファイルが含まれています。これは、デバイスを管理するアプリケーションに関係します。

/devファイルシステムには、プログラムがデバイス自体にアクセスできるようにするファイルが含まれています。シリアルポートへのデータの書き込み、ハードディスクの読み取りなどです。これは、デバイスにアクセスするアプリケーションにとって重要です。

メタファーは、/sysがパッケージへのアクセスを提供し、/devがボックスのコンテンツへのアクセスを提供するということです。

/sysのファイルはデバイスノードではなく、シンボリックリンクと通常のファイルです。これらの通常のファイルは、それらへの読み取りまたは書き込みがデバイスノードなどのカーネル内のファイル固有の関数を呼び出すという点で特別です。違いは、/sys内のファイルは、ファイルシステムがあるためこのように機能するのに対し、デバイスノードはデバイスノードの特性(ファイルタイプが(ブロックまたは文字)デバイスを示す)とデバイスどのデバイスであるかを示すメジャー番号とマイナー番号)。

/dev/sysとは独立して存在する理由は部分的に歴史的です。/devはUnixの黎明期にさかのぼりますが、/sysはより最近の発明です。 Linuxが歴史的背景なしに今日設計された場合、/dev/sda/sys/block/sda/contentになる可能性があります。