eBPF를 위한 라즈베리파이 커널 빌드 가이드

라즈베리파이 OS에는 이미 최신 커널이 올라가 있고, CONFIG_BPF_SYSCALL과 CONFIG_BPF_JIT도 기본으로 켜져 있어서 단순한 eBPF 프로그램은 커널을 새로 빌드하지 않아도 로드된다. 문제는 그다음부터다. bpftrace나 최신 BCC 도구 상당수는 BTF(BPF Type Format)…

Continue ReadingeBPF를 위한 라즈베리파이 커널 빌드 가이드

‘Bad Epoll'(CVE-2026-46242): 리눅스 커널 use-after-free가 AI 감사망까지 피해간 이유

epoll은 nginx, Node.js, Python asyncio, 각종 데이터베이스는 물론 안드로이드의 이벤트 루프까지 떠받치는 리눅스의 핵심 I/O 멀티플렉싱 기능입니다. 그런데 2026년 5월, 이 epoll 서브시스템에서 일반 사용자 권한만으로 root를 딸 수 있는…

Continue Reading‘Bad Epoll'(CVE-2026-46242): 리눅스 커널 use-after-free가 AI 감사망까지 피해간 이유

우분투(Ubuntu) 최신 소식 총정리 — 26.04 LTS 신기능부터 Dirty Frag 커널 패치, 25.10 EOL까지

2026년 7월 첫째 주, 우분투 진영에서 한꺼번에 여러 소식이 쏟아졌습니다. 지난 4월 출시된 26.04 LTS "Resolute Raccoon"이 첫 포인트 릴리스를 앞두고 있는 와중에, 7월 1일에는 20.04 LTS부터 26.04 LTS까지 모든…

Continue Reading우분투(Ubuntu) 최신 소식 총정리 — 26.04 LTS 신기능부터 Dirty Frag 커널 패치, 25.10 EOL까지

리눅스 커널 block 레이어의 압축 기술: zram와 dm-vdo

메모리가 부족한 서버나 컨테이너 환경에서는 스왑을 켜는 순간 디스크 I/O 지연이 그대로 애플리케이션 응답 속도로 이어진다. 반대로 스토리지 비용을 아끼려고 압축을 걸고 싶어도, 파일시스템 레벨 압축(Btrfs, ZFS 등)은 해당 파일시스템을…

Continue Reading리눅스 커널 block 레이어의 압축 기술: zram와 dm-vdo

리눅스 커널에서 압축을 지원하는 파일시스템은?

리눅스 커널에는 파일시스템이 많지만, 그중 데이터를 투명하게 압축(transparent compression)해서 저장 공간을 아껴주는 것은 일부에 불과하다. 가장 많이 쓰이는 ext4나 XFS는 압축 기능 자체가 없고, Btrfs와 F2FS는 쓰기 가능한(writable) 파일시스템이면서 압축을…

Continue Reading리눅스 커널에서 압축을 지원하는 파일시스템은?

리눅스 커널 워크큐 (Workqueue): 바운드(bound) vs. 언바운드(unbound)

리눅스 커널은 다양한 비동기 작업을 효율적으로 처리하고 관리하기 위한 메커니즘을 제공하는데 그 중 하나가 워크큐(Workqueue)이다. 워크큐는 바운드(bound) 워크큐와 언바운드(unbound) 워크큐 두 가지 주요 유형으로 구분된다. 각각의 워크큐 유형은 특정 상황과…

Continue Reading리눅스 커널 워크큐 (Workqueue): 바운드(bound) vs. 언바운드(unbound)

사용자 File I/O에서 커널 디바이스 I/O까지 흐름 정리

리눅스 시스템에서 read() 또는 write()를 호출했을 때, 이 요청은 어떻게 실제 eMMC 디바이스까지 도달할까? 이번 글에서는 사용자의 File I/O 요청이 커널 eMMC 디바이스로 연결되는 전체 흐름을 커널 내부 경로를 따라…

Continue Reading사용자 File I/O에서 커널 디바이스 I/O까지 흐름 정리

kprobes와 tracepoint로 커널 디버깅하기

커널 코드에 printk를 넣고 재빌드/재부팅하는 것은 확인할 지점이 늘어날수록 비용이 커진다. tracepoint와 kprobe는 커널을 재빌드하지 않고도 특정 함수의 호출, 인자, 리턴값을 실시간으로 들여다볼 수 있게 해주는 두 가지 트레이싱 메커니즘이다.…

Continue Readingkprobes와 tracepoint로 커널 디버깅하기