1. kernel device model은 커널 통합관리 시스템이다.
2. device들은 /sys에 모두 나타나게 되어 있고, 그렇게 작성되어야 한다.
3. /sys를 udev가 모니터링하면서 /dev에 device file들을 자동생성해준다.
4. 이때 hotplug도 처리를 같이하게 되고, 그 hotplug처리된 메세지를 D-BUS를 통해서 상위단으로 전해주게 된다.
제가 제대로 이해한 것인지 확인겸 질문을 올리겠습니다.
첫째로 2.4에서는 아래와 같이 devfs_register_chrdev()함수를 사용하여 /dev밑에 노드를 생성하는 함수를 사용하여 드라이버를 생성하였는데..
g_ttd_major = devfs_register_chrdev(0,MODULE_NAME_TTD,&g_ttd_fops);
2.6에서는 /sys밑에 드라이버의 정보를 생성하게 하고 이것을 보고
udev가 /dev/밑에 노드를 만든다는 것인가요?
두번째로 제가 첫번째를 정상적으로 이해한 것이라면 2.6에서는 /sys밑에
드라이버의 정보를 넘겨주는 구조체를 이용하는 함수가 어떤것이 있는가요? 간단한 예시를 좀^^;; 알려주시면 감사하겠습니다.
하지만, udev는 디바이스 드라이버가 올라갈 때 동적으로 /dev/ 디렉터리에 장치를 생성해 줍니다.
플러그앤플레이 개념이 생기면서, 도입된 것이고요.
임베디드 시스템에서는 플러그앤플레이 개념이 없기 때문에, 사실상 udev는 부팅 속도만 느려지게 하는 귀찮은 존재로 받아들이고 있습니다. :)
그래서 udev 일부로 안쓰시는 분들도 많아요. ^^
하지만, 요즘 최신 커널들은 전부다 udev 기반이기 때문에, 임베디드 시스템에서도 커널 버전 높은 것들은 udev를 쓰죠.. 대세는 어쩔 수 없나 봅니다.