# Linux kernel
[Kernel] 전처리 파일로 쉽게 Macro함수 분석
LInux Kernel 소스 상단의 Makefile을 아래와 같이 수정하고 빌드하면 .i로 끝나는 전처리가 된 파일이 생성된다. 리눅스 커널 코드 분석할때 가장 고통스러운 부분은 끝없이 찾아서 따라가야 하는 매크로 함수및 정의들인데. 이렇게 빌드하면 전처리가 끝난 최종

리눅스 커널 내부구조 10장 #3 buddy allocator
Linux Kernel 의 buddy allocator 를 구현한 코드이다. 책에서 나온 코드를 바닥부터 뜯어 고쳐서 원본 코드랑 완전히 달라졌으나 그 기저의 동작 방식은 그대로 남겨 놓았다. 코드 해설은 소스 코드 내의 주석으로 달아 놓았기에 생략하겠다.책 리눅스 커

[Linux Kernel] LWN.net, mailing list 구독
아침에 출근하고 열어보니 수북하게 쌓여있는 메일들... 최근 Linux Kernel Mailing List 와 LWN.net 구독 신청을 하게 되었다. 구독 방법에 대해 간단하게 써 보려 한다. 가장 먼저 할 일은 어떤 mailing list 에 가입할지를 정해야 한다

리눅스 커널 내부구조 10장 #2 스케줄러 구현
운영체제의 스케줄러를 C 를 통해 구현하는 방법을 소개한다. 스케줄러 자체가 복잡하므로 코드 분량의 압박이 조금 있지만 하나 하나 뜯어보면 크게 어렵지 않다. 함수 및 일부 라인에 주석을 달아 설명을 첨부하였다. 1. 소스코드 main.c main.c 코드는 thr

리눅스 커널 내부구조 10장 #1 쉘 구현
크게 어려운 내용은 없고, run() 함수에 핵심적인 코드가 담겨있다. shell 프로그램이 입력받은 명령어를 확인하고, 해당 명령어가 builtin_commands 경우 미리 정의된 동작을 실행, 존재하지 않는 명령어의 경우 execvp() 함수를 통해 실행한다. e

[linux kernel exploit] do_brk 취약점
내가 분석한 취약점중... 제일 분석 기간이 오래걸렸던 취약점.. 취약점 자체는 굉장히 쉬운데, (취약점이 쉽다는건 취약점을 이해하기 쉽고 간단한 취약점이라는 뜻!) 익스플로잇 과정이 너무 어려워서.. 분석이 오래걸림..익스플로잇 과정을 분석하는데 어려웠던 이유는1\.

[QEMU + Yocto + Raspberry Pi 4 + ARM64] 리눅스 커널 디버깅하기
이 글은 독자가 아래의 사항들을 모두 이해하고 있으며, 또한 이러한 요구사항에 대해 적절한 : Yocto Project 로 빌드한 리눅스 커널을 QEMU 로 부팅해본 경험이 있다. Raspberry Pi 가 무엇인지 알고, 또한 Headless Mode 로 사용