본문 바로가기

Kernel

qemu + gdb 연동 리눅스 커널 패치와 커널(한빛미디어)를 보고 공부하던 중 버전차이로 인한 문제점이 있어 해결하는 과정을 기록했습니다. (질문에 답해주신 ultract2 님 감사드립니다.)현재 문제가 되는 부분은 qemu와 gdb를 연동시킨 후 gdb에서 break를 걸어도 멈추지 않고 커널 부팅이 진행되는 문제점이 발생하였고, 이 부분만 언급하도록하겠습니다. 나머지는 책을 참고하시면되겠습니다. 날짜 2018-07-11 Ubuntu 16.04커널 : Kernel 4.10개발용 커널 버전 : 4.18 커널 개발 툴 설치$sudo apt-get install build-essential kernel-package libncurses5 libncurses5-dev libssl-dev bison flex libelf-dev Gi.. 더보기
커널 소스 분석 1. system call trace 1. System call 시스템 콜은 운영체제의 커널이 제공하는 함수에 대해, 어플리케이션의 요청에 따라 커널에 접근하기 위한 방법으로 정의할 수 있습니다. 일반 어플리케이션은 커널의 자원을 마음대로 제어할 수 없기 때문에 커널에 자원을 요청해야 하는 경우 시스템 콜을 발생해 커널 함수를 호출하고, 자원을 요청할 수 있습니다. 출처 : 위키피디아 - https://ko.wikipedia.org/wiki/%EC%8B%9C%EC%8A%A4%ED%85%9C_%ED%98%B8%EC%B6%9C 이 그림은 시스템 콜을 검색하면 아직도 많이 볼 수 있는 그림입니다. (커널 세미나 자료에도 이 자료가 포함돼있더라는....) 이 그림에서 나타내는 시스템 콜의 순서는 다음과 같습니다.1) 유저 어플리케이션에서 시스템 함.. 더보기
리눅스 커널 맵 (이미지 클릭)#리눅스커널맵입니다.그림으로 보는 것도 좋지만 아래 링크를 타고 들어가면 시스템 함수의 호출 순서를 더 크게 볼 수도 있고,lxr로 편하게 시스템 함수를 따라갈 수 도 있습니다. (추가 참고할만한 사이트)http://docs.huihoo.com/linux/kernel/a1/ 더보기
우분투에서 커널 컴파일 필요 패키지 sudo apt-get install build-essential bin86 kernel-package wget libncurses5 libncurses5-dev openssl-dev 커널 소스 kernel.org 1. 소스 다운로드 (명령어 귀찮을 경우 브라우저로 접속) wget http://kernel.org/pub/linux/kernel/~~~ 2. 소스 복사 & 압축 해제 cp ~/Download/linux~ /usr/src/linux~ tar xvf linux~ 3. 기존 커널 설정 가져오기 cp /boot/config-'uname -r' .config make oldconfig 4. 환경설정 make menuconfig 5. 컴파일 한적이 있을 경우 make-kpkg clean 6.. 더보기