본문 바로가기
Quality control (Univ. Study)/Operating System

OS(modificating kernel)

by 생각하는 이상훈 2022. 10. 7.
728x90

Modification of the kernel

/linux-2.6.25.10/init/main.c의 start_kernel() 함수를 modify해보고 해당 내용이 잘 출력이되는지 확인을 하였다.

kernel을 modify하고 그 내용을 확인하기 위해서는 linux-2.6.25.10위치에서 "make bzImage"를 통해 kernel을 recompile하고 "cp arch/x86/boot/bzImage /boot/bzImage"를 통해 새로운 kernel을 boot location에 copy해주고 "reboot"를 통해 재부팅을 해주었다.

그 뒤에는 "dmesg > x", "vi x"를 통해 원하는 메세지 "hello from me"가 제대로 출력됨을 확인하였다.


Modifing trap_init()

grep  -nr  “trap_init”  *  |  more 명령어를 이용하여 trap_init함수의 위치를 찾아주었다.

trap_init() 함수에 "hello from trap_init()"를 출력해주는 printk 코드를 넣어준다.

이어서 init_IRQ함수와 init_timer함수에도 문구를 넣어주었다.

Kernel에 변형을 주었으니 recompile해주는 것을 잊지 않고 진행한다.

추가한 문구들이 출력되었음을 확인하였다.


Making My Linux2

 

boot/grub/grub.conf에서 새로운 linux2를 만들어주었다. 이때 구성은 기존의 linux 명령어들을 copy해주었다.

"hello from My Linux2"가 출력되도록 modify를 진행하였다.

reboot를 하니 My Linux2선택지가 생기게 되었고

Linux2에서 dmesg > x, vi > x를 하니 hello from my Linux2가 제대로 출력됨을 알 수 있었다.


 

728x90

'Quality control (Univ. Study) > Operating System' 카테고리의 다른 글

OS (fork)  (0) 2022.11.10
OS(process id)  (1) 2022.11.05
OS(interrupt)  (0) 2022.11.05
OS(system_call)  (0) 2022.10.11
OS (linux, start_kernel)  (1) 2022.10.03