← DUJINLABS.COMKernel Series

Linux userspace / kernel ABI

System Programming

API 목록을 옮겨 적는 대신, 실행 가능한 C 프로그램이 libc와 syscall을 지나 어떤 커널 객체를 바꾸는지 따라갑니다. 짧은 반환, EINTR, 비동기 이벤트, 파일 디스크립터 수명처럼 실제 프로그램이 깨지는 조건도 정상 흐름과 함께 다룹니다.

Topics
37
Code
buildable C examples
Kernel
Linux 6.18.37 LTS
Method
code / object / failure path

Syscall / ELF

C 함수 호출이 syscall instruction과 ELF loader를 지나 커널 ABI에 닿는 구간을 정리합니다.

Process

fork, execve, wait, session, service 수명처럼 프로세스가 생기고 교체되고 회수되는 순서를 다룹니다.

File Descriptor / I/O

open file description, 짧은 I/O, 경로 해석, metadata 변경, ioctl을 파일 디스크립터 수명과 함께 봅니다.

Virtual Memory

주소 공간, mmap, page fault, protection, allocator가 실제 page와 만나는 시점을 구분합니다.

Signal / Event / IPC

비동기 알림을 file descriptor 기반 event loop에 모으고, 프로세스 사이에서 byte와 권한을 전달하는 방법을 다룹니다.

Thread / Synchronization

pthread 객체, mutex, condition variable, futex와 C atomic memory order를 실제 공유 데이터 기준으로 설명합니다.

Socket

socket 생성부터 nonblocking connect, stream framing, UDP, 이름 해석까지 네트워크 프로그램의 실패 지점을 따라갑니다.

Observe / Harden

io_uring, seccomp, /proc, strace, perf로 실행 경로를 줄이고 제한하고 관찰합니다.