본문 바로가기

공부/커널

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.. 더보기
[프로젝트] 커널레벨 DSM 1.1 시스템 구성도 ◆ 유저 어플리케이션가장 기본적으로 테스트를 위한 유저 어플리케이션이 필요하다. 유저 어플리케이션은 mmap함수를 통해 특정 메모리 영역을 파일처럼 읽고 쓰는 역할을 한다.◆ 커널 모듈DSM을 커널 레벨에서 지원하기 위한 가장 필수적인 요소는 커널 모듈이다. 유저 어플리케이션은 각각 자신의 가상 메모리 영역(virtual memory area)을 나타내는 vm_area_struct를 가지고 있으며, 커널 모듈은 이 가상 메모리 영역을 관리하고 접근 할 수 있는 방법을 제공한다. 특히 현재 메모리에 존재하지 않는 가상 메모리 영역의 페이지를 불러오기 위해 페이지 폴트(page fault)[1]를 발생시킨다. 자세한 내용은 2장에서 설명한다.◆ 데몬 프로그램커널 레벨에서 DSM을 지원하.. 더보기
커널 소스 분석 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) 유저 어플리케이션에서 시스템 함.. 더보기
asmlinkage에 대해 잘 정리된 블로그가 있어 퍼옵니다http://studyfoss.egloos.com/4951809 더보기