아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
랍스타즈 favicon랍스타즈

커널의 $ORIGIN 지원, eBPF로 가능해지다

by DD
2026-07-21
1일 전
조회수 0

Linux 커널 VFS 서브시스템에 $ORIGIN 지원을 추가하는 제안이 논의됨

eBPF와 binfmt_misc를 활용하여 동적으로 인터프리터를 선택하는 방식으로 해결책 제시

NixOS 모듈을 통해 부팅 시 $ORIGIN 지원을 등록하는 방안이 계획됨

기존 바이너리 호환성을 유지하며 선택적으로 적용하는 방식이 제안됨

VFS 서브시스템의 $ORIGIN 지원 논의

초기 제안은 Linux 커널의 VFS(Virtual File System) 서브시스템에 직접 $ORIGIN 지원을 추가하는 것이었다. 그러나 커뮤니티 논의를 통해 eBPF(extended Berkeley Packet Filter)를 활용하는 방식이 더 유연하고 강력한 해결책으로 떠올랐다. 이는 기존의 고정된 인터프리터 경로를 동적으로 변경할 수 있는 가능성을 열어주었다는 점에서 주목할 만하다.

eBPF와 binfmt_misc를 통한 동적 인터프리터 선택

핵심 아이디어는 eBPF 프로그램을 작성하여 binfmt_misc 서브시스템을 통해 동적으로 인터프리터를 선택하는 것이다. 제안된 eBPF 코드는 ELF 바이너리를 감지하고, 바이너리의 경로를 기반으로 인터프리터 경로를 설정한다. 이는 데이터 격리 아키텍처(Data Isolation Architecture)를 통해 각 바이너리가 독립적인 런타임 환경을 가질 수 있도록 지원하며, 기존의 QEMU 등록 스크립트를 대체할 수 있는 잠재력을 가진다.

프로세스 식별자(PID) 및 /proc/self/exe 문제 해결

기존 binfmt_misc 방식은 인터프리터가 실제 실행된 바이너리의 프로세스 식별자(PID)와 `/proc//cmdline`, `/proc/self/exe` 정보를 차지하는 문제가 있었다. Christian Brauner가 제안한 새로운 디스패치 모드(Dispatch Mode), 특히 'L' 플래그는 커널이 네이티브 바이너리를 메인 이미지로 실행하고 인터프리터만 교체하는 방식을 제공한다. 이는 런타임 투명성(Runtime Transparency)을 높여 Nix와 같은 시스템에 유리하다.

NixOS에서의 $ORIGIN 지원 계획

향후 Nix 커널 릴리스에 해당 패치가 포함되면, NixOS는 새로운 PT_INTERP_NIX 세그먼트를 사용하는 바이너리에 대해서만 BPF 핸들러를 활성화하는 모듈을 제공할 계획이다. 이는 기존 바이너리와의 호환성(Backward Compatibility)을 보장하면서도, 새로운 세그먼트를 포함하는 바이너리는 재배치 가능한 바이너리(Relocatable Binary)로서의 이점을 누릴 수 있게 한다. 이는 Nix 패키징 시스템의 유연성을 크게 향상시킬 것으로 기대된다.

Linux kernel will support $ORIGIN, sort of
고급
아키텍처
Linux Kernel
eBPF
NixOS
binfmt_misc
C
Shell
Backend
DevOps
원문 읽기
원문 읽기

관련 추천 글

x86 TSS 버그, C 언어의 함정, 그리고 리눅스 커널 패치 성공기!

레딧 로고

리눅스 커널 eBPF 락(Lock) 문제, 250ms 시스템 프리징의 비밀

레딧 로고

1987년 출시된 MINIX 1.1, 최신 시스템에서 부활하다!

레딧 로고

리눅스 커널 0-day 취약점, 루트 권한 파일 접근 가능!

랍스타즈 로고

Dirty Frag, Linux 시스템 권한 상승 취약점 공개!

랍스타즈 로고

CopyFail, 취약점 공개 시점과 책임 소재를 둘러싼 개발자들의 격론

해커뉴스 로고
랍스타즈 favicon랍스타즈
고급
아키텍처
Linux Kernel
eBPF
NixOS
binfmt_misc
C
Shell
Backend
DevOps

관련 추천 글

x86 TSS 버그, C 언어의 함정, 그리고 리눅스 커널 패치 성공기!

레딧 로고

리눅스 커널 eBPF 락(Lock) 문제, 250ms 시스템 프리징의 비밀

레딧 로고

1987년 출시된 MINIX 1.1, 최신 시스템에서 부활하다!

레딧 로고

댓글 0

첫 번째 댓글을 남겨보세요!