Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Воспроизводимые сборки logo.svg

Воспроизводимый строит , также известный как детерминированная компиляцию, представляет собой процесс компиляции программного обеспечения , которое обеспечивает результирующий двоичный код может быть воспроизведен . Исходный код, скомпилированный с использованием детерминированной компиляции, всегда будет выводить один и тот же двоичный файл. [1] [2]

Воспроизводимые сборки могут действовать как часть цепочки доверия ; [1] исходный код может быть подписан, и детерминированная компиляция может доказать, что двоичный файл был скомпилирован из надежного исходного кода.

Методы [ править ]

Чтобы процесс компиляции был детерминированным, входные данные компилятора должны быть одинаковыми, независимо от используемой среды сборки. Обычно это включает в себя нормализацию переменных, которые могут измениться, таких как порядок входных файлов, отметки времени , локали и пути .

Кроме того, компиляторы не должны сами вводить недетерминизм. Это иногда случается при использовании хеш-таблиц со случайным начальным значением хеш-функции. Это также может произойти при использовании адреса переменных, поскольку он отличается от рандомизации разметки адресного пространства (ASLR).

Строительные системы , такие как Базэл и Gitian, [3] могут быть использованы для автоматизации процессов сборки детерминированных.

История [ править ]

В начале 1990-х в проекте GNU использовались воспроизводимые сборки. Журналы изменений с 1992 года указывают на продолжающиеся усилия. [4]

Одним из самых старых [5] проектов по продвижению воспроизводимых сборок является проект Биткойн с Gitian. Позже, в 2013 году, проект Tor (сеть анонимности) начал использовать Gitian для своих воспроизводимых сборок. [6]

В июле 2013 года проект Debian начал реализацию воспроизводимых сборок по всему архиву пакетов. [7] [8]

К июлю 2017 года было доказано, что сборка более 90% пакетов в репозитории воспроизводима. [9]

В ноябре 2018 года проект Reproducible Builds присоединился к Software Freedom Conservancy . [10]

F-droid использует воспроизводимые сборки, чтобы гарантировать, что распространяемые APK-файлы используют заявленный бесплатный исходный код . [11]

Хвосты портативная операционная система использует воспроизводимое строит и объясняет другим , как проверить их распределение. [12]

Ссылки [ править ]

  1. ^ a b "reproducible-builds.org" . reproducible-builds.org . Архивировано 20 мая 2016 года . Проверено 22 августа +2016 . Воспроизводимые сборки - это набор практик разработки программного обеспечения, которые создают проверяемый путь от исходного кода, читаемого человеком, до двоичного кода, используемого компьютерами ... Система сборки должна быть полностью детерминированной: преобразование данного источника всегда должно приводить к одинаковому результату.
  2. ^ Ratliff, Эмили (4 апреля 2016). «Установление соответствия между приложением и его исходным кодом | SecurityWeek.com» . www.securityweek.com . SecurityWeek. Архивировано 20 сентября 2016 года . Проверено 22 августа +2016 .
  3. ^ «Gitian: безопасный метод распространения программного обеспечения» . gitian.org . Проверено 10 января 2018 .
  4. ^ «Электронное письмо с описанием воспроизводимых сборок GNU» .
  5. ^ "ЛИЦЕНЗИОННЫЙ файл проекта Gitian" . Проверено 3 декабря 2019 .
  6. ^ Детерминированные сборки Часть вторая: Технические детали. 4 октября 2013 г.
  7. ^ «Обсуждение воспроизводимых сборок в Debian» .
  8. ^ «Воспроизводимая история сборок» .
  9. ^ "Linux-Distributionen: Mehr als 90 Prozent der Debian-Pakete duplicierbar - Golem.de" (на немецком языке). 2017-07-24 . Проверено 30 октября 2018 .
  10. ^ «Воспроизводимые сборки присоединяются к Software Freedom Conservancy» . Проверено 15 декабря 2018 .
  11. ^ «Воспроизводимые сборки» . F-Droid.
  12. ^ «Проверка изображения хвостов на воспроизводимость» . Хвосты.

Внешние ссылки [ править ]

  • reproducible-builds.org
  • Воспроизводимые сборки Debian