
hal が実際に使用されているのか、それとも udev だけなのか、かなり混乱しています。
私が理解したこと:
一般的に、HAL はオペレーティング システムがハードウェア デバイスと対話できるようにする抽象化レイヤーです。
デーモン hald は HAL とは異なります。これは HAL を提供するサービスであり、デバイスを識別してマウントしたり (/dev の下など)、アプリケーションが使用できるように自動的に構成したりするために使用されます。
また、これは現在では udev でも非推奨になっています。udev も同様のことを行います。つまり、カーネルからメッセージを読み取り、事前定義されたルールに従って名前を付けることで、接続されたデバイスを自動マウントします。
そして現在、GNOME のようないくつかの GUI ベースのアプリケーションだけが、新しく接続されたデバイスに関する通知を取得するために hald を使用しています (マウントは引き続き udev によって処理されます)。
そこで私の質問は、hal は DBUS を介して通信できるため、新しく接続されたハードウェアについて GUI ベースのアプリケーションに通知するためにのみ使用されるのかどうかということですが、udev には dbus 実装がありません。また、デバイスの自動マウントについては、udev のみがそれを実行し、hal は使用されません。
ここでは特に Redhat 5、6、7 についてお話します。
ありがとう。
答え1
背景:udev
は長年存在しており (2.5 カーネル以来)、(RHEL の場合) ドライバーがハードウェアをアナウンスしたときにデバイス ノードを設定するものです。HAL を使用しているシステムでも、そのudev
下には HAL が存在していました。HALudev
自体は変更を「発見」したときに他のプログラムを呼び出すことができ、HAL はデスクトップ *nix システム (Linux だけでなく FreeBSD など) の新しいハードウェアの特定の部分のアナウンスと構成を抽象化しようとする試みでした。最終的に、人々は HAL の特定の部分を廃止しましたが、HAL のすべての部分が に移動できるわけではなくudev
、一部は他のデーモンに分割されました。2012 年頃までに、ほとんどの最先端の Linux ディストリビューションは HAL を放棄し、今日 (2019 年初頭) では、前述のデーモンは などです。udisks
何upower
が起こったかについては、 でわかりやすくまとめられています。https://en.wikipedia.org/wiki/HAL_(ソフトウェア)...
RHELはFedoraをベースにしている(大まかなマッピングはhttps://en.wikipedia.org/wiki/Red_Hat_Enterprise_Linux#Fedora との関係)そしてそれがHALフリーのFedora 16:
- RHEL 5には間違いなく
hald
- RHEL 6には、
hald
- RHEL 7 にはこの機能がないため
hald
、他のデーモンが引き継ぐことになりますが、udev
実行するように説得することはできません。
RHEL サーバーで haldaemon が使用されているか udev が使用されているかを確認するにはどうすればよいでしょうか?
適切なバージョンの RHEL を起動して、次のような操作を実行します。
rpm -qa "*hal*"
(ああ、複数の質問を 1 つの質問に隠していることに気付きました :-( )
デーモン hald は HAL とは異なります。これは HAL を提供するサービスであり、デバイスを識別してマウントしたり (/dev の下など)、アプリケーションが使用できるように自動的に構成したりするために使用されます。
デバイスは の下にあります/dev
が、デバイスを「マウント」する必要があるかどうかはコンテキストに依存します。ディスクをマウントする場合があります (たとえば の下にあります/mnt
が、マウントされる場所は他にもあります) が、スキャナーはマウントしません (スキャナーのアナウンス/検索は HAL が処理するものです)。
また、これは現在では udev でも非推奨になっています。udev も同様のことを行います。つまり、カーネルからメッセージを読み取り、事前定義されたルールに従って名前を付けることで、接続されたデバイスを自動マウントします。
によってのみ実行される場合もあればudev
、他のサービスも関与する場合もあります。/dev
デバイスの命名はudev
制御されています。
そして現在、GNOM[E] のようないくつかの GUI ベースのアプリケーションだけが、新しく接続されたデバイスに関する通知を取得するために hald を使用しています (マウントは引き続き udev によって処理されます)。
まあ、最近のシステムにはないのでhald
、あなたの質問は奇妙で複雑です。さらに、たとえそれができるシステムであっても、答えは「場合による」です。はい、udev
マウントはできますが、PTP プロトコル経由で USB カメラを接続するなどの処理は、GNOME ユーザースペースによってほぼ処理されることがあります (ただし、FUSE の観点全体については議論の余地があると思います)。
私の質問は、hal は DBUS を介して通信できるため、新しく接続されたハードウェアについて GUI ベースのアプリケーションに通知するためにのみ使用されるが、udev には dbus 実装がないかどうかです。
これは質問ですか? HAL は GUI アプリに通知するために使用されていましたが、デバイスの変更時に他の操作 (電源ルールの調整やディスクのマウントなど) をトリガーすることもできます。
デバイスの自動マウントについては、udev のみがそれを実行し、hal は使用されないのでしょうか?
繰り返しますが、これは共同作業です。はい、udev
ルールは多くのことを行いますが、コンテキストに応じて他のことが関係する場合があります (たとえば、ユーザーにプロンプトを表示する必要がある場合)。そこで、次のようなことがudisks
関係し始めます。
しかし、ここには次のような意味があると思います。なぜ HAL が使用されているかどうかを尋ねるのですか? その質問を直接尋ねたほうがよいかもしれません...
(これらの複数の質問は苦痛です:-( )