모듈 (Module)
설명
리눅스 커널은 컴파일 할 떄 시스템에서 기본적으로 사용하는 요소는 하나의 덩어리로 묶여
커널 파일을 만들며 , 자주 사용하지는 않지만 사용할 가능성이 있는 부분은 모듈로 만들어 사용한다.
리눅스에서 모듈은 우주선의 경우와 비슷하다.
우주선의 모체는 커널 이미지이고 , 작은 소선이 커널 모듈이다.
커널 모듈이 필요 할 떄는 커널 이미지에 모듈이 합류하고 , 필요하지 않을 때에는 커널에서 빠져나와
독립적인 모듈형태로 존재하므로 시스템의 메모리를 절약 할 수 있다.
관련 디렉터리
/lib/modules/커널버전/kernel 디렉터리 하위에 시스템에서 사용 가능한 모듈이 생성되어 있다.
[root@localhost test]# ls /lib/modules/2.6.32-431.el6.x86_64/kernel/
arch crypto drivers fs kernel lib mm net sound
시스템에서 사용가능한 모듈이 들어있는 디렉터리 경로
[root@localhost test]# ls -l /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/acpi/
합계 160
-rwxr--r--. 1 root root 36104 2013-11-22 13:18 acpi_pad.ko
drwxr-xr-x. 2 root root 4096 2017-10-17 21:05 apei
-rwxr--r--. 1 root root 23808 2013-11-22 13:18 power_meter.ko
-rwxr--r--. 1 root root 28184 2013-11-22 13:18 sbs.ko
-rwxr--r--. 1 root root 13232 2013-11-22 13:18 sbshc.ko
-rwxr--r--. 1 root root 50512 2013-11-22 13:18 video.ko
② insmod
- 커널에 모듈을 적재하는 명령으로 모듈을 자동으로 검색하고 삽입된다.
- 해당 모듈 파일이 존재하는 디렉터리로 이동해야 명령 수행이 가능하다.
- 의존성이 있는 모듈인 경우에는 적재할 수 없다.
insmod [모듈 파일명]
insmod ip_tables.ko
③ rmmod
- 커널에서 모듈을 제거하는 명령어.
- 다른 모듈에 의해 사용 중인 모듈은 제거할 수 없다. (다른 모듈부터 제거하고 해당 모듈을 제거 해야됨)
rmmod [모듈]
rmmod ip6table_filter
④ modprobe
- 커널에 모듈을 적재 하거나 제거하는 명령어.
- 다른 명령어와는 다르게 의존성이 있는 모듈이나 단일 모듈 등의 모든 모듈을 적재 및 삭제할 수 있다.
- 적재할 모듈이 다른 모듈에 의존하고 있는 경우 의존 된 모듈부터 적재한다.
- 최상위 모듈 디렉터리에 존재하는 mudules.dep 파일을 참조해 모듈간의 의존성을 해결한다.
modprobe [option] 모듈 [기호=값]
[option]
[root@localhost rds]# modprobe -l | head -3
kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko
kernel/arch/x86/kernel/cpu/cpufreq/powernow-k8.ko
kernel/arch/x86/kernel/cpu/cpufreq/mperf.ko
사용 가능한 모듈 정보중 맨 위 3줄만 출력.
⑤ modinfo
- 모듈 파일에 대한 정보를 출력하는 명령어.
modinfo [option] 모듈 파일명 or 모듈
[root@localhost module]# modinfo ip_tables
filename: /lib/modules/2.6.32-431.el6.i686/kernel/net/ipv4/netfilter/ip_tables.ko
description: IPv4 packet filter
author: Netfilter Core Team <coreteam@netfilter.org>
license: GPL
srcversion: DC18D42211BCD06DB350605
depends:
vermagic: 2.6.32-431.el6.i686 SMP mod_unload modversions 686
ip_tables 모듈에 대한 정보가 출력된다.
모듈 이름이 아닌 파일명으로도 확인이 가능하다. (예. /모듈파일 경로~/ip_tables.ko)
⑥ depmod
- 의존성을 검사 한뒤 modules.dep 파일을 갱신한다.
- kerneld , modprobe 명령어를 실행하기 전에 depmod -a를 먼저 사용해서 모듈파일을 갱신해야 한다.
depmod [option]
추가
커널 2.4 버전에서는 모듈을 부팅시 자동으로 로드되게 할려면 /etc/modprobe.conf 파일에 등록해서 사용한다.
커널 2.6 버전부터는 /etc/modprobe.d 디렉터리 안에 .conf 로 끝나는 모든 파일이 부팅시 자동 로드된다.
커널 2.6 버전에선 modprobe.conf 파일 자체가 사라짐.
[root@localhost module]# ls -l /etc/modprobe.d/
합계 32
-rw-r--r--. 1 root root 52 2016-10-22 02:54 anaconda.conf
-rw-r--r--. 1 root root 884 2013-11-23 23:26 blacklist.conf
-rw-r--r--. 1 root root 382 2013-06-20 21:24 dist-alsa.conf
-rw-r--r--. 1 root root 473 2013-06-20 21:24 dist-oss.conf
-rw-r--r--. 1 root root 5596 2013-06-20 21:24 dist.conf
-rw-r--r--. 1 root root 30 2009-10-10 12:38 openfwwf.conf
-rw-r--r--. 1 root root 139 2016-10-24 12:54 vmware-tools.conf
'리눅스 > 강의' 카테고리의 다른 글
[19. 하드디스크 간단정리] (0) | 2017.11.09 |
---|---|
[18. 커널] (0) | 2017.11.09 |
[16. RPM] (0) | 2017.11.08 |
[15. 프로세스] (0) | 2017.11.05 |
[14. LVM] (0) | 2017.11.05 |