Введение

Самостоятельный процесс, который должен запускаться и развиваться без внешнего вмешательства.

В общем, загрузка (bootstrapping) обычно относится к самостоятельному процессу, который должен продолжаться или расти без внешнего ввода.

Этимология

Высокие сапоги могут иметь в верхней части язычок, петлю или ручку, известную как петля для натягивания, позволяющую использовать пальцы или специальный крючок, чтобы помочь надеть сапоги. Выражение "подняться на ноги своими силами" уже использовалось в XIX веке как пример невыполнимой задачи. Эта идиома датируется, по крайней мере, 1834 годом, когда она появилась в журнале "Адвокат рабочего": "Предполагается, что мистер Мерфи теперь сможет перебраться через реку Камберленд или забор на ферме, ухватившись за ремни своих сапог". В 1860 году она появилась в комментарии к философии сознания: "Попытка сознания проанализировать себя подобна усилиям того, кто пытается поднять себя, потянув за собственные сапоги". Метафора "bootstrap" (подняться на ноги своими силами) использовалась уже в 1922 году. Эта метафора породила дополнительные метафоры для ряда самоподдерживающихся процессов, которые протекают без внешней помощи. Иногда этот термин приписывают истории из "Удивительных приключений барона Мюнхгаузена" Рудольфа Эриха Распе, но в этой истории барон Мюнхгаузен вытаскивает себя (и свою лошадь) из болота за волосы (в частности, за косичку), а не за петли сапог, и никаких явных упоминаний о петлях сапог не встречается в других версиях рассказов о Мюнхгаузене. Просить кого-то "начать с нуля" или "подняться на ноги своими силами" означает предполагать, что он сможет преодолеть большие трудности исключительно силой воли. Критики отмечают, что эта фраза используется для представления несправедливых ситуаций как гораздо более меритократических, чем они есть на самом деле. Различные исследования показали, что основным предиктором будущего богатства является не IQ или трудолюбие, а исходный капитал.

Вычислительные технологии

В компьютерных технологиях термин "бутстрапинг" (или самозагрузка) относится к языковым компиляторам, которые могут быть написаны на том же языке, для которого они предназначены. (Например, компилятор C сейчас написан на языке C. После создания базового компилятора, улучшения могут вноситься итеративно, тем самым развивая язык "самостоятельно"). Также, "загрузка" обычно относится к процессу загрузки базового программного обеспечения в память компьютера после включения питания или общей перезагрузки; ядро загружает операционную систему, которая затем обеспечивает загрузку других драйверов устройств и программного обеспечения по мере необходимости.

Загрузка и исполнение программного обеспечения

Загрузка — это процесс запуска компьютера, в частности, запуск его программного обеспечения. Этот процесс включает в себя последовательность этапов, на каждом из которых небольшая и простая программа загружается и затем выполняет более крупную и сложную программу следующего этапа. Именно в этом смысле компьютер "поднимает себя, подтягиваясь за шнурки"; то есть он совершенствуется собственными усилиями. Загрузка — это цепочка событий, которая начинается с выполнения аппаратных процедур и затем может передаваться прошивке и программному обеспечению, загружаемому в оперативную память. Загрузка часто включает в себя такие процессы, как выполнение самотестирования, загрузка настроек конфигурации, загрузка BIOS, резидентных мониторов, гипервизора, операционной системы или утилит. Термин "bootstrap" (загрузчик) возник в 1950-х годах как метафора. На первых компьютерах нажатие кнопки загрузчика приводило к тому, что аппаратная программа считывала загрузочную программу из устройства ввода. Затем компьютер выполнял эту программу, которая, в свою очередь, считывала дополнительные инструкции. Так начинался самоподдерживающийся процесс, не требующий внешнего вмешательства в виде ручного ввода инструкций. Как вычислительный термин, "bootstrap" используется как минимум с 1953 года.

Разработка программного обеспечения

Бутстрапинг также может относиться к разработке последовательно более сложных и быстрых сред программирования. Самая простая среда, возможно, будет представлять собой очень простой текстовый редактор (например, ed) и ассемблер. Используя эти инструменты, можно написать более сложный текстовый редактор, простой компилятор для языка более высокого уровня и так далее, пока не появится графическая IDE и язык программирования чрезвычайно высокого уровня. Исторически бутстрапинг также относится к ранней технике разработки компьютерных программ для нового оборудования. Эта техника, описанная в данном абзаце, была заменена использованием перекрестного компилятора, выполняемого на существующем компьютере. Бутстрапинг в разработке программ начался в 1950-х годах, когда каждая программа создавалась вручную на бумаге в десятичном или двоичном коде, бит за битом (1 и 0), поскольку не существовало языков программирования высокого уровня, компиляторов, ассемблеров и компоновщиков. Для нового компьютера (например, IBM 650) вручную была написана небольшая программа-ассемблер, которая преобразовывала несколько инструкций в двоичный или десятичный код: A1. Эта простая программа-ассемблер затем была переписана на только что определенном языке ассемблера, но с расширениями, позволяющими использовать дополнительные мнемоники для более сложных кодов операций. Исходный код улучшенного ассемблера затем был скомпилирован исполняемым файлом (A1) своего предшественника в двоичный или десятичный код, что дало A2, и цикл повторялся (теперь с учетом этих улучшений), пока не был закодирован весь набор инструкций, адреса переходов рассчитывались автоматически и были реализованы другие удобства (такие как условная сборка, макросы, оптимизации и т. д.). Так была разработана ранняя программа символической оптимальной сборки (SOAP). Затем компиляторы, компоновщики, загрузчики и утилиты были написаны на языке ассемблера, что позволило продолжить процесс бутстрапинга, то есть разработку сложных программных систем с использованием более простого программного обеспечения. Этот термин также был популяризирован Дугом Энгельбартом, чтобы выразить его убеждение в том, что организации могут лучше развиваться, улучшая сам процесс улучшения (тем самым получая кумулятивный эффект со временем). Его команда SRI, разработавшая гипертекстовую систему NLS, применила эту стратегию, используя разработанный ими инструмент для улучшения этого инструмента.

Компиляторы

Разработка компиляторов для новых языков программирования, изначально создаваемых на существующем языке, а затем переписываемых на новом и компилируемых самим собой, является еще одним примером идеи самозагрузки.

Установщики

Во время установки компьютерных программ иногда требуется обновить сам установщик или менеджер пакетов. Распространенный подход заключается в использовании небольшого исполняемого файла-загрузчика (например, setup.exe), который обновляет установщик и запускает фактическую установку после обновления. Иногда загрузчик также устанавливает другие необходимые компоненты для программного обеспечения в процессе загрузки.

Накладочные сети

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

Моделирование дискретных событий

Тип компьютерного моделирования, называемый дискретным моделированием событий, представляет работу системы как хронологическую последовательность событий. Используется метод, называемый инициализацией модели моделирования, который генерирует начальные данные с помощью генератора псевдослучайных чисел для планирования первоначального набора ожидающих событий, которые, в свою очередь, планируют дополнительные события. Со временем распределение моментов наступления событий приближается к своему стационарному состоянию – поведение инициализации перестаёт оказывать влияние, уступая место стационарному поведению.

Искусственный интеллект и машинное обучение

Бутстрапинг — это техника, используемая для итеративного улучшения производительности классификатора. Обычно несколько классификаторов обучаются на разных подмножествах входных данных, а при решении задач прогнозирования результаты работы этих классификаторов объединяются. Seed AI — это гипотетический тип искусственного интеллекта, способный к рекурсивному самосовершенствованию. Улучшив себя, он станет более эффективным в самосовершенствовании, что потенциально приведет к экспоненциальному росту интеллекта. На данный момент не существует известных примеров такого ИИ, но эта область остается предметом активных исследований. Seed AI является ключевым элементом некоторых теорий технологической сингулярности: сторонники полагают, что разработка Seed AI быстро приведет к созданию все более и более разумного интеллекта (путем бутстрапинга) и, таким образом, откроет новую эру.

Статистика

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

Биология

Ричард Докинз в своей книге «Река из Эдема» использовал концепцию компьютерной загрузки (bootstrap) для объяснения того, как дифференцируются биологические клетки: «Разные клетки получают различные комбинации химических веществ, которые активируют различные комбинации генов, и некоторые гены работают над активацией или деактивацией других генов. И так этот процесс самозапуска продолжается, пока у нас не сформируется полный набор различных типов клеток».

Филогенетика

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

Закон

Бутстрэпинг — это правило, запрещающее приём косвенных доказательств в делах о сговоре.

Лингвистика

Бутстрапинг — это теория усвоения языка.

Квантовая теория

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

Плазма с магнитным ограничением

В токамакских термоядерных установках эффект самоподдержания (или "bootstrap") относится к процессу, при котором плазма генерирует собственный ток, уменьшая или устраняя необходимость во внешнем источнике тока. Максимизация тока самоподдержания является одной из основных целей при разработке передовых токамаков.

Плазма термоядерного синтеза с инерциальной замкнутостью

В инерциальном синтезе загрузка означает, что альфа-частицы, образующиеся в реакции синтеза, обеспечивают дополнительный нагрев плазмы. Этот нагрев приводит к воспламенению и общему приросту энергии.

Электроника

Бутстрапинг — это вид положительной обратной связи в аналоговом проектировании схем.

Электрическая сеть

Электрическая сеть почти никогда не отключается намеренно. Генераторы и электростанции запускаются и останавливаются по мере необходимости. Типичной электростанции требуется электроэнергия для запуска, прежде чем она сможет вырабатывать энергию. Эта электроэнергия берется из сети, поэтому, если вся сеть обесточена, эти станции не могут быть запущены. Следовательно, для запуска сети необходимо наличие как минимум нескольких электростанций, способных запуститься полностью автономно. "Черный пуск" – это процесс восстановления работы электростанции без использования внешнего электропитания. При отсутствии электроснабжения от сети, один или несколько "черных пусков" используются для первоначального запуска сети.

Ядерная энергия

Атомная электростанция всегда должна иметь способ отвода остаточного тепла, что обычно осуществляется с помощью электрических охлаждающих насосов. Однако в редком случае полной потери электропитания этого можно добиться, запустив турбогенератор. По мере накопления пара в парогенераторе его можно использовать для привода турбогенератора (первоначально без работы масляных насосов, насосов циркуляционной воды и конденсационных насосов). Как только турбогенератор начинает вырабатывать электроэнергию, можно включить вспомогательные насосы и кратковременно запустить насосы охлаждения реактора. В конечном итоге давление пара станет недостаточным для привода турбогенератора, и процесс можно остановить в обратном порядке. Процедуру можно повторять до тех пор, пока она не станет больше не нужна. Это может привести к значительному повреждению турбогенератора, но, что более важно, это позволяет спасти ядерный реактор.

Сотовые сети

Функция сервера начальной настройки (BSF) — это промежуточный элемент в сотовых сетях, который предоставляет функции, независимые от приложений, для взаимной аутентификации пользовательского оборудования и серверов, не знающих друг друга, а также для начальной настройки последующего обмена секретными ключами сеанса. Термин "bootstrapping" относится к установлению защищённого соединения с ранее неизвестным устройством и последующей установке элементов безопасности (ключей) в это устройство и в BSF.