안녕하세요.
시간이 조금 지났지만, 디바이스 드라이버 개발에 깊이를 더 하려고 하니 리눅스 커널에 대해서 이해가 필요하다는 것을 알게 되었습니다. 그래서 책을 보며 학습하는 내용을 정리해 보기로 했습니다.
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
'IT > Operation System' 카테고리의 다른 글
디버깅을 통해 배우는 리눅스 커널의 구조와 원리 1, 도서 공부하기 3 - Raspberry Pi4 설정 및 리눅스 커널 빌드와 설치 (0) | 2025.02.16 |
---|---|
디버깅을 통해 배우는 리눅스 커널의 구조와 원리, 도서 공부하기 2 - Raspberry 4 설치(kernel 4.19) (2) | 2025.02.14 |