Добавить в корзинуПозвонить
Найти в Дзене
GNU/Linux для чайников

Системы инициализации

Системы инициализации - это демоны, целью которых является запуск всех требующихся приложений, утилит и скриптов при заданных условиях в нужном порядке. Что такое "демон" - сразу же спросит себя неискушенный человек? Ничего плохого в себе данный термин не несёт. Демон - это программа, запущенная и работающая в "фоновом режиме". Чаще всего они занимаются такими вещами, как сетевые запросы, работой аппаратного обеспечения - всем тем, что можно подчинить принципу "ожидай и наблюдай". Так вот, после запуска своего запуска ядро запускает первый в системе процесс - демон инициализации. На его плечи воздвигают обязанности по запуску всех элементов системы. Важно то, что все процессы являются потомками процесса-демона инициализации. Интересен и процесс "рождения" новых процессов в системе. У каждого процесса, кроме демона инициализации, есть свой родитель. Это не случайно, ведь как и у, например, людей, новый процесс создается по-подобию родителя самим родителем. Таким образом новый процесс

Системы инициализации - это демоны, целью которых является запуск всех требующихся приложений, утилит и скриптов при заданных условиях в нужном порядке.

Что такое "демон" - сразу же спросит себя неискушенный человек? Ничего плохого в себе данный термин не несёт. Демон - это программа, запущенная и работающая в "фоновом режиме". Чаще всего они занимаются такими вещами, как сетевые запросы, работой аппаратного обеспечения - всем тем, что можно подчинить принципу "ожидай и наблюдай".

Так вот, после запуска своего запуска ядро запускает первый в системе процесс - демон инициализации. На его плечи воздвигают обязанности по запуску всех элементов системы. Важно то, что все процессы являются потомками процесса-демона инициализации.

Интересен и процесс "рождения" новых процессов в системе. У каждого процесса, кроме демона инициализации, есть свой родитель. Это не случайно, ведь как и у, например, людей, новый процесс создается по-подобию родителя самим родителем. Таким образом новый процесс в системе изначально является почти что полной копией своего родителя. Но дети рода человеческого не являются копией родителя? Верно. "Новорожденный" процесс может являться копей своего родителя, а может быть перезаписан другой требующейся программой, которую, например, изначально и требовалось запустить. Процесс "рождения" процесса называется "форкинг" (от англ. fork - вилка, разветвление). Нужно уточнить, что в современном стандарте POSIX, по которому идет разработка механизмов многих Unix-подобных систем, в том числе и GNU/Linux, включает в себя другие механизмы создания процессов.

В ответ на вопрос "Кто появился раньше? Курица или яйцо?" в аналогии с Unix-подобными ОС можно сказать о том, что яйцо - демон инициализации, "родился"без курицы, ведь его "родило" ядро, которое не является процессом.

Схема принципа работы функции fork() - той самой функции, о которой шла речь выше. Картинка для привлечения внимания :-)
Схема принципа работы функции fork() - той самой функции, о которой шла речь выше. Картинка для привлечения внимания :-)