Jump to content

нагревать

(Перенаправлено с SysVinit )
Версия 7 Unix : /etc листинг, показывающий инициализация и RC
Версия 7 Unix: содержимое /etc/rc оболочки Bourne сценарий

В базе Unix компьютерных операционных системах на init (сокращение от инициализации ) — это первый процесс , запускаемый во время загрузки операционной системы. Init — это процесс- демон , который продолжает работать до тех пор, пока система не выключится. Он является прямым или косвенным предком всех других процессов и автоматически принимает все потерянные процессы . Init запускается ядром во время процесса загрузки ; причине . произойдет паника ядра, если ядро ​​не сможет его запустить или оно должно умереть по какой-либо Init обычно присваивается идентификатор процесса 1.

В системах Unix, таких как System III и System V , конструкция init отличается от функциональности, предоставляемой init в Research Unix и ее производных BSD . Вплоть до начала 2010-х гг. [1] [ не удалось пройти проверку ] в большинстве дистрибутивов Linux используется традиционная инициализация, которая в некоторой степени совместима с System V, в то время как некоторые дистрибутивы, такие как Slackware, используют сценарии запуска в стиле BSD, а другие, такие как Gentoo, имеют свои собственные версии.

С тех пор было создано несколько дополнительных реализаций инициализации, пытающихся устранить ограничения дизайна в традиционных версиях. К ним относятся launchd , Service Management Facility , systemd , Runit и OpenRC .

Исследования в стиле Unix/BSD

[ редактировать ]

Research Unix инициализации, init запускает сценарий оболочки расположенный по адресу /etc/rc, [2] затем запускает getty на терминалах под управлением /etc/ttys. [3] Уровней запуска нет; тот /etc/rc file определяет, какие программы запускаются init. Преимущество этой системы в том, что ее легко и просто редактировать вручную. Однако новое программное обеспечение, добавленное в систему, может потребовать внесения изменений в существующие файлы, что может привести к невозможности загрузки системы.

До версии 4.3BSD инициализация BSD была такой же, как и инициализация Research UNIX; [4] [5] в 4.3BSD добавлена ​​поддержка запуска оконной системы , такой как X, на графических терминалах под управлением /etc/ttys. [6] [7] Чтобы удалить требование редактирования /etc/rc, варианты BSD уже давно поддерживают /etc/rc.local файл, который запускается во подоболочке ближе к концу последовательности загрузки.

Полностью модульная система была представлена ​​в NetBSD 1.5 и перенесена на FreeBSD 5.0 ​​и последующие версии. Эта система выполняет сценарии в /etc/rc.d каталог. В отличие от порядка сценариев в System V, который определяется именем файла каждого сценария, эта система использует явные теги зависимостей, размещаемые внутри каждого сценария. [8] Порядок выполнения скриптов определяется утилитой rcorder на основе требований, изложенных в этих тегах.

SysV-стиль

[ редактировать ]
sysv-rc-conf утилита TUI , которая выбирает, какие сценарии инициализации в стиле SysV будут запускаться на каждом уровне выполнения.

По сравнению со своими предшественниками, UNIX System III от AT&T представила новый стиль конфигурации запуска системы. [9] который сохранился (с изменениями) в UNIX System V и поэтому называется «инициализацией в стиле SysV».

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

Уровни запуска

[ редактировать ]

Уровни запуска в System V описывают определенные состояния машины, характеризующиеся процессами и демонами, запущенными в каждом из них. В общем, существует семь уровней запуска, из которых три считаются «стандартными», поскольку они необходимы для работы системы:

Помимо этих стандартных, Unix и Unix-подобные системы обрабатывают уровни выполнения несколько по-разному. Общий знаменатель, т. /etc/inittab файл, определяет, что делает каждый настроенный уровень запуска в данной системе.

Уровни запуска по умолчанию

[ редактировать ]
Операционная система Уровень запуска по умолчанию
ЭКС 2
антиХ 5
Генту Линукс 3 [10]
HP-UX 3 (консоль/сервер/многопользовательский) или 4 (графический)
Линукс с нуля 3
Слакваре Linux 3
Солнечная / иллюминация 3 [11]
UNIX System V версий 3.x, 4.x 2
UnixWare 7.x 3

В дистрибутивах Linux по умолчанию используется уровень запуска 5 в таблице справа. Уровень запуска 5 вызывает многопользовательскую графическую среду, работающую под управлением X Window System , обычно с менеджером отображения, таким как GDM или KDM . Однако операционные системы Solaris и Illumos обычно резервируют уровень запуска 5 для завершения работы и автоматического выключения компьютера.

В большинстве систем все пользователи могут проверить текущий уровень выполнения либо с помощью runlevel или who -r команда. [12] Пользователь root обычно меняет текущий уровень выполнения, запуская команду telinit или init команды. /etc/inittab файл устанавливает уровень запуска по умолчанию с помощью :initdefault: вход.

В системах Unix изменение уровня запуска достигается путем запуска только недостающих служб (поскольку каждый уровень определяет только те, которые запущены/остановлены). [ нужна ссылка ] Например, изменение системы с уровня запуска 3 на 4 может запустить только локальный X-сервер. Возвращаясь к уровню выполнения 3, он снова будет остановлен.

Другие реализации

[ редактировать ]

Традиционно одним из основных недостатков init является то, что он запускает задачи последовательно, ожидая завершения загрузки каждой из них, прежде чем перейти к следующей. Когда процессы запуска блокируются, ввод/вывод (I/O) может привести к длительным задержкам во время загрузки. Ускорение ввода-вывода, например, с помощью твердотельных накопителей, может сократить задержки, но не устраняет основную причину.

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

  • Загрузочные сценарии в GoboLinux
  • busybox-init , подходит для встроенных операционных систем , используется Alpine Linux , SliTaz 5(Rolling), Tiny Core Linux и VMware ESXi , а также используется OpenWrt до того, как он был заменен на procd.
  • Dinit, менеджер сервисов и система инициализации. [13]
  • Epoch — однопоточная система инициализации Linux, ориентированная на простоту и управление сервисами. [14]
  • Initng — полная замена init, предназначенная для асинхронного запуска процессов.
  • launchd , замена init в Darwin / macOS / iOS / tvOS, начиная с Mac OS X v10.4 (он запускает SystemStarter для запуска процессов rc.local и SystemStarter старого стиля)
  • OpenRC , генератор процессов, который использует предоставляемую системой инициализацию, обеспечивая при этом изоляцию процессов, параллельный запуск и зависимость от служб; используется Alpine Linux , Gentoo и его производными и доступен в качестве опции в Devuan и Artix Linux.
  • runit — кроссплатформенная полная замена init с параллельным запуском служб, используемая по умолчанию в Void Linux. [15]
  • Sun Service Management Facility (SMF), полная замена / перепроектирование init с нуля в Illumos / Solaris, начиная с Solaris 10, но запущенная как единственная служба оригинальной инициализации в стиле System V.
  • Shepherd менеджер служб и демонов GNU , обеспечивающий асинхронную инициализацию на основе зависимостей; написан на Guile Scheme и предназначен для интерактивного взлома во время нормальной работы системы. [16]
  • s6 — пакет программного обеспечения, включающий систему инициализации. [17] [18]
  • systemd — пакет программного обеспечения, полная замена init в Linux, включающая демон инициализации, с одновременным запуском служб, диспетчером служб и другими функциями.
  • SystemStarter , генератор процессов, запускаемый с помощью инициализации в стиле BSD в Mac OS X до Mac OS X v10.4.
  • Upstart — полноценная замена init, предназначенная для асинхронного запуска процессов. Инициирован Ubuntu и использовался ими до 2014 года. Он также использовался в Fedora 9, [19] [20] Red Hat Enterprise Linux 6. [21] и Google от ChromeOS . [22]

По состоянию на февраль 2019 г. , systemd используется в большинстве основных дистрибутивов Linux. [23]

См. также

[ редактировать ]
  1. ^ «Леннарт Поэттеринг о бурном господстве systemd» . Новый стек . 08.11.2018. Архивировано из оригинала 08.11.2018 . Проверено 30 января 2024 г.
  2. ^ init(8) Unix версии 7. программиста Руководство
  3. ^ ttys(5) Unix версии 7. программиста Руководство
  4. ^ init(8) 4.2BSD системного администратора Руководство
  5. ^ ttys(5) 4.2BSD по форматам файлов Руководство
  6. ^ init(8) 4.3BSD системного администратора Руководство
  7. ^ ttys(5) 4.3BSD по форматам файлов Руководство
  8. ^ Эндрю Смоллшоу (7 декабря 2009 г.). «Скрипты запуска Unix и Linux, часть 2» . Архивировано из оригинала 18 декабря 2009 года . Проверено 6 июня 2011 г.
  9. ^ «инит(8)» . minnie.tuhs.org . Архивировано из оригинала 27 июля 2021 г. Проверено 12 сентября 2015 г.
  10. ^ «Инитскрипты» . Документация Gentoo Linux . Gentoo.org. 13 декабря 2014 г. Архивировано из оригинала 03 декабря 2020 г. Проверено 8 декабря 2020 г.
  11. ^ «Пробег уровней» . Администрирование Oracle Solaris: общие задачи . Оракул . Архивировано из оригинала 10 апреля 2016 г. Проверено 14 ноября 2017 г.
  12. ^ «Страницы руководства UNIX: уровень выполнения (8)» . Unixhelp.ed.ac.uk. 27 мая 1997 г. Архивировано из оригинала 14 июля 2014 г. Проверено 12 июля 2014 г.
  13. ^ «GitHub — davmac314/dinit: Мониторинг служб/система инициализации» . Гитхаб . Архивировано из оригинала 12 декабря 2021 г. Проверено 12 декабря 2021 г.
  14. ^ «Домашняя страница системы инициализации эпохи» . Архивировано из оригинала 02 августа 2014 г. Проверено 31 июля 2014 г.
  15. ^ «Главная страница Void Linux» . Архивировано из оригинала 29 августа 2020 г. Проверено 31 августа 2020 г.
  16. ^ «Пастух — Проект GNU» . Free Software Foundation, Inc. Архивировано из оригинала 12 февраля 2016 г. Проверено 16 января 2016 г.
  17. ^ «s6: зачем еще один набор для наблюдения» . Архивировано из оригинала 13 сентября 2021 г. Проверено 13 сентября 2021 г.
  18. ^ «Система инициализации s6» . Архивировано из оригинала 13 сентября 2021 г.
  19. ^ Принятые функции Fedora 14 , 13 июля 2010 г., заархивировано из оригинала 27 марта 2022 г. , получено 13 июля 2010 г.
  20. ^ «Fedora откладывает systemd до F15» . Еженедельные новости Linux. 14 сентября 2010 г. Архивировано из оригинала 19 сентября 2010 г. Проверено 17 сентября 2010 г.
  21. ^ «Развертывание» . Red Hat Enterprise Linux 6: Технические примечания . Красная шляпа . Архивировано из оригинала 29 августа 2018 г. Проверено 31 декабря 2013 г.
  22. ^ Архитектура программного обеспечения: проектная документация Chromium OS , заархивировано из оригинала 9 апреля 2022 г. , получено 25 января 2014 г.
  23. ^ См . Systemd#Adoption.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4154454800a2c6897816126323549f74__1719855900
URL1:https://arc.ask3.ru/arc/aa/41/74/4154454800a2c6897816126323549f74.html
Заголовок, (Title) документа по адресу, URL1:
init - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)