Linux Kernel

리눅스 커널 mm 서브시스템 동향 (3) — 리뷰 중인 패치와 쟁점

머지된 코드는 git log로 쉽게 볼 수 있다. 반면 앞으로 무엇이 들어올지는 메일링 리스트, 학회 발표, 메인테이너의 반응을 함께 봐야 알 수 있다. 기여할 주제를 고르려면 바로 이 "아직 머지되지…

Continue Reading리눅스 커널 mm 서브시스템 동향 (3) — 리뷰 중인 패치와 쟁점

리눅스 커널 mm 서브시스템 동향 (2) — 7.0~7.4에 머지된 변화

mm 서브시스템은 릴리스마다 수십 개의 패치 시리즈를 받는다. 머지 메시지만 읽어서는 어떤 흐름이 몇 릴리스에 걸쳐 이어지는지 보이지 않는다. 예를 들어 스왑 테이블 작업은 7.0부터 7.2까지 네 단계로 나뉘어 들어왔고,…

Continue Reading리눅스 커널 mm 서브시스템 동향 (2) — 7.0~7.4에 머지된 변화

리눅스 커널 mm 서브시스템 동향 (1) — 개발 구조와 추적 방법

리눅스 커널 메모리 관리(mm) 서브시스템은 mm/ 디렉터리에만 C 파일이 165개 있고, 릴리스마다 340~550개 커밋이 들어온다. 관심 있는 주제의 패치를 쓰려면 먼저 코드가 어느 트리를 거쳐 메인라인에 들어가는지, 누가 리뷰하는지, 지금…

Continue Reading리눅스 커널 mm 서브시스템 동향 (1) — 개발 구조와 추적 방법

리눅스 커널 7.4, x86에서 __get_user()·__put_user() 제거 — SMAP이 바꾼 사용자 공간 접근 비용

리눅스 커널 7.4에서 x86의 __get_user()와 __put_user()가 사라집니다. 두 매크로는 오랫동안 "검사를 한 번만 하고 빠르게 접근하는" 최적화 수단이었습니다. 하지만 SMAP(Supervisor Mode Access Prevention)이 보편화된 뒤로는 x86에서 오히려 더 느려졌습니다. 이번…

Continue Reading리눅스 커널 7.4, x86에서 __get_user()·__put_user() 제거 — SMAP이 바꾼 사용자 공간 접근 비용

커널 스택 16KB는 꼭 필요한가 — LPC 2026에서 논의된 커널 스택 축소 방안

64비트 Arm과 x86 리눅스에서는 스레드 하나마다 16KB의 커널 스택이 잡힙니다. 이 메모리는 스왑할 수 없습니다. 스레드 하나만 보면 작은 양이지만, 유휴 상태의 Android 기기에도 스레드가 5,000개쯤 있습니다. 수백만 스레드가 도는…

Continue Reading커널 스택 16KB는 꼭 필요한가 — LPC 2026에서 논의된 커널 스택 축소 방안

Android 커널의 벤더 훅(Vendor Hook) 840개 — GKI가 out-of-tree 코드를 받아들이는 방식과 그 대가

Android 기기는 처음부터 메인라인과 상당히 다른 커널을 써 왔습니다. GKI(Generic Kernel Image)가 도입되면서 그 차이는 많이 줄었습니다. 그래도 지금 출시되는 기기의 커널에는 여전히 out-of-tree 변경이 대량으로 들어 있습니다. Android가 이런…

Continue ReadingAndroid 커널의 벤더 훅(Vendor Hook) 840개 — GKI가 out-of-tree 코드를 받아들이는 방식과 그 대가

리눅스 커널 7.3 릴리스 — 역대 최대 개발 주기, 자동 리뷰가 버그를 줄이고 있다는 첫 신호

리누스 토발즈가 10월 18일(현지 시간) 리눅스 커널 7.3을 릴리스했습니다. 평소처럼 9주 개발 주기였지만 숫자는 평소와 전혀 다릅니다. 프로젝트 역사상 처음으로 한 주기의 전체 커밋이 2만 건을 넘었습니다. 개발자 수는 7.2가…

Continue Reading리눅스 커널 7.3 릴리스 — 역대 최대 개발 주기, 자동 리뷰가 버그를 줄이고 있다는 첫 신호

eBPF 실전 (6) — 페이지 폴트·slab·메모리 누수·OOM 관측하기

메모리 문제는 대부분 사후에 발견된다. OOM으로 프로세스가 죽은 뒤 dmesg 한 줄이 남고, 그 전까지 누가 얼마나 잡아먹고 있었는지는 알 수 없다. /proc/meminfo나 /proc/slabinfo는 지금 이 순간의 스냅샷이라 어떤 작업이…

Continue ReadingeBPF 실전 (6) — 페이지 폴트·slab·메모리 누수·OOM 관측하기

eBPF 실전 (5) — sched_ext로 커널 스케줄러 직접 구현하기

4편까지는 스케줄러가 하는 일을 밖에서 들여다보기만 했다. 스케줄링 정책 자체를 바꾸려면 kernel/sched/를 고쳐 커널을 다시 빌드하고 재부팅해야 했고, 정책 하나 시험하는 데 빌드 주기가 통째로 들어갔다. 커널 6.12에 정식 합류한…

Continue ReadingeBPF 실전 (5) — sched_ext로 커널 스케줄러 직접 구현하기