見出し画像

【16】【Linux】プログラミング用語のデーモンって何?

プログラミング用語のデーモンって何?
プログラミング用語でたまにデーモンという用語がでてきます。
デーモン?悪魔?
デーモンって何でしょうか?
 この記事によるとhttps://wa3.i-3-i.info/word11000.html

メモリ上で「さぁ、いつでもかかってこい」と待機している常駐プログラムのUNIX系OSにおける呼び名だそうです。

具体的に3つの事例を見ていきましょう。

Dockerデーモン

デーモンって何?となったきっかけが、Dockerデーモンです。Dockerの使い方は学びましたが、いまいちDockerデーモンについて、よく分かっていませんでした。
このサイトの定義によると、
Dockerデーモンとは、Linux のデーモンプロセスで、Docker Engine API が呼び出されるのを待ち受けています。
Dockerデーモンは、呼び出された Docker Engine API に応じて、イメージのビルドやコンテナの起動などを行います。
なんとなくイメージが湧いてきましたね。別の事例を見てみましょう。

Linuxにおけるudevの仕組み

Linuxにおけるudevの仕組みにもudevデーモンという用語が出てきます。Linuxではデバイス(ハードウェア)が接続されると、カーネルが検知します。カーネルが検知すると、/sysディレクトリ以下にデバイス情報が作成されます。
次にudevデーモン(udevd)が/sysディレクトリのデバイス情報が変更されたことを検知します。そして、/devディレクトリ以下にデバイスファイルを作成します。
ちなみに、デバイス(ハードウェア)の出力、入力はデバイスファイルを書き込んだり、読み込んだりするとことで表します。
まとめると、udevデーモンが/sysディレクトリのデバイス情報を監視し、変更があったらdevディレクトリ以下にデバイスファイルを作成するということです。
だいたいつかめてきましたね。さらに別の事例を見ましょう。

サーバにおけるデーモン。

ネットワークを通じてサービスを提供するサーバーはデーモンと呼ばれる常駐プログラムです。
デーモンは常時メモリ上に待機していて、クライアントからの要求を監視してます。
デーモンとは何かの要求を監視する仕組みです。

スーパーサーバー
サーバー上のデーモンの話しと関連のあるスーパーサーバーについて解説します。
デーモンの問題点
デーモンは、使用していない時でもメモリなどのリソースを消費してます。常駐するデーモンの数が多くなればなるほど、待機中のデーモンが消費するシステムリソースが大きくなるという問題があります。
これらの問題を解決するために、スーパーサーバーが開発されました。
スーパーサーバーがクライアントからの要求を監視し、必要に応じてサービスを起動、停止します。
スーパーサーバーはinted/xintedとありますが現在のディストリビューションではほとんと使われてません。
systemdによって管理されています。

systemd

LinuCレベル1の範囲内でsystemdについて解説します。
systemdとは簡単にいうと従来のinitに置き換わる新しいinitシステムです。
systemdでは以下のデーモンプロセスが連携して動作しています。

systemd
systemd-journald
systemd-logind
systemd-udevd

 参考文献

Ping_T
Linux教科書 LinuCレベル1 Version 10.0対応

 最後に
私がブログを書く目的は、素晴らしい本や、素晴らしい方々の技術記事を知って頂きたいからです。ぜひ、上記の参考文献を見て下さい。(noteなので広告とかは一切ありません。)

現在、株式会社grabssに行くために最後の悪あがきをしています!!
現在の進行状況
16件目投稿。目標まで後34件。

よろしければ、スキボタン及びサポートお願いします。勉強の励みになります。

この記事が気に入ったらサポートをしてみませんか?