본문으로 건너뛰기
피드

live-bootstrap의 stage0를 단순화하는 C 컴파일러 프로젝트

open-source 약 4분
vote
0
댓글
북마크

GNU Mes를 대체하는 C 컴파일러를 C로 작성해서 TCC를 컴파일하는 프로젝트. Stack-C 중간 언어를 거쳐 감사 가능한 빌드 체인을 구축하며, 이미 TCC 0.9.27 빌드에 성공해 live-bootstrap 결과물과 SHA256 해시가 일치함.

  • 1

    C로 작성한 컴파일러가 Stack-C 중간 언어를 생성하고 M1 어셈블리로 변환

  • 2

    TCC 0.9.27 빌드 성공 — live-bootstrap 결과물과 SHA256 해시 일치 확인

  • 3

    hex0 파일에 C소스 라인↔어셈블리↔중간코드 매핑으로 감사 가능성 확보

  • 4

    x86_64, ARM, RISC-V64 타겟 확장 계획

프로젝트 목표

  • live-bootstrap의 stage0를 단순화하려는 프로젝트임. 구체적으로는 GNU Mes 컴파일러를 대체하는 C 컴파일러를 C로 작성해서 Tiny C Compiler(TCC) 0.9.26을 컴파일하는 것이 목표
  • live-bootstrap이 뭐냐면, 소스코드에서 완전히 재현 가능한(reproducible) 빌드 체인을 구축하는 프로젝트인데, 여기서 가장 초기 단계(stage0)가 제일 복잡함. 이걸 단순화하겠다는 시도

구현 구조

  • 핵심 소스는 tcc_cc.c — i386용 C 컴파일러로, Stack-C라는 스택 기반 중간 언어(Intermediate Language)를 생성함
  • 이 중간 코드를 stack_c.c로 M1 어셈블리로 컴파일하거나, stack_c_interpreter.c로 인터프리팅할 수 있음
  • stdlib.c에 최소한의 C 표준 라이브러리도 포함되어 있음
  • 검증 방법이 꽤 재밌는데, hex0 파일에 3단 컬럼 포맷으로 16진수 ↔ 어셈블리 명령어 ↔ Stack-C 중간 코드 ↔ 원본 C 소스 라인 번호를 다 매핑해둠. 수작업 감사(audit)가 가능하도록 한 거

현재 진행 상황

  • Task 1 완료: chroot 환경에서 TCC를 빌드하고, tcc-boot1tcc-boot2가 live-bootstrap 결과물과 동일한 SHA256 해시를 가지는 것을 확인함. tcc-boot0만 다른데, 이건 GNU Mes가 64비트 정수를 지원하는 반면 tcc_cc는 아직 미지원이기 때문
  • Task 2 진행 중: stage0 실행파일들의 외부 의존성을 제거하고 전부 이 C 컴파일러로 빌드하는 작업. blood-elf, kaem, sha256sum, ungz, untar 등 15개 이상의 유틸리티를 이미 성공적으로 컴파일함
  • Task 3 완료: kaem 스크립트로 TCC 0.9.27 빌드 성공. live-bootstrap 프로젝트의 결과물과 동일한 SHA256 해시 확인

향후 계획

  • x86 외에 x86_64, ARM, RISC-V64 타겟으로 Stack-C 변환기를 작성할 예정. x86_64는 비교적 단순하지만 나머지는 QEMU 같은 에뮬레이션 환경에서 테스트가 필요한 상황
  • TCC 컴파일에 필요한 C 문법 부분 집합을 분석하기 위해 최소 C 전처리기(min_tcc_preprocessor.cpp)와 파서(CParser.c)도 개발함

재현 가능한 빌드의 신뢰 체인을 처음부터 쌓아가는 프로젝트. 보안과 공급망 무결성이 중요해지는 시대에 의미 있는 작업.

댓글

댓글

댓글을 불러오는 중...

open-source

NIPA, 260명 규모 오픈소스 컨트리뷰션 아카데미 시작

정보통신산업진흥원이 2026 오픈소스 컨트리뷰션 아카데미 발대식을 열고 13주간의 프로젝트 활동을 시작했음. 국내 개발자들이 GitHub 기반 글로벌 협업 환경에서 코드, 문서, 버그 수정, 풀 리퀘스트를 직접 경험하게 하는 프로그램임.

open-source

그누보드7, 디딤과 손잡고 멀티클라우드 도입 문턱 낮춘다

에스아이알소프트가 클라우드 전문기업 디딤과 협력해 그누보드7 기반 웹서비스 구축·운영 환경을 넓히기로 했다. 커뮤니티, 쇼핑몰, 예약, 구독형 서비스 같은 실무 프로젝트에서 서버 구성과 운영 부담을 줄이는 게 핵심이다.

open-source

오픈소스 컨트리뷰션 아카데미 출범, 국내 개발자 260여 명 참여

정보통신산업진흥원이 2026 오픈소스 컨트리뷰션 아카데미 발대식을 열고 13주간의 활동을 시작했다. 11개 프로젝트팀의 멘토와 멘티 260여 명이 글로벌 오픈소스 프로젝트 기여를 목표로 코드 개발, 문서화, 오류 수정 등을 진행한다.

open-source

NIPA, 국내 개발자 260명 규모 오픈소스 컨트리뷰션 아카데미 시작

정보통신산업진흥원이 2026 오픈소스 컨트리뷰션 아카데미 발대식을 열고 국내 개발자의 글로벌 오픈소스 프로젝트 참여를 지원한다. 11개 프로젝트팀, 멘토·멘티 260여 명이 13주 동안 깃허브 기반 협업, 코드 리뷰, 문서화, 오류 수정 등을 실제로 경험한다.

open-source

Ghostty 엔진을 Emacs 안으로 끌고 온 터미널, Ghostel.el

Ghostel.el은 Ghostty의 libghostty-vt를 기반으로 Emacs 안에서 동작하는 터미널 에뮬레이터다. eat 스타일의 여러 입력 모드, 안정적인 복사 모드, line mode, 자동 password prompt 처리, compile-mode 유사 실행 버퍼, Kitty graphics 지원, 높은 throughput을 앞세워 eat/vterm과 차별화함.