6. 커널 모듈

리눅스 커널을 자동차의 핵심 엔진이라고 생각해 보세요. 엔진 자체를 변경하지 않고도 루프 랙이나 새로운 사운드 시스템과 같은 액세서리를 추가할 수 있습니다. 이러한 액세서리는 필요에 따라 추가하거나 제거할 수 있습니다. 리눅스 커널은 커널 모듈을 사용하여 이와 유사한 개념을 사용합니다.

커널 모듈이란 무엇인가

그렇다면 커널 모듈이란 무엇일까요? 이는 필요에 따라 커널에 로드되거나 커널에서 언로드될 수 있는 코드 조각입니다. 이는 핵심 커널을 다시 컴파일하거나 시스템을 재부팅할 필요 없이 커널의 기능을 확장합니다. 이러한 모듈식 접근 방식을 통해 새로운 하드웨어 (새로운 Wi-Fi 카드 등) 또는 새로운 소프트웨어 기능 (새로운 파일 시스템 등) 에 대한 지원을 동적으로 추가할 수 있습니다. 이를 통해 핵심 커널은 가볍게 유지하면서도 엄청난 유연성을 확보할 수 있습니다.

로드된 모듈 나열하기

현재 메모리에 로드된 모든 커널 모듈 목록을 보려면 lsmod 명령을 사용할 수 있습니다. 이는 활성 모듈과 해당 종속성에 대한 스냅샷을 제공합니다.

lsmod

커널 모듈 로드하기

커널 모듈을 로드하려면 modprobe 명령을 사용합니다. 예를 들어, bluetooth 모듈을 로드하려면 다음을 실행합니다.

sudo modprobe bluetooth

modprobe 명령은 지능적입니다. 표준 디렉터리 (/lib/modules/$(uname -r)/) 에서 모듈을 검색하고 대상 모듈이 종속하는 다른 모든 모듈도 로드합니다.

커널 모듈 언로드하기

더 이상 필요하지 않은 모듈은 언로드하여 시스템 리소스를 확보할 수 있습니다. 모듈을 제거하려면 modprobe-r 플래그를 사용합니다.

sudo modprobe -r bluetooth

부팅 시 모듈 관리

modprobe로 로드된 모듈은 일시적이므로 재부팅 후 사라집니다. 모듈 구성을 영구적으로 만들려면 /etc/modprobe.d/ 디렉터리에 구성 파일을 만들 수 있습니다.

부팅 시 특정 옵션으로 모듈을 자동으로 로드하려면 .conf 파일을 만듭니다. 예를 들어, 가상의 peanut_butter 모듈이 있고 해당 type 매개변수를 almond로 설정하려는 경우 구성 파일은 다음과 같습니다.

# /etc/modprobe.d/peanutbutter.conf

options peanut_butter type=almond

반대로, 부팅 시 모듈 로드를 방지하려면 (블랙리스트 지정 프로세스) 구성 파일에서 blacklist 키워드를 사용할 수 있습니다.

# /etc/modprobe.d/peanutbutter.conf

blacklist peanut_butter

이러한 구성 파일은 시스템 시작 시 어떤 모듈을 사용할 수 있는지에 대한 세부적인 제어를 허용합니다.

로그인하여 학습 진행 상황을 저장하세요

로그인

연습 문제

연습이 완벽을 만듭니다! 리눅스 커널 모듈에 대한 이해를 강화하기 위한 실습 랩입니다.

  1. 리눅스에서 커널 모듈 관리하기 - 커널 모듈 나열, 검사, 로드, 언로드 및 부팅 시 자동으로 로드되도록 구성하는 방법을 연습합니다. 이 랩은 실제 시나리오에서 개념을 적용하고 커널 모듈 관리에 대한 자신감을 키우는 데 도움이 될 것입니다.

퀴즈

모듈을 언로드하는 데 사용되는 명령은 무엇입니까?