에서 제공?
커널은 다음과 같은 장치에 대한 이벤트를 생성합니다. PCI 버스가 막혔을 때 (hot 또는 cold, 사용자 공간이 AFAIR을 실행할 때까지 이벤트 대기). udev는 이러한 이벤트를 수신하고 장치의 PID/VID (제품/공급 업체 ID)를 포함하는 modprobe 호출을 수행합니다. 이것은 대개 문자열에 *가 들어간 문자열입니다. 그런 다음 modprobe는 udev의로드 요청 와일드 카드로 표현 된 집합과 커널 모듈의 별칭 세트 (그 자체도 와일드 카드가 될 수 있음)의 교집합을 계산합니다.
이후 USB/Firewire/etc. 컨트롤러는 일반적으로 PCI 버스에 연결되어 HCI 드라이버가로드되는 방식입니다. 저것은 일이 아래로 재발하는 까라고이다; 그런 다음 USB/Firewire PID/VID로 로딩합니다.
그러나 네트워크 프로토콜 모듈 (예 : ipv6)은 udev를 통해 처리되지 않습니다. 대신 프로그램이 socket(AF_INET6, ...)
을 호출하면 커널은 AF_INET6
에 값이 10이되므로 modprobe (더 정확하게는 : /proc/sys/kernel/modprobe
에 있음)와 IPv6의 경우에 와일드 카드 화되지 않은 별칭 (net-pf-10
)을 직접 호출합니다. modprobe는 ipv6.ko
을로드합니다. net-pf-10
별칭은 무엇입니까?
마찬가지로 파일 시스템에 대한
mount -t foo
를 시도하면 (
____call_usermodehelper
를 통해 다시)으로 modprobe를 호출하는 커널 인수로
foo
이 시간을 발생합니다.
기기 노드에 액세스 (예 : /dev/loop0
, 이미 존재하는 경우)는 loop.ko
이로드되어 있지 않으면 동일한 전략을 사용합니다. 여기서 커널은 block-major-7-0
을 요청합니다 (loop0는 보통 (7,0), cf. ls -l
을 사용하기 때문에) loop.ko
은 block-major-7-*
별칭을 갖습니다.
이렇게 추측하면 http://unix.stackexchange.com에서 더 좋은 질문이 될 것입니다. – ziesemer
http://doc.opensuse.org/documentation/html/openSUSE_113/opensuse-reference/cha.udev.html – firo