
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
그 아래에 있었습니다. udev
HAL은 변경 사항을 "발견"할 때 다른 프로그램을 호출할 수 있으며 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#Relationship_with_Fedora) 그리고 우리가 알고 있는 바에 따르면HAL이 없는 Fedora 16:
- RHEL 5는 확실히
hald
- RHEL 6은 아마도
hald
- RHEL 7에는 이 기능이 없으며 다른 데몬이 확신할 수 없는 작업
hald
을 대신하게 됩니다 .udev
RHEL 서버에서 haldaemon이 사용되고 있는지 또는 udev가 사용되고 있는지 확인하는 방법은 무엇입니까?
적절한 버전의 RHEL을 시작하고 다음과 같이 수행하십시오.
rpm -qa "*hal*"
(아, 아니요, 하나의 질문에 여러 질문을 숨겼다는 걸 방금 깨달았습니다. :-( )
데몬 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이 사용되는지 여부를 묻는 이유는 무엇입니까? 그냥 직접 물어보는 게 나을 수도 있겠네요...
(이러한 여러 부분으로 구성된 질문은 고통스럽습니다 :-( )