нагревать


В основе UNIX компьютерных операционных системах на INIT (короткий для инициализации ) является первым процессом, запущенным во время загрузки операционной системы. Init - это процесс демона , который продолжает работать до тех пор, пока система не будет отключена. Это прямой или косвенный предок всех других процессов и автоматически принимает все осиротежные процессы . Init запускается ядром во время процесса загрузки ; Паника ядра произойдет, если ядро не сможет запустить его, или она должна умереть по любой причине. Init обычно назначается идентификатор процесса 1.
В таких системах UNIX, как System III и System V , дизайн INIT расходился от функциональности, предоставленных Init in Research Unix и его производными BSD . До начала 2010 -х годов, [ 1 ] [ неудачная проверка ] Большинство распределений Linux использовали традиционную инициативу, которая была несколько совместима с системой V, в то время как в некоторых распределениях, таких как Slackware, используются сценарии стартапов в стиле BSD, а другие, такие как Gentoo, имеют свои собственные индивидуальные версии.
С тех пор было создано несколько дополнительных реализаций инициировать, пытаясь учесть ограничения проектирования в традиционных версиях. К ним относятся LaunchD , объект управления услугами , SystemD , Runit и OpenRC .
Исследование в стиле Unix/BSD-стиль
[ редактировать ]Исследование Unix инициализации, init запускает скрипт оболочки расположенный в /etc/rc
, [ 2 ] затем запускает Getty на терминалах под контролем /etc/ttys
. [ 3 ] Там нет бегалвров; а /etc/rc
Файл определяет, какие программы запускаются инициатором. Преимущество этой системы заключается в том, что ее простой и легко редактировать вручную. Тем не менее, новое программное обеспечение, добавленное в систему, может потребовать изменений в существующих файлах, которые производят риск, производящую небезопасную систему.
BSD Init был до 4.3BSD, так же, как и Research Unix's Init; [ 4 ] [ 5 ] В 4.3BSD он добавил поддержку для системы оконного окон запуска /etc/ttys
. [ 6 ] [ 7 ] Чтобы удалить требование, чтобы редактировать /etc/rc
, Варианты BSD давно поддерживают специфичный для сайта /etc/rc.local
Файл, который запускается в подболке в конце концов последовательности загрузки.
Полностью модульная система была введена с NETBSD 1.5 и перенесена в FreeBSD 5.0 и преемники. Эта система выполняет сценарии в /etc/rc.d
каталог. В отличие от упорядочения сценария системы V, которое получено из имени файла каждого сценария, эта система использует явные теги зависимости, размещенные в каждом сценарии. [ 8 ] Порядок выполнена сценарии, определяется утилитой RCorder на основе требований, указанных в этих тегах.
SYSV-стиль
[ редактировать ]
По сравнению со своими предшественниками, AT & T System III представила новый стиль конфигурации запуска системы, [ 9 ] который выжил (с модификациями) в систему V Unix и поэтому называется «SYSV-стиль».
В любой момент работающая система V находится в одном из заранее определенного количества состояний, называемых Runlevels . По крайней мере, один Runlevel является нормальным рабочим состоянием системы; Как правило, другие Runlevels представляют собой режим однопользователя (используемый для восстановления неисправной системы), выключение системы и различные другие состояния. Переключение с одного Runlevel на другое вызывает запуск набора сценариев для заполнения, которые обычно устанавливают файловые системы, запускают или останавливают демоны , запускают или останавливают систему x , выключите машину и т. Д.
Runlevels
[ редактировать ]Рутки в системе V описывают определенные состояния машины, характеризующиеся процессами и демонами, работающими в каждом из них. В целом, есть семь бегал.
- Выключать
- Однопользовательский режим (также известный как S или S )
- Перезагрузить
Помимо этих стандартных, Unix и Unix-подобных систем обрабатывают Runlevels несколько по-разному. Общий знаменатель, /etc/inittab
Файл, определяет, что каждый настроенный Runlevel делает в данной системе.
По умолчанию Runlevels
[ редактировать ]Операционная система | По умолчанию Runlevel |
---|---|
AIX | 2 |
антиксальный | 5 |
Gentoo Linux | 3 [ 10 ] |
HP-UX | 3 (консоль/сервер/многопользователь) или 4 (графический) |
Linux с нуля | 3 |
Slackware Linux | 3 |
Солнечная / свет | 3 [ 11 ] |
System V System V выпуски 3.x, 4.x | 2 |
Unixware 7.x | 3 |
На Linux Distributions Dellocting to Runlevel 5 В таблице справа Runlevel 5 вызывает многопользовательскую графическую среду, управляющую системой x Window , обычно с помощью диспетчера дисплеев, такого как GDM или KDM . Тем не менее, операционные системы Solaris и Illumos обычно зарезервируют Runlevel 5, чтобы выключить и автоматически питать машину.
В большинстве систем все пользователи могут проверить текущий Runlevel с любым runlevel
или who -r
командование [ 12 ] Пользователь root обычно меняет текущий Runlevel, запустив telinit
или init
команды А /etc/inittab
Файл устанавливает Runlevel по умолчанию с :initdefault:
вход.
В системах UNIX изменение Runlevel достигается за счет запуска только пропущенных сервисов (поскольку каждый уровень определяет только те, которые запускаются / останавливаются). [ Цитация необходима ] Например, изменение системы с Runlevel 3 на 4 может запустить только локальный X -сервер. Возвращаясь к Runlevel 3, его снова остановит.
Другие реализации
[ редактировать ]Традиционно, одним из основных недостатков init является то, что он начинает задачи последовательно, ожидая, пока каждый закончит загрузку, прежде чем перейти к следующему. Когда процессы запуска в конечном итоге заблокированы входными/выводами (ввода/вывода), это может привести к длинным задержкам во время загрузки. Ускорение ввода/вывода, например, с использованием SSD, может сократить задержки, но не учитывает основную причину.
Были предприняты различные усилия, чтобы заменить традиционные демоны init для решения этого и других проблем с дизайном, в том числе:
- Bootcripts в Gobolinux
- Busybox-init , подходит для встроенных операционных систем , используемых Alpine Linux , Slitaz 5 (Rolling), Tiny Core Linux и VMware Esxi , и используется OpenWRT , прежде чем он был заменен ProCD
- Dinit, менеджер по обслуживанию и система Init. [ 13 ]
- Эпоха , однопоточная система Linux Init, ориентированная на простоту и управление услугами [ 14 ]
- Initng , полная замена инициирования, предназначенная для запуска процессов асинхронно
- LaunchD , замена для Init в Darwin / MacOS / IOS / TVOS, начиная с Mac OS X V10.4 (он запускает SystemStarter для запуска «RC.Local» и SystemStarter Process)
- OpenRC , процесс Spawner, который использует предоставленную систему init, обеспечивая при этом изоляцию процесса, параллелизированный запуск и зависимость от обслуживания; Используется Alpine Linux , Gentoo и его производные и доступен в качестве опции в Devuan и Artix Linux
- Рунит , кроссплатформенная полная замена для init с параллельным запуском сервисов, используемый по умолчанию в void linux [ 15 ]
- Sun Service Management Facility (SMF), полная замена / редизайн init с нуля в Illumos / Solaris , начиная с Solaris 10, но выпущенная в качестве единственной услуги оригинальной системой V-стиля init
- Shepherd , сервис GNU и Daemon Manager, который обеспечивает асинхронную инициализацию на основе зависимостей; Написано в схеме стихийной работы и предназначено для интерактивного взлома во время обычной системы системы [ 16 ]
- S6 , набор программного обеспечения, который включает в себя систему init. [ 17 ] [ 18 ]
- Systemd , набор программного обеспечения, полная замена для init в Linux, которая включает в себя демон init, с одновременным запуском услуг, сервисного менеджера и других функций.
- SystemStarter , процесс Spawner, созданный в стиле BSD в Mac OS X до Mac OS X V10.4
- Upstart , полная замена инициирования, предназначенная для запуска процессов асинхронно. Инициировано Ubuntu и использованным ими до 2014 года. Он также использовался в Fedora 9, [ 19 ] [ 20 ] Red Hat Enterprise Linux 6 [ 21 ] и Google Chromeos . [ 22 ]
По состоянию на февраль 2019 года [update], SystemD была принята большинством крупных распределений Linux. [ 23 ]
Смотрите также
[ редактировать ]- Управление услугами операционной системы
- Подсистема менеджера сеанса - эквивалент в Windows NT
Ссылки
[ редактировать ]- ^ «Поэттер в Леннарте на бурном господстве Системда» . Новый стек . 2018-11-08. Архивировано из оригинала 2018-11-08 . Получено 2024-01-30 .
- ^ Версия 7 программиста Unix Руководство -
- ^ Версия 7 программиста Unix Руководство -
- ^ 4.2BSD по системному менеджеру Руководство -
- ^ 4.2BSD Форматы файлов Руководство -
- ^ 4,3BSD системному менеджеру Руководство по -
- ^ 4,3BSD Форматы файлов Руководство -
- ^ Эндрю Смоллшоу (7 декабря 2009 г.). «Сценарии стартапов Unix и Linux, часть 2» . Архивировано из оригинала 18 декабря 2009 года . Получено 6 июня 2011 года .
- ^ "Инициация (8)" . Minnie.tuhs.org . Архивировано из оригинала 2021-07-27 . Получено 2015-09-12 .
- ^ "Initscripts" . Документация Gentoo Linux . Gentoo.org. 2014-12-13. Архивировано из оригинала 2020-12-03 . Получено 2020-12-08 .
- ^ «Уровень бега» . Администрация Oracle Solaris: общие задачи . Оракул . Архивировано с оригинала 2016-04-10 . Получено 2017-11-14 .
- ^ "Unix Man Pages: Runlevel (8)" . UnixHelp.ed.ac.uk. 1997-05-27. Архивировано из оригинала 2014-07-14 . Получено 2014-07-12 .
- ^ "GitHub - DAVMAC314 / DINIT: мониторинг обслуживания /" Init "System" . GitHub . Архивировано из оригинала 2021-12-12 . Получено 2021-12-12 .
- ^ «Домашняя страница эпохи init init» . Архивировано с оригинала 2014-08-02 . Получено 2014-07-31 .
- ^ "Void Linux Main Page" . Архивировано из оригинала 2020-08-29 . Получено 2020-08-31 .
- ^ «Пастух - проект GNU» . Free Software Foundation, Inc. Архивирована с оригинала 2016-02-12 . Получено 2016-01-16 .
- ^ «S6: Почему еще один набор надзоров» . Архивировано из оригинала 2021-09-13 . Получено 2021-09-13 .
- ^ "S6 Init System" . Архивировано из оригинала 2021-09-13.
- ^ Fedora 14 принятые функции , 2010-07-13, архивировали из оригинала 2022-03-27 , извлечены 2010-07-13
- ^ «Fedora Defers Systemd до F15» . Linux Еженедельные новости. 2010-09-14. Архивировано из оригинала 2010-09-19 . Получено 2010-09-17 .
- ^ «Развертывание» . Red Hat Enterprise Linux 6: Технические примечания . Красная шляпа . Архивировано с оригинала 2018-08-29 . Получено 2013-12-31 .
- ^ Архитектура программного обеспечения: Design Documents Chromium OS , архивные из оригинала 9 апреля 2022 года , извлечены 25 января 2014 г.
- ^ См . Systemd#Усыновление
Внешние ссылки
[ редактировать ]- FreeBSD Init Man Page
- Документ, обобщающий схемы Unix init (2007)
- Управление услугами Solaris - Руководство по QuickStart в The Wayback Machine (архивировано 31 декабря 2005 г.)
- История современных систем Init (1992–2015 гг . )