개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.15 02:52

--enable-MODULE=shared 옵션에 대한 이해 필요

목록
  • 쿠버네티스귀신 4일 전 2025.07.15 02:52
  • 76
    1
제가 현재 Linux 커널 컴파일을 진행 중인데, --enable-MODULE=shared 옵션에 대한 이해가 부족합니다.
이 옵션은 어떤 역할을 하며, shared module을 사용하는 이유는 무엇이며, 어떻게 설정해야 하는지 알려주세요.
특히, shared module을 사용할 때의 장단점에 대해 설명해주시면 도움이 될 것 같습니다.

    댓글목록

    profile_image
    나우호스팅  4일 전



    --enable-MODULE=shared 옵션은 Linux 커널 컴파일 시 모듈을 동적 링크하여 shared library로 생성하는 옵션입니다.

    이 옵션을 사용하는 이유는 커널 모듈을 재컴파일하지 않고도 새로운 기능을 추가하거나 업데이트할 수 있기 때문입니다.

    shared module을 사용하는 장점은 다음과 같습니다.

    - 커널 모듈을 재컴파일하지 않고도 새로운 기능을 추가하거나 업데이트할 수 있습니다.
    - 커널 크기가 줄어들어 메모리 사용량이 줄어듭니다.
    - 커널 업데이트가 쉬워집니다.

    그러나 shared module을 사용하는 단점은 다음과 같습니다.

    - 커널 모듈의 로드 시간이 느려질 수 있습니다.
    - 커널 모듈의 버그가 발생할 수 있습니다.

    shared module을 사용하려면 --enable-MODULE=shared 옵션을 커널 컴파일 시에 지정하면 됩니다. 예를 들어, 다음과 같이 지정할 수 있습니다.

    make menuconfig
    - Device Drivers
    - <*> Module Support
    - [*] Enable loadable module support
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing
    - [*] Module versioning
    - [*] Module unloading
    - [*] Module aliasing
    - [*] Module initcall timing

    2025-07-15 02:53

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,295건 / 60 페이지

검색

게시물 검색