Upstart

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 01:49, 11 ноября 2016.
Upstart
Апстарт.JPG
Создатели: Скотт Джеймс Ремнант
Разработчики: Canonical Ltd.
Выпущена: 24 августа 2006
Постоянный выпуск: 1.13 / 11 июля 2014
Написана на: C (язык программирования)
Операционная система: Linux
Тип ПО: Инициализированный демон
Лицензия: GPLv2
Веб-сайт upstart.ubuntu.com

Upstart (англ. Upstart )— система инициализации ОС, которая управляет запуском демонов в течение загрузки системы, их остановку, а также управляет ими во время работы системы. Основанная на событиях замена системы инициализации init в UNIX и Linux системах.

Первоначально была разработана для дистрибутива Ubuntu, но затем стала использоваться и в других дистрибутивах Linux, например в Fedora (впоследствии была заменена systemd), как замена UNIX System V init. В настоящее время признана устаревшей и для многих дистрибутивов планируется переход на systemd.

Возможности

  • Задачи и службы запускаются и останавливаются по событиям
  • События генерируются задачами и службами
  • События могут быть приняты от любого процесса системы
  • Службы могут быть перезапущены, если они были завершены
  • Взаимодействие с демоном init посредством D-Bus
  • Можно организовывать свои события

Обоснование

Традиционный процесс инициализации изначально был ответственен только за компьютер в нормальном рабочем состоянии после включения питания, или предотвращал закрытие услуги перед отключением. В результате, конструкция строго синхроннизировалась, блокируя будущие задачи, пока текущая не завершена.[1] Задачи программы также должны быть определены заранее, так как они ограничивают этим подготовительную стадию или очистку функции. Это оставляет его не в состоянии обрабатывать различные не Startup-задачи на современном настольном компьютере, в том числе:

  • Добавление или удаление USB флэш-накопителей и других портативных хранения / сетевых устройств, в то время как компьютер работает.
  • Обнаружение и сканирование новых устройств хранения данных, без блокировки системы, особенно, когда диск не может считываться даже без питания до тех пор, пока не будет сканироваться.
  • Загрузка прошивки для устройства, которое может потребоваться произойти после того, как оно было обнаружено, но прежде, чем она может использоваться.

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

Дизайн

Upstart работает асинхронно; Он обрабатывает запуск задач и служб во время загрузки и остановки их во время завершения работы, а также контролирует задачи и услуги в то время как система работает.[2]

Легкий переход и совершенная обратная совместимость с Sysvinit были явные приемущественные цели проекта; соответственно, Upstart может запускать немодифицированные скрипты Sysvinit. Таким образом, она отличается от большинства других замен (Systemd и OpenRC), которые, как правило, берут на себя и требуют полного перехода для правильной работы, и не поддерживают смешанную среду традиционных и новых методов запуска.

Upstart позволяет расширить возможности к своей модели событий за счет использования initctl, отдельные события или мосты событий для интеграции многих или более-сложные события. По умолчанию, Upstart включает мосты для розетки, DBus, Udev, файл, и dconf событий; кроме того, больше мостов также возможны.

How to reliably start a service with UpStart

Принятие

Дистрибутивы и другие операционные системы, основанные на ядре Linux, которые используют Upstart в качестве системы по умолчанию инициализации:

  • Upstart был впервые включен в Ubuntu в 6.10 (Edgy EFT) релиз в конце 2006 года, заменив Sysvinit. Ubuntu 9.10 (Karmic Koala) представил родное Upstart загрузочная как альфа 6.В свою очередь, после того, как проект Debian решил принять Systemd на будущем выпуске в 2014 году Марк Шаттлворт заявил, что Ubuntu начнет планы перейти на Systemd себя поддерживать согласованность с вверх по течению.[3]
  1. Upstart используется в Chrome OS от Google и Chromium OS.

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

  • Debian решил, что Systemd будет Система инициализации по умолчанию, начиная с выпуска Jessie, после рассмотрения перехода на Upstart. В конечном итоге было удалено из архива Debian в декабре 2015 года.
  • Ubuntu закончил переключатель Systemd в качестве системы инициализации по умолчанию в версии 15.04 (Vivid Vervet), за исключением Ubuntu Touch.
  • В Fedora 9, Upstart заменил Sysvinit, однако, Systemd заменил Upstart в релизе Fedora 15.
  • Red Hat включает в себя Upstart в их Red Hat Enterprise Linux 6 выпуска. В результате, она также используется RHEL 6 вариантов, таких как CentOS, Scientific Linux и Oracle Linux. Для RHEL 7, Systemd используется вместо.
  • OpenSUSE включены Upstart в версии 11.3 Milestone 4, но не по умолчанию. Systemd заменил Upstart, как система инициализации по умолчанию в OpenSUSE 12.1.
  • Upstart используется в WebOS компании HP для Palm Pre, Palm Pixi (как до, Palm, был выкуплен HP), HP Veer и HP Pre 3 смартфоны, наряду с планшета HP TouchPad.
  • Upstart заменил Sysvinit в Maemo 5 для Nokia интернет-планшетов и был сохранен для MeeGo на телефонах N9 и N950, несмотря на MeeGo перехода к Systemd после слияния с Moblin.

Установка UpStart

Графическая установка

Первым делом, проверяем, соответствует ли наша система требованиям:

  • Linux >= 2.6.17
  • GCC >= 4.1
  • glibc >= 2.4

Если все хорошо, посещаем http://upstart.ubuntu.com/download.html и выкачиваем последнюю версию Upstart. Распаковываем архив, куда удобно, переходим в образовавшееся дерево каталогов и файлов исходного кода и начинаем колдовать.

Конфигурируем исходный код для компиляции: ./configure --prefix=/usr --exec-prefix=/ --sysconfdir=/etc --enable-compat=sysv

О дополнительных возможных параметрах конфигурирования можно узнать из файла INSTALL, находящегося непосредственно в корне дерева исходных кодов.

Собираем: make

Устанавливаем: make install

Описание заданий

После успешной установки Upstart, необходимо создать определения заданий для того, чтобы система смогла загрузиться. Другими словами, задания как раз есть, что чем оперирует Upstart в своей работе. Чтобы быстрей понять, как это все делается и, так сказать, увидеть своими глазами, можно скачать архив примеров заданий. Возможно, вам придется их немного видоизменить для корректной работы с вашей системой, однако все необходимое для начальной конфигурации системы и успешного первого запуска в архиве примеров есть. Все примеры необходимо распаковать в каталог /etc/event.d. Именно из него Upstart берет все необходимое для работы (про /etc/inittab все дружно забыли). За исключением моментов описанных в разделе «Upstart on Other Distributions» все скрипты в каталогах /etc/rcX.d можно оставить без изменений. все должно заработать.[4]

Последний штрих и перезагрузка

Когда все готово, можно попробовать перегрузить Linux и посмотреть, что у вас получилось. Перед перезагрузкой не забудьте проверить значение параметра init, передаваемого ядру вашим загрузчиком, в случае, если Upstart установил исполняемый файл init в отличный от /sbin каталог. Вообще, в принципе, настоятельно рекомендуется для начала не заменять стандартный sysvinit на init Upstart, а установить его в какой-то другой каталог и при помощи параметра ядра init сперва все тщательно протестировать.

Пишем задания

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

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

Все задания помещаются в файлы, расположенные в каталоге /etc/event.d . Имена файлов должны соответствовать именам заданий и сами файлы не должны быть исполняемыми.

Один или более пробелов в тексте файла будут обрабатываться как один пробел, если только эти пробелы не заключены в одинарные или двойные кавычки. Переводы строки разрешены только в пределах кавычек или если перед переводом строки поставить обратный слеш. Также, подобно bash-скриптам, разрешены комментарии, начинающиеся с символа решетки.[5]

Примечания

  1. Upstart [Литрература] : Remnant, Scott James (2006-08-26). "Upstart in Universe" . Netsplit. Retrieved 2009-09-12.
  2. Upstart [Литрература] : Upstart", Launch Pad (605007), Ubuntu
  3. Upstart [Литрература] :Software Architecture: Chromium OS design documents , Google, retrieved 25 January 2014
  4. Upstart [Электронный ресурс] : Материал из http://ashep.org/: — Режим доступа: http://ashep.org/2009/linux-upstart/#.WCT44i2LSpp
  5. Upstart [Литрература] :Lennart Poettering (2013-06-19), Red Hat Summit talk about systemd in RHEL 7 is now available online , Google Plus, retrieved 2013-12-31