리눅스(커널) 재부팅 또는 종료 시 커널모듈을 언로드 시키나요??
글쓴이: acedon / 작성시간: 금, 2011/11/11 - 9:41오전
안녕하세요, 처음 가입하고 글을 써보네요 ㅎ
다른게 아니라 현재 Ubuntu, openSUSE 등에서 재부팅 또는 종료 시 등록된 커널모듈(.ko)을 모두 언로드 시킨후 종료를 하는지? 아니면 그냥 시스템을 종료 하는지 궁금합니다.
테스트한 결과로는 명시적으로 rmmod을 써서 모듈을 내릴 경우 모듈에 등록된 _exit()이 호출 됩니다. 하지만 재부팅, 종료 시에는 _exit()이 호출되지 않는 것으로 보아서는 따로 커널모듈을 내리지 않고 시스템 종료를 진행하는 것으로 예상하고 있습니다.
커널 문서 등을 찾아봐도 종료시의 커널 모듈 언로드에 대한 부분은 명시되어있지 않기에 이렇게 질문 올려봅니다.
위 내용에 대하여 알고 계시거나 경험하신분은 답변 부탁드리겠습니다~!
Forums:
shutdown, restart 의 경우 장치
shutdown, restart 의 경우 장치 드라이버의 device.shutdown 콜백이 호출됩니다.
반드시 unload 해야한다거나, 절대로 unload 하면 안된다거나, 이런 규범은 없습니다.
우선 답변 감사드립니다. 일단 말씀해주신
우선 답변 감사드립니다.
일단 말씀해주신 shutdown callback을 확인해보니 pci_driver용은 제공되나 usb_driver용은 제공이 안되는 것 같은데요,
제가 잘못 이해할 수도 있는거니 답변해주신 내용에 맞게 찾아본것이 맞는지 확인 부탁드려요~
- http://lxr.linux.no/linux+v2.6.35/include/linux/pci.h#L540 ==> pci_driver 구조체에는 shutdown 콜백등록 가능
- http://lxr.linux.no/linux+v2.6.35/include/linux/usb.h#L838 ==> usb_driver 구조체에는 shutdown 콜백등록 제공 안함
ps. 그리고 현재 커널모듈(.ko)는 USB 네트워크 드라이버 입니다.
USB bus device_driver 는
USB bus device_driver 는 shutdown callback 을 아예 등록조차 하지 않습니다.
bus 특성상 불필요합니다.
USB host 컨트롤러 드라이버의 .shutdown 콜백이 호출되면 나머진 bus protocol 을 통해 처리되고,
이 시점에서 target 의 USB device 컨트롤러는 케이블이 빠진 것과 동일한 처리를 합니다.
host 측의 USB 네트웍크 드라이버 .ko 를 unload 하건 말건 상관없습니다.
답변 감사합니다. 많은 도움 되었습니다. 이제
답변 감사합니다. 많은 도움 되었습니다.
이제 배우는 초보자의 입장이라 소중한 정보 감사합니다.
ps.이런 내용들은 어디서 참고 하시는건가요?
저도 궁금^^
bushi님 저희 회사에 모시고 오고 싶은 생각이 저도....^^
------------------ System programmer...^^
댓글 달기