Jump to content

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

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

В многозадачных компьютерных операционных демон ən ( / ˈ d m / / или ˈ ) d m ən / системах [1] — это компьютерная программа , которая работает как фоновый процесс , а не находится под прямым контролем интерактивного пользователя. Традиционно имена процессов демона заканчиваются буквой d , чтобы прояснить, что процесс на самом деле является демоном, и чтобы отличить демона от обычной компьютерной программы. Например, syslogd — это демон, реализующий функцию системного журналирования, и sshd — это демон, который обслуживает входящие SSH- соединения.

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

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

Терминология

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

Этот термин был придуман программистами проекта MAC Массачусетского технологического института . По словам Фернандо Х. Корбато , который работал над проектом MAC в 1963 году, его команда была первой, кто использовал термин «демон», вдохновленный демоном Максвелла , воображаемым агентом в физике и термодинамике , который помогал сортировать молекулы, заявив: «Мы причудливо начали использовать слово «демон» для описания фоновых процессов, которые неустанно работали над выполнением системных задач». [2] Системы Unix унаследовали эту терминологию. Демон Максвелла согласуется с интерпретацией демона в греческой мифологии как сверхъестественного существа, действующего на заднем плане.

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

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

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

В современном использовании в контексте компьютерного программного обеспечения слово демон произносится / ˈ d m ən / DEE -mən или / ˈ d m ən / DAY -mən . [1]

Альтернативными терминами для демона являются служба (используется в Windows, начиная с Windows NT, а позже и в Linux), запущенная задача (IBM z/OS ), [4] и призрачная работа (XDS UTS ). более общий термин «сервер» или «серверный процесс» Иногда используется , особенно для демонов, которые работают как часть клиент-серверных систем . [5]

После того, как этот термин был принят для использования на компьютере, он был рационализирован как бэкроним для Disk And Execution MONitor. [6] [1]

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

Реализации

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

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

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

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

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

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

Если процесс запускается демоном суперсервера , например инетд , запуск или systemd , демон суперсервера выполнит эти функции для процесса, [7] [8] [9] за исключением демонов старого стиля, не преобразованных для работы под управлением systemd и указан как Тип=разветвление [9] и «многопоточные» серверы датаграмм под инетд . [7]

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

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

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

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

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

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

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

См. также

[ редактировать ]
  1. ^ Перейти обратно: а б с Эрик С. Рэймонд . «демон» . Файл жаргона . Проверено 22 октября 2008 г.
  2. ^ «Происхождение слова Демон» .
  3. ^ «Демон BSD» . Freebsd.org . Проверено 15 ноября 2008 г.
  4. ^ «Глоссарий терминов и сокращений z/OS» . Документация IBM . ИБМ . 31 января 2006 г.
  5. ^ «sshd: серверный процесс OpenSSH | Академия SSH» . www.ssh.com . Проверено 4 декабря 2023 г.
  6. ^ «Определение демона» . www.linfo.org .
  7. ^ Перейти обратно: а б inetd(8) FreeBSD системного администратора Руководство
  8. ^ launchd.plist(5) Darwin и macOS по форматам файлов Руководство
  9. ^ Перейти обратно: а б "systemd.service" . сайт freedesktop.org . Проверено 25 августа 2012 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 215655a17bfd3e1b2c2a9b20fc95e000__1715825460
URL1:https://arc.ask3.ru/arc/aa/21/00/215655a17bfd3e1b2c2a9b20fc95e000.html
Заголовок, (Title) документа по адресу, URL1:
Daemon (computing) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)