LWN 주간 리포트: 2026년 6월 25일 에디션
이번 주 LWN.net 위클리 에디션 주요 내용:
- Free-threaded Python: 과거, 현재, 그리고 미래 — GIL 제거의 역사와 Python 자유 스레딩의 현황
- AURpocalypse: 최근 AUR 공격 분석 — Arch Linux AUR에 대한 대규모 악성 패키지 공급망 공격
- Fedora: 2FA 의무화 논쟁 — AI 에이전트 계정 침해 사건 이후 Fedora의 보안 강화 시도
- Linux 7.2 Merge Window 전반부 — 7,000개 이상의 커밋이 병합된 다음 커널 릴리즈의 주요 변경사항
- LSFMM+BPF Summit 2026 BPF 세션:
- 단일 홉 블록 복제: RMR과 BRMR — 클라우드 환경의 내구성 있는 가상 블록 디바이스 구현
- OSPM 2026 보고: 리눅스 커널 전력 관리 및 스케줄러 서밋 1일차·2일차
Free-threaded Python: 과거, 현재, 그리고 미래
PyCon US 2026에서 CPython 핵심 개발자 Thomas Wouters가 GIL 제거 프로젝트의 전모를 발표했다. GIL은 파이썬 객체의 참조 카운트와 인터프리터 내부를 보호하지만 멀티코어 시스템에서 진정한 병렬 실행을 막아왔다.
1996년 Greg Stein의 패치부터 2015년 Larry Hastings의 Gilectomy까지 여러 시도가 있었으나 단일 스레드 성능 저하로 실패했다. 돌파구는 Meta의 Sam Gross가 만든 No-GIL CPython 3.9 포크였다. 핵심 기법은 ▲스레드별 객체 소유권 ▲지연된 참조 카운트 ▲quiescent-state 기반 메모리 회수 ▲교착 상태 없는 per-object 잠금이다.
Python 3.13(2024년 10월) 실험적 지원 시 20~40% 성능 저하가 있었으나, 3.14(2025년 10월)에서 0~10%로 개선됐다. Python 3.15에서는 GIL/무-GIL 버전이 단일 안정 ABI를 공유해 익스텐션을 한 번만 빌드하면 양쪽에서 동작한다. PyPI 상위 360개 바이너리 휠의 50% 이상이 이미 자유 스레딩을 지원한다. Wouters는 3.16(2027년)~3.20(2031년) 사이 자유 스레딩 버전이 기본 Python이 될 것으로 예측한다.
보안: 오픈소스 공급망 위협
AURpocalypse: Arch Linux AUR 대규모 공격
5월 27일부터 AUR에 대한 대규모 공급망 공격이 발생했다. 공격자는 신규 계정을 대량 생성해 고아 패키지를 채택한 뒤 npm/bun으로 악성 패키지를 설치하는 PKGBUILD를 배포했다. atomic-lockfile에는 eBPF 프로그램이 포함돼 GitHub 자격증명, SSH 키, 브라우저 쿠키, Slack/Discord 데이터를 탈취하려 했다. 탐지 스크립트를 피하기 위해 bun install을 16진수로 난독화하기도 했다. 최종 1,500개 이상의 패키지가 피해를 입었고 AUR은 신규 가입을 일시 중단했다.
근본 원인은 107,000개 패키지 중 14,000여 개가 고아 상태이며 누구든 즉시 채택 가능한 구조다. 커뮤니티에서는 ▲고아 패키지 잠금 및 인수 신청 절차화 ▲AUR 헬퍼에 최근 수정 시간 경고 표시 ▲LLM 기반 PKGBUILD 스캔 도구 도입이 논의 중이다.
Fedora: 2FA 의무화 논쟁
AI 에이전트에 의한 계정 침해 사건 이후 Fedora가 2FA 의무화를 재논의하고 있다. 2024년 3월 FESCo가 provenpackager 그룹에 2FA를 “SHOULD”로 채택했으나 실질적 이행이 없었고, 이번에는 3개월 내 “MUST”로 강화하는 방향이다. 걸림돌은 Fedora 인프라의 Kerberos 인증과 GNOME 온라인 계정의 2FA 지원 MR이 2024년 6월부터 GNOME 측에 계류 중이라는 점이다. Debian, openSUSE 등 다른 주요 배포판도 아직 2FA를 의무화하지 않고 있다.
커널 개발: Linux 7.2 Merge Window 전반부
7.1 릴리즈(6월 14일) 이후 7,000개 이상의 커밋이 mainline에 병합됐다. Merge Window는 6월 28일까지이며 linux-next에 6,000개 이상이 추가 대기 중이다.
아키텍처
- i486 전용 코드 13,000줄 이상 제거 (FPU 에뮬레이션 코드 포함)
- AMD Geode 프로세서 (OLPC XO-1) orphaned 처리
- Intel TDX 모듈 동적 교체 지원 (보안 업데이트를 실행 중 시스템에 적용 가능)
- s390 아키텍처 Rust 지원 추가
- arm64 데이터 영역을 선형 맵에서 분리 (보안 강화, KVM 회귀로 일단 revert)
BPF
- 트레이스포인트 부착 BPF 프로그램의 페이지 폴트 허용 → 사용자 공간 메모리 신뢰성 있게 접근 가능
bpf()시스템 콜에 공통 속성(common attributes) 지원 추가 (로깅 제어 등)- BPF 함수·kfunc 파라미터 제한(기존 5개) 해제 (스택에 추가 파라미터 허용)
- 커널 코드가 BPF 아레나에 페이지 폴트 없이 안전하게 접근 가능
- 가변 크기 해시 맵 신규 타입 추가 (기존 고정 버킷 제한 해소)
- 동일 BPF 프로그램을 다수 트레이스포인트에 일괄 부착 가능
Core 커널
/proc/interrupts구현 재작업 (성능 개선)- 캐시 인식 로드 밸런싱 병합 — 스케줄러가 캐시 도메인 내 프로세스를 그룹화해 성능 향상
- sched_ext 서브-스케줄러 지원 계속 추가
파일시스템·블록 I/O
file_getattr()으로 파일시스템 대소문자 구분 여부 조회 가능 (Windows NFS 클라이언트 지원)openat2()에O_EMPTYPATH플래그 추가 — O_PATH fd를 통해 파일 재오픈 가능openat2()에OPENAT2_REGULAR플래그 추가 — 일반 파일이 아닌 경우 오픈 실패 (보안 강화)- XFS 존드 스토리지(zoned storage) 지원 실험(experimental) 딱지 제거
- Btrfs 기본 large folio 사용, 최대 2MB huge folio 실험적 옵션 추가
보안
- slab 할당자에 Clang allocation tokens 도입 — 타입별 객체 배치 분리로 버퍼 오버플로 익스플로잇 난이도 상승
AF_ALG(커널 암호화 하드웨어 오프로딩) deprecated, 하드웨어 가속기 지원 제거 (소프트웨어 구현만 유지)
네트워킹
- TCP 인증 옵션(TCP-AO) 구현을 libcrypto 기반으로 교체 (코드 간소화·효율화)
- 멀티패스 TCP(MPTCP) 서브플로우 최대 8개 → 64개로 확장
- rtnl_lock(“big networking lock”) 사용 줄이기 계속 진행
- 레거시 제거: ISA/PCMCIA ARCnet, PCMCIA Bluetooth, AppleTalk 프로토콜 등
내부 변경
- 커널 빌드 최소 LLVM 버전 17.0.1로 상향
- Rust zerocopy 크레이트 커널 소스에 포함 (저비용 메모리 조작 프리미티브)
- nolibc에 OpenRISC·32비트 PA-RISC 아키텍처 지원 추가
- 블록 레이어 에러 주입 테스트 프레임워크 신설
LSFMM+BPF Summit: BPF 확장 기능의 진화
libarena: BPF 아레나를 위한 표준 라이브러리
BPF 아레나는 검증자(verifier) 범위 확인 제약 없이 커스텀 데이터 구조를 자유롭게 구축할 수 있는 메모리 영역으로 사용자 공간과 공유 가능하다. Emil Tsalapatis는 sched_ext 프로젝트 경험을 바탕으로 범용 메모리 할당자, 공통 데이터 구조, 디버깅 도구를 제공하는 libarena를 제안했다. BPF C 코드를 일반 C처럼 쉽게 작성하는 것이 최종 목표다.
BPF 코루틴: 복잡한 커널 확장 작업 단순화
현재 BPF 프로그램은 시작 컨텍스트에서 완료까지 중단 없이 실행돼야 한다. Kumar Kartikeya Dwivedi는 코루틴을 도입해 커널/사용자 공간 분할 실행을 가능하게 하려 한다. sendmsg 처리처럼 qdisc_run()이 다른 스레드 작업을 처리하는 복잡한 케이스도 코루틴으로 간결하게 표현할 수 있다. 프로토타입 구현 중이며 BTF 디버깅 정보 확장, Rust 지원이 향후 과제다.
KASAN for JIT-compiled BPF code
Alexis Lothoré가 KASAN(커널 메모리 접근 검사 도구)을 JIT 컴파일된 BPF 코드에 적용하는 작업을 진행 중이다. 기존 BPF JIT는 포인터 역참조를 직접 생성해 KASAN이 BPF 코드의 버그를 감지하지 못했다. 이제 JIT가 __asan*() 함수 호출을 삽입하도록 패치한다. BPF는 BPF 맵, 아레나, 전역 변수, 스택 등 별도 메모리 영역에 접근하므로 각 영역별 처리가 필요하다. 현재 x86 대상 LDX·STX 명령어에 집중 중이며, 1개 명령어가 12개로 늘어나는 오버헤드 최적화가 남아있다.
클라우드 스토리지: 단일 홉 블록 복제 RMR·BRMR
클라우드 환경에서 컴퓨트 호스트가 재동기화 경로에 관여하지 않으면서 내구성 있는 가상 블록 디바이스를 제공하는 문제를 해결한다. DRBD는 2-홉 쓰기 경로, MD-RAID 1 + NBD 조합은 재동기화 시 컴퓨트 대역폭 소비 문제가 있다.
RMR(Reliable Multicast over RTRS)은 RDMA 트랜스포트 위의 신뢰성 있는 멀티캐스트 계층이고, BRMR(Block device over RMR)은 /dev/brmrX를 blk-mq로 노출하는 씬 어댑터다. 스토리지 노드에도 RMR 클라이언트를 두어 복구 트래픽이 스토리지-스토리지 간 단일 홉으로 처리된다. 풀당 용량은 64TB~512TB이며 더티 맵으로 장애 복구 시 재동기화 범위를 추적한다.
이번 주 핵심 요약
- Python 자유 스레딩이 3.14에서 0~10% 저하로 실용 수준에 도달했으며, 3.15 단일 ABI 통합으로 익스텐션 호환성 문제가 해소된다.
- AUR 공급망 공격으로 1,500개 이상 패키지 피해. 고아 패키지 인수 절차 강화와 PKGBUILD 검토 문화 개선이 시급하다.
- Fedora가 provenpackager 그룹부터 3개월 내 2FA 의무화를 추진한다.
- Linux 7.2 Merge Window에서 BPF 주요 개선(페이지 폴트 허용, 가변 해시 맵)과 보안 강화(allocation tokens, AF_ALG deprecated)가 두드러진다.
- BPF 생태계가 libarena, 코루틴, KASAN 지원으로 빠르게 성숙하고 있다.