컴파일 중에 정적으로 빌드되는 커널 모듈을 결정하는 것은 무엇입니까?

컴파일 중에 정적으로 빌드되는 커널 모듈을 결정하는 것은 무엇입니까?

방금 새 커널을 컴파일하고 스스로에게 질문했습니다. 컴파일 중에 어떤 커널 모듈이 커널에 정적으로 내장되는지 결정하는 것은 무엇입니까?

그런 다음 이를 제거하고 /lib/modules재부팅한 후 시스템이 제대로 작동하는 것을 확인했습니다. 따라서 필요한 모든 모듈이 커널에 정적으로 내장된 것처럼 보였습니다.

그렇지 않은 경우 /lib/modules커널은 22개의 모듈을 로드합니다. 디렉토리가 존재하는 경우 67개의 모듈을 로드합니다.

답변1

구성 중에 일반적으로 런타임이나 이와 make config유사한 make menuconfig. 모듈을 내장형( 으로 표시 *) 또는 모듈형( 으로 표시 M)으로 설정할 수 있습니다.

make menuconfig스크린샷 에서 이에 대한 예를 볼 수 있습니다.여기:

메뉴 구성 스크린샷

답변2

/kernel외에 태그를 추가했다는 점을 고려하면 /linux-kernel일반적인 경우에도 관심이 있을 것이라고 가정합니다.

1991년부터 Solaris에서는 기본 커널 글루 코드, 기본 스케줄러 및 호출기/스왑을 제외한 모든 것이 동적으로 로드되었습니다.

루트 파일 시스템 코드와 모듈 로더도 동적으로 로드됩니다.

이렇게 하면 커널을 수동으로 구성할 필요가 없습니다. Solaris에서는 크기 관련 기능 구성이 필요하지 않으므로 수동 구성이 필요하지 않습니다(충분한 메모리를 사용할 수 있는 한 런타임 시 새 커널 객체가 자동으로 생성됨).

리눅스가 언제 이런 자동화 상태에 도달할지 궁금합니다... 하지만 이론적으로 불필요한 커널 구성(Solaris 참조)이 사용자에게 흥미로운 방법으로 사용되기 때문에 결코 일어나지 않을 것이라고 믿습니다 hey, you are able to control the linux kernel.

관련 정보