Демон (вычисления)

редактировать
Компоненты некоторых Linux сред рабочего стола, которые являются демонами, включают D-Bus, NetworkManager (здесь называется unetwork), PulseAudio (usound) и Avahi.

In многозадачность компьютер операционных систем, демон (или ) - это компьютерная программа, работающая как фоновый процесс, а не находящийся под непосредственным контролем интерактивного пользователя. Традиционно имена процессов демона заканчиваются буквой d для пояснения того, что процесс на самом деле является демоном, и для различения демона и обычной компьютерной программы. Например, syslogd - это демон, реализующий возможность ведения системного журнала, а sshd - это демон, обслуживающий входящие SSH соединения.

В среде Unix родительский процесс демона часто, но не всегда, является процессом init. Демон обычно создается либо процессом , разветвляющим дочерний процесс, а затем немедленно завершающимся, что заставляет init принять дочерний процесс, либо процессом init, непосредственно запускающим демон. Кроме того, демон, запускаемый путем разветвления и выхода, обычно должен выполнять другие операции, такие как отделение процесса от любого управляющего терминала (tty). Такие процедуры часто реализуются в различных вспомогательных подпрограммах, таких как daemon (3) в Unix.

Системы часто запускают демонов во время загрузки, которые будут отвечать на сетевые запросы, активность оборудования или другие программы, выполняя некоторые задачи. Демоны, такие как cron, также могут выполнять определенные задачи в запланированное время.

Содержание
  • 1 Терминология
  • 2 Реализации
    • 2.1 Unix-подобные системы
    • 2.2 MS-DOS
    • 2.3 Windows NT
    • 2.4 Классический Mac OS и macOS
  • 3 Этимология
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки
Терминология

Термин был придуман программистами из MIT's Project MAC. Они взяли название от демона Максвелла, воображаемого существа из мысленного эксперимента, который постоянно работает в фоновом режиме, сортируя молекулы. Системы Unix унаследовали эту терминологию. Демон Максвелла согласуется с интерпретацией демона в греческой мифологии как сверхъестественного существа, действующего на заднем плане, без особой предвзятости к добру или злу. Однако BSD и некоторые из ее производных приняли христианского демона в качестве своего талисмана, а не греческого демона.

Слово демон - это альтернативное написание слова "демон" произносится как . В контексте компьютерного программного обеспечения первоначальное произношение сместилось для некоторых говорящих на .

Альтернативные термины для демона: служба (используется в Windows, начиная с Windows NT - и позже также в Linux), запущенная задача (IBM z / OS ) и задание-призрак (XDS УТС ).

После того, как этот термин был принят для использования в компьютерах, он был рационализирован как «backronym » для Disk And Execution MONitor.

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

Реализации

Unix-подобных систем

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

В Unix-подобной системе общий метод превращения процесса в демон, когда процесс запускается из командной строки или из сценария запуска, такого как Сценарий init или сценарий SystemStarter включает:

  • Необязательное удаление ненужных переменных из среды.
  • Выполнение в качестве фоновой задачи с помощью разветвления и выход из (в родительской «половине» вилки). Это позволяет родителю демона (оболочке или процессу запуска) получать уведомление о выходе и продолжать его нормальное выполнение.
  • Отсоединение от вызывающего сеанса, обычно выполняется одной операцией, setsid ():
    • Отсоединение от управляющий tty.
    • Создание нового сеанса и становление лидером этого сеанса.
    • Стать лидером группы процессов .
  • Если демон хочет убедиться, что он не получит новый управляющий tty даже случайно (что происходит, когда лидер сеанса без управляющего tty открывает свободный tty), он может выполнить ответвление и снова выйти. Это означает, что он больше не является лидером сеанса в новом сеансе и не может получить управляющий tty.
  • Установка корневого каталога (/) в качестве текущего рабочий каталог, чтобы в процессе не оставались используемые каталоги, которые могут находиться в смонтированной файловой системе (позволяя размонтировать ее).
  • Изменение umask на 0, чтобы разрешить вызовам open (), creat ()и другим операционным системам предоставлять свои собственные маски разрешений и не зависеть от umask вызывающего.
  • Перенаправление файловых дескрипторов 0, 1 и 2 для стандартных потоков (stdin, stdout и stderr ) в / dev / null или файл журнала и закрытие всех остальных файловых дескрипторов, унаследованных от родительского процесса.

Если процесс запущен демон супер-сервера, например {{mono | inetd {{mono |, launchd или systemd, демон супер-сервера будет выполнять эти функции для процесса, например cept для демонов старого стиля, не преобразованных для работы под systemd и указанных как {{{1}}} и "многопоточных" серверов датаграмм в inetd.

MS- DOS

В среде Microsoft DOS программы, подобные демонам, были реализованы как завершать работу и оставаться резидентным (TSR).

Windows NT

В системах Microsoft Windows NT программы, называемые службами Windows, выполняют функции демонов. Они работают как процессы, обычно не взаимодействуют с монитором, клавиатурой и мышью и могут запускаться операционной системой во время загрузки. В Windows 2000 и более поздних версиях службы Windows настраиваются, запускаются и останавливаются вручную с помощью панели управления, специальной программы управления / настройки, компонента Service Controller службы . Control Manager (команда sc), команды net start и net stop или система сценариев PowerShell.

Однако любое приложение Windows может выполнять роль демона, а не только службы, а некоторые демоны Windows могут работать как обычный процесс.

Классическая Mac OS и macOS

В классической Mac OS дополнительные функции и услуги предоставлялись файлами, загружаемыми во время запуска, которые исправляли операционную систему; они были известны как системные расширения и панели управления. Более поздние версии классической Mac OS дополнили их полноценными безликими фоновыми приложениями : обычными приложениями, работающими в фоновом режиме. Для пользователя это все еще описывалось как обычные системные расширения.

macOS, которая является системой Unix, использует демонов. Обратите внимание, что macOS использует термин «службы» для обозначения программного обеспечения, которое выполняет функции, выбранные в меню Services, вместо того, чтобы использовать этот термин для демонов, как это делает Windows.

Этимология

Согласно Фернандо Дж. Корбато, который работал над Project MAC в 1963 году, его команда была первой, кто использовал термин демон, вдохновленный демоном Максвелла, воображаемым агентом в физике и термодинамике, который помогал сортировать молекулы, заявляя: «Мы причудливо начали использовать слово демон для описания фоновых процессов, которые неустанно работали над выполнять системные обязанности ".

В общем смысле демон - это более старая форма слова« демон », от греческого δαίμων. В Руководстве по системному администрированию Unix Эви Немет говорит о демонах следующее:

Многие люди приравнивают слово «демон» к слову «демон», подразумевая некую сатанинскую связь между UNIX и подземным миром. Это вопиющее недоразумение. «Демон» на самом деле гораздо более старая форма «демона»; Демоны не имеют особой предвзятости к добру или злу, а скорее служат для определения характера или личности человека. У древних греков концепция «личного демона» была похожа на современную концепцию «ангела-хранителя» - эвдемония - это состояние, когда добрые души помогают или защищают их. Как правило, системы UNIX, кажется, заражены как демонами, так и демонами.

Еще одна характеристика мифологического символизма состоит в том, что демон - это нечто невидимое, но всегда присутствующее и действующее по своей воле. В Теагах, приписываемых Платону, Сократ описывает своего личного демона как нечто вроде современной концепции моральной совести: «Милость богов. подарил мне чудесный подарок, который не покидал меня с детства. Это голос, который, когда он дает себя услышать, удерживает меня от того, что я собираюсь сделать, и никогда не подстегивает меня ".

См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-16 10:08:36
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте