Ubuntuで実行されているデーモン、プロセス、およびサービスの動作の違いは何ですか。
Ubuntuで実行されているデーモン、プロセス、およびサービスの動作の違いは何ですか。
回答:
デーモン -デーモンは、ディスクおよび実行モニター(http://www.takeourword.com/TOW146/page4.html)の略ではありません。これらはバックグラウンドで実行されるプロセスであり、インタラクティブではありません。制御端末はありません。
事前定義された時間に、または特定のイベントに応じて特定のアクションを実行します。* NIXでは、デーモンの名前はdで終わります。
サービス -Windowsでは、デーモンはサービスと呼ばれます。
* NIXにserviceという名前のコマンドがある理由を知りたい場合は、initスクリプトを実行するためだけに使用されます(初期化scriptrunlevelの省略形)。
プロセス -プロセスは実行中のプログラムです。特定の時点では、実行中、スリープ中、またはゾンビのいずれかです(プロセスは完了していますが、親プロセスが戻り値を取得するのを待っています)。
ソースと詳細情報:
デーモンは、バックグラウンド、非対話型であるプログラム。対話型ユーザーのキーボードとディスプレイから切り離されます。バックグラウンドプログラムを表すデーモンという言葉は、Unix文化に由来します。それは普遍的ではありません。
サービスは、あるプログラム(通常はネットワークを介して)いくつかのプロセス間通信メカニズムを介して他のプログラムからの要求に応答します。サービスは、サーバーが提供するものです。たとえば、NFSポートマッピングサービスは、portmapd
デーモンとして実装される別個のportmapサービスとして提供されます。
サービスはデーモンである必要はありませんが、通常はデーモンです。GUIを使用するユーザーアプリケーションには、たとえばファイル共有アプリケーションなどのサービスを組み込むことができます。別の例は、X Windowサービスです。これは、バックグラウンドではありません。画面、キーボード、およびポインティングデバイスを引き継ぎます。ネットワーク上の他の場所にある可能性のあるアプリケーション(ウィンドウの作成や操作など)からの要求に応答するため、サービスです。ただし、Xサービスはすべてのキーストロークとマウスの動きにも応答します。
プロセスは、リソースの共有セットと一緒に実行される1つ以上のスレッドであり、最も重要なものはアドレス空間とオープンファイル記述子です。プロセスは、これらの実行スレッド用の環境を作成します。これらの環境は、マシン全体を所有しているように見えます。それは仮想マシンです。
プロセス内では、他のプロセスおよびカーネルのリソースは不可視であり、直接アクセスできません(少なくともユーザー空間コードを実行しているスレッドからは)。たとえば、別のプロセスの開いているファイル、またはそれらのメモリ空間を参照する方法はありません。それはあたかもそれらのものが存在しないかのようです。
プロセス、およびカーネルと他のプロセスとの関係は、おそらくUnixライクなオペレーティングシステムで最も重要な抽象化を構成します。システムのリソースはプロセスに区分されており、ほぼすべてが1つのプロセスまたは別のプロセス内で発生していると理解されています。