기타 Lobsters · 5일 전

"C언어 메모리 오류 드디어 잡나?" 전설적 개발자 djb의 Fil-C 실사용기

핵심 요약
  • 유명 컴퓨터 과학자 djb가 메모리 안전 C/C++ 컴파일러 'Fil-C'를 데비안 패키지에 적용하는 프로젝트 'Filian'과 실사용기를 공개했습니다.
  • 암호화 벤치마크 결과 Clang 대비 1~4배 수준의 사이클 오버헤드로 대부분의 기존 C 코드를 수정 없이 메모리 안전하게 구동할 수 있음을 확인했습니다.
  • 데비안 13 환경에서 61개 라이브러리 중 60개 빌드에 성공하며 리눅스 시스템 전반의 교체 가능성을 보여주었습니다.
요약 암호학계의 저명한 컴퓨터 과학자 대니얼 J. 번스타인(djb)이 최근 주목받고 있는 메모리 안전 C/C++ 컴파일러 'Fil-C(filcc, fil++)'의 실사용 테스트 노트와 데비안 리눅스 패키지 적용 프로젝트인 'Filian'을 공개했습니다. djb는 Fil-C의 기존 코드 호환성에 큰 인상을 받았다고 밝혔습니다. 그가 테스트한 수많은 라이브러리와 애플리케이션이 별도의 코드 수정 없이도 정상 동작했으며, 예외적인 경우에도 큰 어려움 없이 구동시킬 수 있었습니다. 그는 자신이 관리하는 시스템들의 보안을 강화하기 위해 패키지들을 Fil-C로 컴파일해 전환하는 작업을 진행 중입니다. 성능 측면에서는 암호화 소프트웨어를 대상으로 약 9,000건의 마이크로벤치마크(Zen 4 단일 코어 기준)를 진행한 결과, Fil-C로 컴파일된 코드는 일반 Clang 대비 약 1배에서 4배 수준의 CPU 사이클을 소비하는 것으로 나타났습니다. 메모리 안전성을 보장하기 위한 오버헤드가 존재하지만 충분히 감당할 수 있는 수준이라는 평가입니다. djb는 현재 데비안 13 환경에서 소스 패키지를 받아 Fil-C로 자동 빌드하고 설치해 주는 'Filian' 프로젝트를 개발하고 있으며, 닉스(Nix) 패키지를 Fil-C로 포팅한 미카엘 브록만의 'Filnix'를 통해 넷핵(Nethack) 등의 프로그램을 구동하는 방법도 함께 소개했습니다. 또한 공급망 보안 검증을 위해 업스트림 소스와의 차이점을 분석할 수 있는 감사 스크립트도 공유했습니다. 실제 빌드 과정에서 AMD 라이젠 5 7640HS(6코어 12스레드, RAM 12GB) 미니 PC 환경 기준, 메모리 부족을 방지하기 위해 36GB 스왑을 설정해야 원활한 컴파일이 가능했다고 전했습니다. 또한 musl 라이브러리보다는 glibc와의 호환성이 더 뛰어났으며, 자체 작성한 병렬 빌드 스크립트를 통해 61개 타깃 중 60개를 101분 만에 빌드하는 데 성공하는 등 실제 리눅스 시스템 적용 가능성을 구체적으로 입증하고 있습니다.
Sponsored · 광고