QEMU(arm64)에 라즈베리파이 올리기

라즈베리파이 OS의 설정을 조금 바꿔볼 때마다 SD 카드를 굽고 보드에 꽂고 전원을 넣는 건 느리다. 보드가 아직 손에 없거나, 망가뜨려도 되는 환경이 필요할 때도 있다. QEMU의 raspi3b 머신은 배포된 이미지를…

Continue ReadingQEMU(arm64)에 라즈베리파이 올리기

라즈베리파이 u-boot 올리기

라즈베리파이 펌웨어는 config.txt에 적힌 커널 이미지를 SD 카드에서 읽어 바로 실행한다. 중간에 개입할 지점이 없어서 커널을 여러 개 두고 골라 부팅하거나, TFTP·USB에서 이미지를 받아오거나, 부트 인자를 바꿔가며 시험하려면 그때마다 SD…

Continue Reading라즈베리파이 u-boot 올리기

리눅스 커널의 시스템 콜 처리 경로 — arm64 예외 벡터부터 핸들러까지

x86-64에서는 syscall 명령이 MSR_LSTAR에 적힌 주소로 곧장 점프한다. 시스템 콜 전용 진입점이 레지스터 하나에 박혀 있는 구조다. arm64에는 그런 전용 레지스터가 없다. svc 명령이 만드는 것은 "동기 예외" 하나일 뿐이고,…

Continue Reading리눅스 커널의 시스템 콜 처리 경로 — arm64 예외 벡터부터 핸들러까지

Multi-Gen LRU(MGLRU) 확인하기 — 세대 히스토그램과 선제적 회수

메모리가 부족해지면 커널은 페이지 캐시나 익명 페이지 중 "안 쓸 것 같은" 것을 골라 내보낸다. 이 판단이 틀리면 방금 내보낸 페이지를 곧바로 다시 읽어들이는 스래싱(thrashing)이 생기고, 저사양 기기나 메모리 상한이…

Continue ReadingMulti-Gen LRU(MGLRU) 확인하기 — 세대 히스토그램과 선제적 회수

lockstat 사용법 — /proc/lock_stat으로 커널 락 경합 지점 찾기

멀티코어에서 처리량이 코어 수만큼 늘지 않고 어느 지점부터 오히려 떨어질 때, 원인이 락 경합(lock contention)인 경우가 많다. perf lock은 배포판 커널 그대로도 쓸 수 있어 편하지만 트레이스포인트를 기록하는 방식이라 "측정하는…

Continue Readinglockstat 사용법 — /proc/lock_stat으로 커널 락 경합 지점 찾기

Rust 커널 프로그래밍 가이드 (5) — platform 드라이버로 배우는 모듈의 표준 구조: probe/remove와 디바이스 트리 바인딩

앞선 편들에서 module! 매크로로 init/exit을 가진 모듈을 만들고 misc device까지 붙여봤다. 그런데 실제 하드웨어를 다루는 드라이버는 insmod 시점에 일을 시작하지 않는다. 모듈은 "이런 하드웨어를 담당할 수 있다"고 등록만 해두고, 그…

Continue ReadingRust 커널 프로그래밍 가이드 (5) — platform 드라이버로 배우는 모듈의 표준 구조: probe/remove와 디바이스 트리 바인딩

LWN Weekly Report: 2026년 8월 13일 주요 뉴스

이번 주 LWN.net 위클리 에디션 주요 내용이다. 30년 가까이 큰 변화가 없던 binfmt_misc에 BPF 프로그램이 인터프리터를 고르는 인터페이스가 들어오고, 반대로 블록 계층 오류 주입에서는 BPF 기반 설계가 명시적으로 거부됐다. 단일…

Continue ReadingLWN Weekly Report: 2026년 8월 13일 주요 뉴스

오픈소스 서밋 코리아 2026 결산 — 그렉 크로아-하트만 “AI 취약점 보고의 25~33%가 오탐”

오픈소스 서밋 코리아 2026이 8월 11일 서울 파르나스 호텔에서 막을 올렸습니다. 지난 예고 글에서 기조연설 라인업과 트랙 구성을 정리했는데, 이번에는 실제로 무대에서 어떤 이야기가 나왔는지를 정리합니다. 키워드는 하나로 모입니다. AI가…

Continue Reading오픈소스 서밋 코리아 2026 결산 — 그렉 크로아-하트만 “AI 취약점 보고의 25~33%가 오탐”

Python socket.send_fds()로 프로세스 간 파일 디스크립터 전달하기

권한이 있는 프로세스만 열 수 있는 파일이나 소켓을, 정작 일은 권한 없는 프로세스가 처리해야 하는 구조가 종종 필요하다. 경로만 넘겨주고 상대가 다시 open()하게 하면 권한이 없어 실패하거나, 그 사이 파일이…

Continue ReadingPython socket.send_fds()로 프로세스 간 파일 디스크립터 전달하기