Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- AWS Resolver
- 다이렉트 커넥트
- s3
- Route53 Endpoint
- S3 Interface Endpoint
- DXGW
- bWAPP M1
- Terraform
- Route53 Resolver
- VGW
- x lock s lock
- ix is lock
- 푸시게이트웨이
- push-gateway
- bWAPP install
- S3 PrivateLink
- CrossSiteScript
- SessionManager 터널링
- s3 sync
- 리눅스
- BastianHost
- S3 Gateway Endpoint
- 도커
- sessionManager
- S3 private통신
- 마운트
- bWAPP arm
- DNS Resolver
- ec2
- node pod 분리
Archives
- Today
- Total
이것이 점프 투 공작소
커널 모듈 만들고 적재하는법 본문
간단한 커널 코드를 만들어서 빌드 후에 insmod로 커널에 적재하려고 합니다.
원래 도커 우분투 컨테이너를 사용해서 진행하려했는데 우분투 컨테이너에 맞는 커널 헤더를 못찾아서 결국 vm을 받아서 진행하였습니다..
1. 커널 헤더 다운받기
apt search linux-headers | grep $(uname -r) 을 통해 우분투에 맞는 커널 헤더를 다운받습니다.
설치된 커널 헤더는 ls -l /lib/modules 명령어로 확인 가능합니다.
2. 커널 코드 작성
간단한 문자열을 출력하는 hello.c 파일을 작성하였습니다.
module_init 에는 모듈이 시작될때 실행할 코드를, module_exit에서는 모듈이 종료될떄 동작하는 코드를 작성해주시면됩니다.
3. Makefile
소스파일을 실행파일로 만들기 위한 Makefile을 작성합니다.
Makefile은 Make로 실행하기 위한 쉘 명령어들을 작성한 파일입니다.
4. Make로 모듈 빌드하기
make 명령어로 hello.c 파일을 빌드합니다.
빌드가 성공하면 아래와 같은 파일들이 생성됩니다.
modinfo 명령어로 모듈에 적재할 hello.ko 파일에 대한 정보를 확인 할 수 있습니다.
빌드된 파일의 vermagic버전과 현재 리눅스의 커널 버전이 맞지 않으면 적재가 실패 할 수 있습니다.
5. 빌드한 모듈 커널에 적재하기
sudo insmod hello.ko 명령어로 커널에 모듈을 적재합니다.
lsmod 명령어로 적재된 모듈들을 확인 할 수 있습니다.
작성한 printf 의 로그들은 cat /var/log/syslog 파일에서 확인 할 수 있습니다!
'리눅스' 카테고리의 다른 글
시스템 콜 (Sys Call)에 대해 알아보자 (0) | 2023.05.06 |
---|---|
선점과 프로세스잠금에 대해서 알아보자 (0) | 2023.03.21 |
커널에서의 문맥교환 (0) | 2023.02.14 |
UFS와 Union Mount Filesystem에 대해 알아보자 (0) | 2023.02.04 |
리눅스 NameSpace에 대해 알아보자 (0) | 2023.02.04 |