Upstart — это прекращенная замена традиционного демона init на основе событий — метода, с помощью которого несколько операционных систем Unix-подобных компьютеров выполняют задачи при запуске компьютера. Он был написан Скоттом Джеймсом Ремнантом , бывшим сотрудником Canonical Ltd. В 2014 году Upstart был переведен в режим обслуживания, и вместо Upstart были рекомендованы другие демоны init, такие как systemd . Ubuntu отошла от Upstart с выпуском версии 15.04 ( Vivid Vervet ) в пользу перехода на systemd. По состоянию на июнь 2024 года для Upstart не было выпущено обновлений с сентября 2014 года. [2]
Обоснование
Традиционный процесс init изначально отвечал только за приведение компьютера в нормальное рабочее состояние после включения питания или за корректное завершение работы служб перед выключением. В результате конструкция строго синхронна , блокируя будущие задачи до тех пор, пока текущая не будет завершена. Его задачи также должны быть определены заранее, поскольку они ограничены этой функцией подготовки или очистки. Это делает его неспособным элегантно обрабатывать различные неавтозагрузочные задачи на современном настольном компьютере , включая:
Добавление или извлечение USB-флеш-накопителей и других портативных устройств хранения данных или сетевых устройств во время работы компьютера.
Обнаружение и сканирование новых устройств хранения данных, особенно когда диск может даже не включиться, пока он не будет просканирован.
Загрузка прошивки для устройства, которая может потребоваться после его обнаружения, но до того, как его можно будет использовать.
Управляемая событиями модель Upstart позволяет ему реагировать на события асинхронно по мере их возникновения. [3]
Дизайн
Upstart работает асинхронно; он управляет запуском задач и служб во время загрузки и остановкой их во время завершения работы, а также контролирует задачи и службы во время работы системы.
Простота перехода и идеальная обратная совместимость с sysvinit были явными целями дизайна; [4] соответственно, Upstart может запускать немодифицированные скрипты sysvinit. В этом он отличается от большинства других замен init (кроме systemd и OpenRC ), которые обычно предполагают и требуют полного перехода для правильной работы и не поддерживают смешанную среду традиционных и новых методов запуска. [5]
Upstart допускает расширения своей модели событий посредством использования initctl для ввода пользовательских, одиночных событий или мостов событий для интеграции многих или более сложных событий. [6] По умолчанию Upstart включает мосты для событий сокета, dbus, udev, файла и dconf; кроме того, возможны и другие мосты. [7]
Принятие
Дистрибутивы Linux и другие операционные системы на основе ядра Linux , которые используют Upstart в качестве системы инициализации по умолчанию:
Дистрибутивы Linux, которые поддерживают или поддерживали Upstart в той или иной степени, но отказались от него или больше не используют его в качестве системы инициализации по умолчанию:
Debian решил, что systemd станет системой инициализации по умолчанию, начиная с выпуска Jessie , [9] после рассмотрения перехода на Upstart. [10] В конечном итоге он был удален из архивов Debian в декабре 2015 года. [11]
Upstart впервые был включен в Ubuntu в выпуске Ubuntu 6.10 «Edgy Eft» в конце 2006 года, заменив sysvinit . Ubuntu 9.10 «Karmic Koala» представила собственную загрузку Upstart с Alpha 6. [12] В свою очередь, после того, как проект Debian решил принять systemd в будущем выпуске в 2014 году, Марк Шаттлворт объявил, что Ubuntu начнет планы по переходу на systemd для поддержания согласованности с вышестоящей веткой. [13] Ubuntu завершила переход на systemd в качестве своей системы инициализации по умолчанию в версии 15.04 (Vivid Vervet), за исключением Ubuntu Touch . [14]
В Fedora 9 Upstart заменил sysvinit, однако в выпуске Fedora 15 Upstart заменил systemd. [15] [16]
Red Hat включает Upstart в свой выпуск Red Hat Enterprise Linux 6. [17] В результате он также используется в вариантах RHEL 6, таких как CentOS , Scientific Linux и Oracle Linux . Для RHEL 7 вместо этого используется systemd. [18] [19]
openSUSE включил Upstart в версию 11.3 Milestone 4, но не в качестве системы инициализации по умолчанию. [20] systemd заменил Upstart в качестве системы инициализации по умолчанию в openSUSE 12.1. [21]
Upstart заменил sysvinit в Maemo 5 для интернет-планшетов Nokia . [23]
Последним релизом стала версия 1.13 от 11 июля 2014 года. С декабря 2018 года на веб-сайте проекта говорится, что Upstart находится только в режиме обслуживания, и рекомендуются другие системы инициализации, такие как systemd . [24]
^ Шаттлворт, Марк. "Losing graciously". Архивировано из оригинала 22 марта 2014 года . Получено 14 февраля 2014 года .
^ VividVervet/ReleaseNotes, 24.04.2015
^ Принятые функции Fedora 14, 2010-07-13 , получено 2010-07-13
^ "Fedora откладывает systemd до F15". Linux Weekly News. 2010-09-14 . Получено 2010-09-17 .
^ "Развертывание". Red Hat Enterprise Linux 6: Технические заметки . Red Hat . Получено 2013-12-31 .
↑ Poettering, Lennart (19.06.2013), Доклад на саммите Red Hat о systemd в RHEL 7 теперь доступен онлайн, Google Plus , получено 31.12.2013
^ Тим Берк (27.06.2012), «Red Hat Enterprise Linux Roadmap Highlights» (PDF) , презентация , заархивировано из оригинала (PDF) 18.01.2013
^ OpenSUSE получает Upstart, The H, 2010-03-26, заархивировано из оригинала 8 декабря 2013 г. , извлечено 2010-04-04
^ Крис фон Айцен (2011-11-16), openSUSE 12.1 поставляется с systemd и Btrfs, The H, заархивировано из оригинала 20 апреля 2012 г. , извлечено 2011-11-16