Kernel
-
QEMU를 이용해 커널 이미지 바꿔서 부팅해보기개발/가상화 2018. 12. 20. 22:20
전가상화를 지원하는 QEMU는 게스트 커널을 수정하지 않고 띄울수 있다는 장점이 있지만 virtio 같은 최적화 옵션을 사용하려면 커널의 일부 수정이 필요하다. 기존에 게스트 이미지에 내장된 커널을 수정하는 방법으로 가장 쉽게 떠올릴 수 있는 것은 게스트를 띄운 다음 이 안에서 커널 코드를 수정하고 빌드하는 것인데 답답한 게스트의 성능때문에 오래 걸리고 답답하다. QEMU에서는 이런 점을 고려해서 파라미터를 이용해 사용할 커널 이미지를 지정할 수 있도록 만들었다. 개발자는 호스트 PC 환경에서 게스트에서 사용할 커널 이미지를 빌드한 후 스크립트에 -kernel 파라미터로 지정하면 된다. #!/bin/bash DISK_PATH=. qemu-system-x86_64 \ -cpu host \ -smp 8 \ ..
-
모놀리식(Monolithic) kernel과 마이크로(Micro) 커널개발/컴퓨터사이언스 2016. 10. 8. 17:12
커널은 크게 커널 내에 넣는 feature의 양에 따라 모놀리식(Monolithic) 커널과 마이크로(Micro) 커널로 나눌 수 있다. 위 구조를 이해 할 때 통념을 좀 깨야 할 필요가 있었다. 나는 너무도 당연히 kernel이 device driver나 File system을 관리 한다고 생각했는데 꼭 그런 것 만은 아니었다. 모놀리식 커널은 리눅스로 OS를 배운 학부생에게 가장 익숙한 OS이다. Application을 제외한 모든 system 관련 기능들(VFS, IPC, Filesystem 등등)을 커널이 관리하며 각 영역들은 단계적으로 나뉘어 있다. 생각해보면 리눅스 프로세스 하나를 만들 때 VFS에서 제공하는 fopen 라이브러리를 이용해 다른 파일 시스템에 쉽게 접근이 가능했고, IPC를 이..