Linux 커널의 라이브러리 루틴

Linux 커널의 라이브러리 루틴

Linux 커널에는 "라이브러리 루틴" 섹션이 있으며 그 일부는 다음과 같습니다.

Library routines  --->
  <M> CRC-CCITT functions
  <M> CRC ITU-T V.41 functions
  <M> CRC7 functions
  <M> CRC32c (Castagnoli, et al) Cyclic Redundancy-Check
  <M> CRC8 function
  ...
  ...

대부분의 옵션을 "모듈"로 컴파일하지만 모듈은 로드되지 않습니다. 이 모듈은 어떤 용도로 사용되며 어떤 경우에 필요한지 알고 싶습니다.

커널 구성 도움말은 그다지 유익하지 않습니다.

This option is provided for the case where no in-kernel-tree
modules require <XYZ> functions, but a module built outside
the kernel tree does. Such modules that use library  <XYZ>
functions require M here.

답변1

CCITT는 "Comité Consultatif International Téléphonique et Télégraphique"의 약자이고 ITU는 "International Telecommunication Union"의 약자입니다. 이 모듈은 전화 모뎀 연결(오류 수정)과 관련되어 있습니다.

(일반적으로 실제 하드웨어 직렬 포트를 통해 통신하는) 구형 고급 모뎀도 CRC 자체와 같은 작업을 수행하므로 이러한 모듈은 처리의 상당 부분이 CPU에 의해 수행되는 저가형 하드웨어용인 것으로 추측됩니다. , 소위소프트 모뎀

따라서 간단한 모뎀 하드웨어를 갖고 사용하지 않는 한 커널이 이러한 모듈을 로드할 가능성은 거의 없습니다.

답변2

이러한 루틴이 필요한 드라이버나 모듈을 활성화하면 해당 루틴이 자동으로 강제 실행됩니다. 이러한 옵션 중 하나를 비활성화할 수 있다면 커널에 해당 옵션이 필요하지 않다는 의미이므로 해당 옵션이 로드되지 않습니다.

그러나 모든 드라이버가 커널에서 나오는 것은 아닙니다. 일부 외부 패키지는 커널 모듈(예: 바이너리 nvidia 드라이버)도 설치합니다. 이들 중 특정 라이브러리 루틴이 필요한 경우 직접 활성화해야 합니다. 를 사용하여 트리 외부의 드라이버가 어떤 모듈에 의존하는지 확인할 수 있습니다 lsmod.

외부 모듈을 설치하지 않으면 모든 외부 모듈을 비활성화할 수 있습니다.

관련 정보