티스토리 뷰
리눅스 커널(linux-3.9.3)에 시스템 콜 추가하기
1. 우선 arch/x86/syscalls/syscall_32.tbl 에 시스템 콜 번호를 정의한다.
시스템 콜 테이블의 포멧은 아래와 같다.
<number> <abi> <name> <entry point> <compact entry point>
351 i386 opsyscall sys_opsyscall
2. 시스템 콜 헤더파일을 수정한다. 위치는 include/linux/syscalls.h 에 아래와 같은
시스템 콜 함수를 추가한다.
asmlinkage long sys_opsyscall(const char* test);
3. linux-3.9.3/ 커널소스디렉토리 아래에 opsyscall/syscall.c 파일을 작성한다.
opsyscall/Makefile 도 작성해준다. 아래와 같다.
4. 커널 Makefile(linux-3.9.3/Makefile)에서 525 라인에 있는 내용을 수정하여 준다.
↓
5. 커널 컴파일을 수행..
6. 추가한 시스템 콜을 호출하는 프로그램을 작성한다.
7. 프로그램을 컴파일하고 실행시킨후 dmesg 명령을 통해 확인한다.
'리눅스 > 리눅스 명령어 및 기타' 카테고리의 다른 글
[bash&zsh 환경] su 명령어 사용시 hypen 옵션 사용 유무의 차이 (0) | 2018.03.13 |
---|---|
[리눅스명령어] ls 명령 팁정리 (0) | 2018.03.12 |
리눅스커널 스터디 2013.09.14 정리 (0) | 2013.09.14 |
module 에서의 sys_* (시스템 콜) 함수호출?? (0) | 2013.08.14 |
모듈 따로 컴파일하기(Kbuild and module compile) (0) | 2013.06.12 |