전체 글 50

리눅스 빌드 심화(Makefile, Kconfig)

1. 서론리눅스를 빌드하는 명령어 과정을 중심으로 Makefile, Kconfig, cross-compile 원리에 대해 자세히 알아보고자 한다. Makefile과 관련된 명령어는 Makefile을 참고하며 된다.1.1. 환경아키택처 : x64환경 : WSL리눅스 버전 : v6.152. make defconfig`make defconfig`는 make default configuration의 약자로 현재 아키택처의 기본 설정값을 통해 `.config` 파일을 생성하는 명령어이다. `.config`는 커널을 어떤 기능과 드라이버 등으로 구성할지를 결정하는 설정 파일이다. 리눅스 최초 빌드시 `make defconfig`없이 `make`를 한다면 아래와 같은 오류가 나게 된다.2.1. 아키택처(필요시 공부)..

운영체제/Kernel 2025.06.22

리눅스 빌드

1. 서론1.1. 환경아키택처 : x64환경 : WSL리눅스 버전 : v6.151.2. 출처아래 사이트에서 참고하되 초보자도 이해할 수 있게 끔 추가적인 내용을 덧붙여 작성하였다. GDB로 리눅스 커널 디버깅 하기리눅스 커널에 gdb를 붙여서 디버깅을 할 수 있다. gdb를 이용하면 line-by-line 실행 및 stacktrace, 변수값 출력등의 기능들을 사용할 수 있다.gee6809.github.io 2. install리눅스 커널 빌드를 위해서는 apt를 업데이트 한 후 필요한 패키지를 미리 다운로드 받을 수 있도록 하자.sudo apt update # apt 업데이트sudo apt install gcc -y # make 명령어를 위해 설치sudo apt install build-essential..

운영체제/Kernel 2025.04.25

헤더 파일

! 본 내용은 검토 전 포스트 입니다. 부정확한 내용이 있을 수 있으니 양해바랍니다.1. 헤더파일 만들어보기헤더파일에 대해 이해하기 전에 일단 만들어보자아래 코드는 calc 함수를 통해 어떠한 연산(여기서는 덧셈)을 하지만 definition이 되어있지 않아 my_header.h를 통해 함수를 가져와서 사용한다.시스템 헤더파일은 로 사용자 헤더파일은 “”으로 작성한다.#include #include "my_header.h" // 2. 따라서 헤더파일을 통로로 연결 시켜줘야 함int main(void) { int result; result = calc(1, 2); // 1. function call 하지만 definition이 없음 printf("result = %d\..