답변:
이것은 udev
최신 Linux 시스템에서 제공됩니다. udev
시스템 시작 데몬에서 검색합니다 /etc/udev/rules.d
및 /lib/udev/rules.d
커널 이벤트에 대한 일치 규칙을 실행합니다. USB 드라이브를 삽입하면 이벤트가 발생 udev
하고 일치하는 규칙을 검색하여 실행합니다.
규칙 자체에 따라 시스템의 기능이 결정됩니다. 최근 udev
에는 HUS와 통신하여 DBUS를 통해 응용 프로그램에 경고합니다. 이 접근법은 이제 통합 udev
솔루션 을 선호하여 더 이상 사용되지 않으며 직접 또는 dbus-send 를 통한 udevd
통신 이 필요 합니다 .dbus
당신의 활동을 모니터링 할 수 있습니다 udev
통해를 udevadm monitor
.
나는 아직 이것에 대해 완전히 확신하지 못하므로 소금 한알과 더 많은 연구로 가져 가십시오.
커널 핫 플러그 서브 시스템으로 시작합니다. 장치를 설정 한 후 핫 플러그 이벤트를 처리하도록 설정된 모든 사용자 공간 프로그램을 호출하거나 (로 설정된 경우 echo hotplug_handler > /proc/sys/kernel/hotplug
) kobject_uevent 넷 링크 소켓을 통해 데이터 패킷을 보냅니다. 커널이 핫 플러그 처리기를 시작할 때 일부 환경 변수를 설정합니다. 커널이 데이터 패킷을 보내면 key = value 쌍이 포함됩니다. 원하는 경우 환경을 기록하는 스크립트를 설정하고 처리기 (프로덕션 시스템이 아닌 테스트 설정)로 설정할 수 있습니다.
일반적으로 udev는 핸들러로 설정되며 이벤트 처리 방법에 대한 몇 가지 규칙이 설정됩니다. 여기에서 dbus 메시지 문제와 같은 다른 작업을 수행하는 다른 프로그램을 시작할 수 있습니다. 이 udev 규칙은 특정 관심 분포에 크게 의존합니다.
이 글타래 에는 누군가가 문서를 작성하려고 하는 많은 정보가 있습니다-첫 번째 메시지는 정확하지 않습니다; 계속 읽으세요.
udev
는 netlink 소켓에서 uevents를 청취합니다. (구식은 직렬화 / 동시성 문제가있었습니다.)