부트스트랩 가능 빌드
Bootstrapable builds부트스트랩 가능 빌드는 이 [1][2][3]프로세스에 의해 소스에서 빌드되지 않은 (컴파일러) 바이너리에 의존하지 않는 소프트웨어를 컴파일하는 프로세스입니다.
이 프로세스는 컴파일러 백도어로부터 보호할 수 있습니다. 빌드 프로세스가 감사하기 어려운 이진 코드에 의존하지 않으면 컴파일러 백도어를 더 이상 컴파일러 바이너리에 숨길 수 없습니다.
방법들
소프트웨어 배포의 문제를 해결하는 방법은 배포가 더 이상 필요하지 않거나 사람이 [4]쉽게 검토할 수 있을 정도로 크기가 작을 때까지 배포를 부트스트랩하는 데 사용되는 이진 파일의 크기를 줄이는 것입니다.
다양한 프로그래밍 언어를 위한 많은 컴파일러가 대상 언어로 작성됩니다.예를 들어 공식 바둑 컴파일러(gc)는 바둑으로 작성됩니다.
따라서 다른 프로그래밍 언어(여기 C 및 C++)로 작성된 GCC와 같은 대체 컴파일러가 없다면 바둑 컴파일러는 이전 버전의 바둑 컴파일러 바이너리를 빌드해야 합니다.
부트스트랩 가능한 빌드를 사용하려면 소스에서 빌드할 수 있는 이전 버전의 컴파일러를 찾은 다음 코드를 작성하여 최신 버전의 컴파일러가 있을 때까지 자동으로 빌드할 수 있습니다.빌드할 수 있는 버전을 식별하는 것은 사소한 것이 아니며 부트스트랩 프로시저의 컴파일 시간이 매우 길어지는 경우가 많습니다.때로는 오래된 컴파일러 버전을 유지하고 이러한 아키텍처를 부트스트랩할 수 있도록 오래된 컴파일러 버전의 새로운 CPU 아키텍처를 지원해야 합니다.
이 프로세스는 컴파일러를 부트스트랩하는 다른 방법으로 대체하거나 결합할 수도 있습니다.
예를 들어, 다른 언어로 작성된 언어에 대한 새로운 컴파일러를 작성하는 것도 가능합니다.
이러한 기술을 사용하여 배포를 부트스트랩하는 데 사용되는 이진 파일의 크기를 줄일 수 있습니다.
후속 컴파일러를 빌드할 수 있는 첫 번째 컴파일러를 빌드하는 경우, 1 킬로바이트[5] 미만의 단일 바이너리로 크기를 줄일 수 있으며 부트스트래핑 절차에서 여러 단계를 사용하여 C 컴파일러를 빌드하고 다른 컴파일러나 [6]소프트웨어를 빌드할 수 있습니다.
역사
부트스트랩 가능 빌드는 2016년 재현 가능 빌드 [3]프로젝트의 스핀오프로 시작되었습니다.
참고 항목
레퍼런스
- ^ "Guix Further Reduces Bootstrap Seed to 25% — 2020 — Blog — GNU Guix".
- ^ "Bootstrappable builds". Bootstrappable.org. Retrieved 2022-12-16.
- ^ a b "Bootstrappable builds [LWN.net]".
- ^ "NLnet; GNU Mes: Full Source bootstrap".
- ^ "[PATCH core-updates 0/8] the Full Source Bootstrap".
- ^ https://reproducible-builds.org/news/2022/05/18/jan-nieuwenhuizen-on-bootrappable-builds-gnu-mes-and-gnu-guix/
외부 링크
