IT/Operation System

디버깅을 통해 배우는 리눅스 커널의 구조와 원리 1, 도서 학습 1 - 시작 준비

변화의 물결1 2025. 2. 12. 14:24

 

 

안녕하세요.

 

 시간이 조금 지났지만, 디바이스 드라이버 개발에 깊이를 더 하려고 하니 리눅스 커널에 대해서 이해가 필요하다는 것을 알게 되었습니다. 그래서 책을 보며 학습하는 내용을 정리해 보기로 했습니다.

 


 

 

1. Linux Kernel 학습 위한 책 선정 이유

 

 리눅스 커널을 학습할 수 있는 많은 책들이 있는데 그중에 추천받은 책으로 진행하기로 했습니다. "디버깅을 통해 배우는 리눅스 커널의 구조와 원리 1" 책으로 1, 2권으로 나눠져 있습니다.

 

 또 하나는 선택한 이유 중에 하나는 테스트하는 보드가 라즈베리파이라는 것입니다. 다른 책들도 가능하지만 실습환경 맞춰 따라 하기가 쉽지 않다는 것입니다. 현재 출간된 버전도 라즈베리 파이 3으로 작성되어 실습이 안 되는 부분이 있다고 하지만, Pi 4로 조금 변경하면 가능하다고 해서 선택했습니다.

 

 

2. 실습 환경 확인

 

 기본적으로 책에서 실습하는 환경은 32bit ARM 기반 리눅스 커널(라즈비안 커널)로 분석을 합니다. 책 기준으로 커널 버전은 Linux Kernel 4.19, 실습보드는 라즈베리파이 3B, 라즈비안 버전은 2019-07-10-raspbian-buster-full.zip를 사용합니다.

 

 현재 시점에서 가장 비슷하게 실습을 따라 해 보기 위한 환경으로 Raspberry Pi 4, 2019-07-10-raspbian-buster.zip 찾아서 설치했습니다. 가능한 책과 동일한 버전으로 맞춰서 에러 나는 것을 최소화하려고 했습니다.

 

 

 

라즈비안 이전 버전 다운로드할 수 있는 경로입니다.

https://downloads.raspberrypi.org/raspbian/images/raspbian-2019-07-12/

 

 

 

 

 -> Raspberry Pi 4B 버전에 설치가 되지 않아 실습할 수도 없을 수 있습니다. 만약 동일 버전이 설치 되지 않는다면 다음 글(Raspberry 4 설치(kernel 4.19))을 참고하면 됩니다.

 

 

디버깅을 통해 배우는 리눅스 커널의 구조와 원리, 도서 공부하기 1 - Raspberry 4 설치(kernel 4.19)

안녕하세요.   설치하는 것까지 자세히 적으려고 한 것은 아닌데 최대한 책과 동일한 커널 버전의 라즈베리파이 버전으로 맞추려고 했습니다.  그러나 몇 가지 문제가 생겨 해결한 방법도 같

remnant24c1.tistory.com

 

 

3. 저자 동영상과 책을 보면서 시작하기 전 확인 사항

 

1) 책 읽는 요령

 

 - 공부한 내용은 메모 정리, 계획표를 세우고 꾸준히,

 - 실습은 가능하면 해보세요.

 - 직접 작성한 코드가 잘 되지 않는다면

   https://wikibook.co.kr/linux-kernel-1/에 있는 예제 코드를 받아 실행해 보라

 

 

2) 책을 공부하는 방법

 

 - 절대 외우지 마세요. (이해가 가장 중요)

 - 저자가 한 말을 검증해 보세요. (이해 후 검증, 구글링이나 다른 책으로 확인)

 - 반드시 실습을 해보세요. (ftrace 활용해서 콜스택 확인해 보는 것 필요)

 

 

3) Q/A

 

 (1) 이북도 출간예정

  - 2020 출간예정 -> 출간되어서 확인 가능

 

 (2) 라즈베리 파이 4에서도 실습가능한가?

  - 인터럽터 번호가 파이 4에서 바뀜, 5장, 6장, 7장 그대로 실습이 되지 않음.

   --> 인터럽터 번호를 바꿔주는 작업이 필요

  - 파이 4 관련 블로글 참조해 보라.  

     --> 책에 나온 egloos 사이트는 들어가지 않음, 개인 블로그로 접속하여 확인가능

         https://blog.naver.com/crushhh

   

 (3) 커널 빌드가 잘 안 된다.

  - 셀 스크립트 오류(오타) 확인해 보라 -> 블로그에 참조내용 나옴

    https://blog.naver.com/crushhh/222041562126

 

 

 시작 전에 저장의 동영상과 책을 보며 간단하게 정리해 봤습니다. 처음에는 재미있게 보고 있지만, 재미있게 따라 할 수 있는 실습이 많으면 좋은데 Linux가 OS다 보니, 이해해야 할 것이 많아서 중반까지 갈 수 있을까 문득 생각이 듭니다. ^^

 

 가능하다면, 천천히 따라 해 보며 필요한 내용 정리하며 공유해 보도록 하겠습니다.

 

 참고로, 최근에 커널 버전을 올린 내용으로 개정판 출시예정이라고 하니, 참고하시면 좋을 듯합니다.

 

 

감사합니다.

 

 

<참고 자료>

1. 디버깅을 통해 배우는 리눅스 커널의 구조와 원리 유튜브

https://www.youtube.com/playlist?list=PLRrUisvYoUw9-cTYgkbTbr9f9CpbGdq4F  

 

 

반응형