메모리가 작은 시스템을 위한 커널 경량화 (1) — 측정 방법론과 베이스라인

컨테이너나 저사양 임베디드 보드처럼 메모리가 1GB 이하로 제한된 환경에서는 배포판 defconfig 커널조차 여유 공간을 상당히 잡아먹는다. 배포판 커널은 다양한 하드웨어를 지원하기 위해 수많은 드라이버와 서브시스템을 켜둔 상태라, 실제 타깃 환경에서는…

Continue Reading메모리가 작은 시스템을 위한 커널 경량화 (1) — 측정 방법론과 베이스라인

Linux 커널 모듈 개발 입문 — Hello World부터 모듈 파라미터, /proc 인터페이스까지

커널에 기능을 하나 추가하려고 매번 전체 커널을 재컴파일하고 재부팅해야 한다면 개발 사이클이 너무 느려진다. Loadable Kernel Module(LKM)은 이 문제를 insmod/rmmod만으로 런타임에 코드를 넣고 뺄 수 있게 해준다. 이 글에서는 최소…

Continue ReadingLinux 커널 모듈 개발 입문 — Hello World부터 모듈 파라미터, /proc 인터페이스까지

Ubuntu Livepatch로 재부팅 없이 커널 보안 패치 적용하기

커널 보안 패치가 나와도 프로덕션 서버는 재부팅 창을 잡기가 쉽지 않다. 클러스터 전체를 순차적으로 내렸다 올리는 동안 서비스 영향을 감수해야 하고, 그 사이 취약점은 그대로 열려 있다. Canonical Livepatch는 실행…

Continue ReadingUbuntu Livepatch로 재부팅 없이 커널 보안 패치 적용하기

리눅스 커널, 24시간 만에 CVE 440건 공시 — AI가 가속한 버그 헌팅의 그림자

2026년 7월 19일 하루에만 431건, 다음 날 9건이 더해져 총 440건의 CVE 보안 권고가 linux-cve-announce 메일링 리스트에 한꺼번에 올라왔습니다. 리눅스 커널이 자체 CVE Numbering Authority(CNA)로 활동하기 때문에 가능한 규모지만, 보안…

Continue Reading리눅스 커널, 24시간 만에 CVE 440건 공시 — AI가 가속한 버그 헌팅의 그림자

오픈AI “패치 더 플래닛” — GPT-5.5-Cyber, 리눅스 커널서 취약점 32건 자동 발견

오픈소스 프로젝트 메인테이너들은 최근 몇 년간 두 가지 상반된 AI 문제를 동시에 겪어 왔습니다. 한쪽에는 AI가 대충 만들어낸 가짜 버그 리포트가 버그 바운티 채널을 스팸으로 채우는 문제가 있었고(curl 프로젝트가 대표적으로…

Continue Reading오픈AI “패치 더 플래닛” — GPT-5.5-Cyber, 리눅스 커널서 취약점 32건 자동 발견

seccomp-bpf로 리눅스 커널 시스템 콜 화이트리스트 필터링하기

컨테이너 런타임이나 브라우저 샌드박스가 "이 프로세스는 open, socket 같은 시스템 콜을 못 쓰게 막는다"고 할 때, 그 뒤에는 대부분 seccomp-bpf가 있다. Docker나 systemd의 SystemCallFilter=도 결국 libseccomp을 감싼 것일 뿐, 커널이…

Continue Readingseccomp-bpf로 리눅스 커널 시스템 콜 화이트리스트 필터링하기

리눅스 커널 futex로 유저스페이스 락 직접 구현하기

pthread_mutex 하나로도 충분히 락을 걸 수 있는데 왜 futex를 직접 만져야 할까. 사실 glibc의 pthread_mutex_lock 자체가 내부적으로 futex(2) syscall 위에 구현되어 있다 — 경쟁이 없을 때는 유저스페이스의 atomic CAS(compare-and-swap) 한…

Continue Reading리눅스 커널 futex로 유저스페이스 락 직접 구현하기

리눅스 커널 DAMON으로 메모리 접근 패턴 모니터링하기

메모리 회수는 LRU 리스트로 hot/cold 페이지를 구분해야 하는데, page table의 accessed bit를 주기적으로 스캔하는 전통적 방식은 메모리가 커질수록 오버헤드가 커진다. DAMON(Data Access MONitor)은 리눅스 5.15부터 커널에 들어온 범용 데이터 접근…

Continue Reading리눅스 커널 DAMON으로 메모리 접근 패턴 모니터링하기

Ubuntu에서 커널을 직접 빌드해 DAMON 활성화하기

Ubuntu 24.04 generic 커널은 CONFIG_DAMON이 꺼져 있어 /sys/kernel/mm/damon/admin/이 없다. 실제로 쓰려면 커널을 직접 빌드해야 한다. 현재 설정 기반으로 DAMON 옵션만 추가해 빌드·설치·재부팅하고 동작까지 확인한 기록이다. 준비 $ sudo apt-get install…

Continue ReadingUbuntu에서 커널을 직접 빌드해 DAMON 활성화하기

리눅스 커널에서 scatter-gather DMA 이해하기

디바이스에 넘길 버퍼가 물리적으로 연속되어 있다는 보장은 없다. vmalloc으로 받은 큰 버퍼는 물리 페이지가 여기저기 흩어져 있고, 네트워크 패킷처럼 여러 조각(헤더+페이로드)을 한 번의 전송으로 묶어야 하는 경우도 흔하다. scatter-gather DMA는…

Continue Reading리눅스 커널에서 scatter-gather DMA 이해하기