리눅스(커널) 재부팅 또는 종료 시 커널모듈을 언로드 시키나요??

acedon의 이미지

안녕하세요, 처음 가입하고 글을 써보네요 ㅎ

다른게 아니라 현재 Ubuntu, openSUSE 등에서 재부팅 또는 종료 시 등록된 커널모듈(.ko)을 모두 언로드 시킨후 종료를 하는지? 아니면 그냥 시스템을 종료 하는지 궁금합니다.

테스트한 결과로는 명시적으로 rmmod을 써서 모듈을 내릴 경우 모듈에 등록된 _exit()이 호출 됩니다. 하지만 재부팅, 종료 시에는 _exit()이 호출되지 않는 것으로 보아서는 따로 커널모듈을 내리지 않고 시스템 종료를 진행하는 것으로 예상하고 있습니다.

커널 문서 등을 찾아봐도 종료시의 커널 모듈 언로드에 대한 부분은 명시되어있지 않기에 이렇게 질문 올려봅니다.

위 내용에 대하여 알고 계시거나 경험하신분은 답변 부탁드리겠습니다~!

bushi의 이미지

shutdown, restart 의 경우 장치 드라이버의 device.shutdown 콜백이 호출됩니다.

반드시 unload 해야한다거나, 절대로 unload 하면 안된다거나, 이런 규범은 없습니다.

acedon의 이미지

우선 답변 감사드립니다.

일단 말씀해주신 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 네트워크 드라이버 입니다.

bushi의 이미지

USB bus device_driver 는 shutdown callback 을 아예 등록조차 하지 않습니다.
bus 특성상 불필요합니다.
USB host 컨트롤러 드라이버의 .shutdown 콜백이 호출되면 나머진 bus protocol 을 통해 처리되고,
이 시점에서 target 의 USB device 컨트롤러는 케이블이 빠진 것과 동일한 처리를 합니다.
host 측의 USB 네트웍크 드라이버 .ko 를 unload 하건 말건 상관없습니다.

acedon의 이미지

답변 감사합니다. 많은 도움 되었습니다.

이제 배우는 초보자의 입장이라 소중한 정보 감사합니다.

ps.이런 내용들은 어디서 참고 하시는건가요?

ukyoukyo의 이미지

bushi님 저희 회사에 모시고 오고 싶은 생각이 저도....^^


------------------ System programmer...^^

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.