장치와 커널 모듈
쉽게 말하면
리눅스 심장(커널)에 필요할 때만 끼웠다 뺄 수 있는 부품을 모듈이라고 해요. 주로 프린터·랜카드 같은 장치를 움직이는 프로그램(드라이버)이에요. 쓸 때만 끼우면 되니 심장을 매번 새로 만들 필요가 없어요.
시험용 정의
커널 모듈은 커널을 다시 컴파일하지 않고 실행 중에 적재·제거할 수 있는 기능 조각(주로 장치 드라이버)이다. 파일은 /lib/modules/커널버전/ 아래에 .ko로 있다.
비유로 이해하기
레고 본체(커널)에 필요할 때 끼웠다 빼는 부품(모듈)이다. 프린터를 쓸 때만 프린터 부품을 끼운다.
자세히
모듈 명령
| 명령 | 뜻 |
|---|---|
| lsmod | 현재 적재된 모듈 목록 (/proc/modules 내용) |
| modinfo 모듈 | 모듈 정보 (설명, 버전, 의존성, 매개변수) |
| modprobe 모듈 | 의존성까지 적재 |
| modprobe -r 모듈 | 제거 (의존하던 모듈도 함께) |
| insmod 파일.ko | 모듈 파일 하나 적재 (의존성 처리 안 함) |
| rmmod 모듈 | 모듈 제거 |
| depmod | 모듈 의존성 파일 modules.dep 생성 |
장치 확인 명령
| 명령 | 뜻 |
|---|---|
| lspci | PCI 장치 (그래픽·랜카드) |
| lsusb | USB 장치 |
| lsblk | 블록 장치(디스크) |
| lscpu | CPU |
| dmesg | 커널 메시지 (장치 인식 로그) |
| /proc/devices | 주 번호별 문자·블록 장치 |
장치 파일과 udev
장치는 /dev의 파일로 다룬다. 블록 장치(b, 디스크처럼 블록 단위)와 문자 장치(c, 터미널·키보드처럼 바이트 단위)가 있다. udev는 장치가 연결될 때 /dev 파일을 동적으로 만들고 규칙(/etc/udev/rules.d)을 적용한다. 부팅 때 자동 적재할 모듈은 /etc/modules-load.d/, 적재 금지(blacklist)는 /etc/modprobe.d/.
시험에 이렇게 나와요
- 적재된 모듈 목록 →
lsmod, 의존성까지 적재 →modprobe(단독 적재 insmod), 제거 →rmmod(modprobe -r), 정보 →modinfo - 새 커널 1차(온라인) 범위라 2차 기출에는 드물다
확인 문제
Q1. 새 USB 랜카드의 드라이버 모듈을 적재하려 한다. 의존하는 다른 모듈까지 함께 올려 주는 명령은?
- modprobe
- rmmod
- insmod
- lsmod
정답 보기
1번 modprobe
modprobe는 모듈 이름만 주면 의존성(modules.dep)을 보고 필요한 모듈까지 함께 적재한다. insmod는 지정한 모듈 파일 하나만 올리고 의존성은 처리하지 않는다.
Q2. 현재 커널에 적재된 모듈 목록을 보는 명령은?
- depmod
- modprobe -l
- modinfo
- lsmod
정답 보기
4번 lsmod
lsmod다. 지금 올라와 있는 커널 모듈을 보여 준다. modinfo는 모듈 하나의 정보를 본다.
Q3. 의존성을 고려하지 않고 모듈 파일을 직접 적재하는 명령은?
- modprobe
- depmod
- insmod
- rmmod
정답 보기
3번 insmod
insmod다. 파일 경로를 주면 그 모듈만 올린다. modprobe는 필요한 다른 모듈까지 함께 올린다.
Q4. USB 장치 목록을 확인하는 명령은?
- lspci
- lsmod
- lsblk
- lsusb
정답 보기
4번 lsusb
lsusb다. lspci는 PCI 장치, lsblk는 디스크 같은 블록 장치를 보여 준다.
Q5. 모듈 간 의존성 정보 파일(modules.dep)을 만드는 명령은?
- lsmod -d
- depmod
- modprobe -d
- mkdep
정답 보기
2번 depmod
depmod다. 모듈끼리 무엇이 무엇을 필요로 하는지 계산해 modules.dep에 적는다. modprobe가 이 파일을 읽는다.
헷갈리기 쉬운 O·X
커널 모듈을 추가하려면 반드시 커널을 다시 컴파일하고 재부팅해야 한다.
정답 보기
X 실행 중에 적재·제거할 수 있다.
modprobe -r 은 모듈을 제거한다.
정답 보기
O 맞는 설명이다.
/dev/sda는 문자 장치 파일이다.
정답 보기
X 디스크는 블록 장치.