Kernel 3

디버깅을 통해 배우는 리눅스 커널의 구조와 원리 1, 도서 공부하기 4 - 전처리 코드 생성과 objdump 사용

안녕하세요.   라즈베리 파이 커널을 설치하고 나머지 뒷부분을 마무리하도록 하겠습니다.  리눅스 커널을 빌드하는 과정에서 전처리코드를 생성하는 방법이 나옵니다.커널에는 많은 양에 매크로가 소스분석에 걸림돌이 됩니다. 그래서 소스코드를 분석할 때 전처리 코드를 함께 보는 것을 추천하며 추출하는 방법 두 가지를 알려 줍니다.  1. 전처리 코드 생성 1) 전체 전처리 파일 추출  이전 글에서 처럼 root 권한을 얻어서 다음 내용을 진행합니다.  리눅스 커널 소스 디렉터리 안에 Makefile이 있습니다.  대략 420번 줄 KBUILD_CLAGS에 "-save-temps=obj \"를 추가해 주고 build 스크립트를 실행해 주면 전체 소스 파일에 전처리코드가 담긴 *.i, *.s 파일이 생성됩니다. 약 ..

IT/Operation System 2025.02.20

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

안녕하세요.  시간이 조금 지났지만, 디바이스 드라이버 개발에 깊이를 더 하려고 하니 리눅스 커널에 대해서 이해가 필요하다는 것을 알게 되었습니다. 그래서 책을 보며 학습하는 내용을 정리해 보기로 했습니다.   1. Linux Kernel 학습 위한 책 선정 이유  리눅스 커널을 학습할 수 있는 많은 책들이 있는데 그중에 추천받은 책으로 진행하기로 했습니다. "디버깅을 통해 배우는 리눅스 커널의 구조와 원리 1" 책으로 1, 2권으로 나눠져 있습니다.  또 하나는 선택한 이유 중에 하나는 테스트하는 보드가 라즈베리파이라는 것입니다. 다른 책들도 가능하지만 실습환경 맞춰 따라 하기가 쉽지 않다는 것입니다. 현재 출간된 버전도 라즈베리 파이 3으로 작성되어 실습이 안 되는 부분이 있다고 하지만, Pi 4로 ..

IT/Operation System 2025.02.12

라즈베리파이(Raspberry Pi) 리눅스 커널 구성 확인 및 빌드(build) 해보기

안녕하세요.   Rasbperry Pi를 사용하지만, 실질적으로 커널을 빌드해 볼 일을 많이 없을 것이라 생각됩니다. Device Driver 개발을 위해 커널 소스 혹은 해더를 다운로드하는 정도일 것입니다. 간단하게 커널 구성 내용과 빌드하는 방법 정도는 알아 두면 좋을 듯합니다.  언제 시점에서 테스트하느냐에 따라서 디렉터리 경로가 변경될 수 있으니 참고해서 따라 하시면 도움일 될 것입니다.  1. 커널 빌드를 위한 패키지 설치 git : 버전 관리 시스템으로, 소스 코드를 효율적으로 관리하고 공동 작업을 지원합니다. Git은 로컬과 원격 저장소 간의 코드 동기화를 가능하게 합니다. bc : 고급 계산기 언어로, 명령줄에서 수학적 계산을 수행할 수 있습니다. 특히, 스크립트에서 복잡한 계산을 처리할 ..