Оглавление
Переосмысление PID 1. Часть 1 Переосмысление PID 1. Часть 2 Переосмысление PID 1. Часть 3 Переосмысление PID 1. Часть 4 Часть 5 Если у вас хорошие связи или вы умеете читать между строк, возможно, вы уже догадались, о чем эта статья в блоге.Но тем не менее эта история может показаться вам интересной.
Так что возьмите чашку кофе, расслабьтесь и прочитайте, что будет дальше.
Это длинная запись в блоге, хотя я рекомендую вам прочитать эту длинную запись в блоге, вот краткое изложение в одну строку: Мы экспериментируем с новой системой загрузки, и это весело.
Вот код .
И вот история:
Идентификатор процесса 1
В каждой системе Unix есть один процесс со специальным идентификатором 1. Он запускается ядром перед всеми последующими процессами, а также является родительским процессом для всех последующих/оставшихся процессов, которые не смогли найти родителя.В результате он может делать многие вещи, которые не могут сделать другие процессы.
Он также отвечает за некоторые вещи, за которые другие процессы не отвечают, например, за поднятие и поддержание пользовательского пространства во время загрузки системы.
Исторически сложилось так, что в Linux программное обеспечение, действующее как PID 1, было очень уважаемым пакетом.
сисвинит Я думаю, он слишком долго оставался на этом поприще.
Замены предлагались много раз, но фактически была принята только одна: Upstart, которая сейчас нашла свое применение во многих основных дистрибутивах.
Как уже упоминалось, основная ответственность системы загрузки — улучшение пользовательского пространства (пользовательской среды).
И хорошая система загрузки должна делать это быстро.
К сожалению, традиционная система загрузки СисВ на самом деле было не быстро.
Для быстрой и эффективной загрузки важны две вещи: Запускайте как можно скорее меньше И запустить его как можно скорее более параллельный Что это значит? Запуск меньшего количества означает запуск небольшого количества служб или отсрочку запуска до тех пор, пока они действительно не понадобятся.
Есть несколько услуг, о которых мы знаем, что они рано или поздно действительно будут востребованы ( системный журнал , D-шина , системная шина и т. д.), но для многих других это не важно.
Например, BluetoothD нет необходимости запускать до тех пор, пока не будет подключен Bluetooth-ключ или какое-либо приложение не захочет связаться с ним через интерфейс D-шина .
То же самое относится и к подсистеме печати: если машина физически не подключена к принтеру или какое-то приложение не хочет что-то распечатать, нет необходимости запускать демон печати, такой как ЧАШКИ .
Авахи: если машина не подключена к сети, запускать нет необходимости Авахи или до тех пор, пока какое-либо приложение не захочет использовать его API. И мы даже возьмем SSH : Пока никто не хочет подключаться к машине, запускать его нет необходимости, иначе можно запустить его (SSH) при первой попытке подключения к машине.
(И обратите внимание, что на большинстве машин, поддерживающих SSH, большинство из них подключаются к ним только раз в несколько месяцев или реже.
) Параллельная работа в максимально возможной степени означает, что если мы что-то запускаем, мы не должны запускать это последовательно/друг за другом (как это происходит сисвинит ), но запускайте все одновременно, чтобы процессор и ввод-вывод использовались максимально эффективно и, следовательно, общее время загрузки системы сократилось.
Аппаратное и программное обеспечение развивается очень динамично.
Современные системы (особенно системы общего назначения) очень гибки в своих конфигурациях и использовании: они мобильны, запускают и останавливают различные приложения, добавляют и удаляют различное оборудование снова и снова.
Система загрузки отвечает за поддержание служб для прослушивания изменений в аппаратном и программном обеспечении.
Система загрузки должна динамически запускать (иногда останавливать) службы, когда они необходимы для запуска любой программы или использования любого оборудования.
Большинство современных систем, пытающихся распараллелить загрузку, продолжают синхронизировать запуск различных демонов, участвующих в процессе: поскольку Авахи нуждается в D-шина , Что D-шина начинается первым и только тогда, когда D-шина подаст сигнал о готовности, Авахи начнет запускаться.
Аналогично и для других сервисов: libvirtd И Х11 нуждаться ХАЛ (итак, я имею в виду сервисы Fedora 13, игнорируйте тот факт, что ХАЛ больше не поддерживается), следовательно, сначала запускается HAL, а затем libvirtd И Х11 .
libvirtd в свою очередь, также нуждается Авахи , поэтому он тоже будет ждать запуска Авахи .
А все эти услуги, в свою очередь, требуют системный журнал , а это значит, что они все ждут сейчас Системный журнал не будет полностью инициализирован и запущен.
И так далее… Продолжение следует… Теги: #linux #*nix #Системное администрирование #Администрирование сервера #Конфигурация Linux #systemd #sysvinit #sysvinit #sysvinit #sysvinit #sysv-init
-
Реконструкция 3D Модели Движущегося Лица
19 Oct, 24 -
Импортозамещение Удостоверяющих Центров
19 Oct, 24 -
Колония. Глава 14: Нежданные Гости
19 Oct, 24 -
Простой И Правильный Учет Оборудования
19 Oct, 24 -
Обзор Mwc 2011, Новости
19 Oct, 24