LINUX.ORG.RU

Bootstrap и дистрибьютивостроение

 , ,


0

2

Небольшой вопрос экспертам и эксперткам LOR. На сколько bootstrap минимальной системы с минимальным тулчейном важен во время сборки новой версии дистрибутива из исходников? Например от версии компилятора и от того как он был собран зависит результат компиляции. А если я собираю новую версию libc и при этом пользуюсь компилятором, слинкованным со старой версией libc, это окажет влияние на сборку новой libc? А версия ядра на это тоже как-то влияет? Ведь с ядром идут некоторые заголовочные файлы, которые тоже могут использоваться во время компиляции. В итоге это так же может повлиять и на сборку компилятора или другого компонента основной системы. Такие вопросы о курице и яйце можно продолжать задавать и про другие базовые компоненты системы.

Иными словами, имеет ли какое-то практическое значение или преимущество путь сборки системы через бутстрап, например как в LFS? На сколько я знаю в некоторых других дистрибутивах это тоже поддерживается, хотя бы как опция. Например в Gentoo, Guix, NixOS, Void Linux и в некоторых других.


На этот вопрос можно посмотреть с двух сторон - теоретической и практической.

В теории должен быть некий корень доверия, отталкиваясь от которого можно проанализировать работу всей системы и убедиться в том, что она работает так, как мы ожидаем. Что может быть этим корнем? Софт от надёжного поставщика? Дистрибутив, который ты скачал с официального сайта? Компилятор, которым ты собрал систему? Про это есть папира Кена Томпсона под названием «Reflections on Trusting Trust», она короткая, рекомендую. В пределе мы можем основываться только на фундаментальных законах физики, хотя и там могут быть подводные грабли.

На практике же различных уровней абстракции и звеньев в цепочках поставок столько, что всем уже похер. Как-то там работает, продавать это можно, хомячки довольны - на этом и остановимся.

anonymous
()
Ответ на: комментарий от anonymous

Речь не о доверии, а о влиянии особенностей хост системы на результаты сборки новой системы. Например, если я возьму Слаку и начну сборку Федоры в ней, результат обязательно будет таким же, как если бы я начал собирать Федору в другой Федоре или немного иной? А если в довольно старой Федоре? Смысл бутстрапа как раз и заключается в том, чтобы убрать такое влияние напрочь и подобно барону Мюнхгаузену поднять себя самого за волосы.

zg
() автор топика
Последнее исправление: zg (всего исправлений: 1)