Skip to content

Cosmopolitan libc

build-once run-anywhere c without devops

Features

  • C코드를 어디서든 실행가능하게 만들어주는 라이브러리
    • Java랑 비슷하지만 인터프리터나 VM필요없음
    • Go/Rust 수준의 이식성을 제공하지만 C언어 그대로 사용
    • 제공된 5개의 라이브러리 파일로 컴파일하면 그대로 맥/윈도우/리눅스 지원
  • glibc 수준의 속도
  • ape(αcτµαlly pδrταblε εxεcµταblε) 라는 포맷을 만들어서 사용
    • Windows Portable Executable 을 UNIX 6th 에디션 쉘스크립트로 만들수 있다는 사실을 이용
    • 포터블하지만 Go 버전 헬로월드 보다 100x 작음
  • 내부에 BIOS 부트로더를 내장해서 베어메탈 부팅 후 실행도 가능

추가 코맨트

  • 유명한 해커인 Justine Tunney가 APE(αcτµαlly pδrταblε εxεcµταblε) 포맷을 공개
  • APE는 UNIX 쉘스크립트이면서 윈도우즈 실행파일 이어서 맥/윈/리눅스/BSD 어디서나 실행이 가능
  • Cosmopolitan 은 이렇게 포터블한 상황에서 C코드를 어디서나 실행가능하게 만들어주는 LibC
  • 이 APE 와 Cosmpolitan을 가지고 파일 1개로 실행되는 Redbean 웹서버를 개발
  • Redbean은 실행파일이면서 ZIP 파일이어서 모든 HTML/CSS/JS 등의 리소스를 내장하는게 가능
  • 이제 Cosmopolitan 1.0 에서는 Redbean 웹서버가 자기 자신인 Zip 파일의 내용을 수정하는게 가능
  • Dynamic한 웹페이지를 만들어서 내용도 수정이 되지만, 파일은 1개
  • Cosmopolitan libc - Build-Once Run-Anywhere C https://news.hada.io/topic?id=3489
  • Redbean - 파일1개로 실행되는 웹서버 https://news.hada.io/topic?id=3815

See also

Favorite site