apa perbedaan teknis antara daemon, layanan, dan proses?


121

Saya ingin tahu bahwa apa perbedaan perilaku daemon, proses, dan layanan yang berjalan di Ubuntu.


3
Ini lebih cocok untuk StackOverflow, yang sudah ditanyakan dan dijawab dengan nyaman .
Tom Brossman

5
@ Tom: Tidak, posting SE itu tidak menjawab apa layanan itu. Dan secara keseluruhan jawaban di sini lebih rumit.
Mads Skjern

3
@ TomBrossman, Posting yang Anda tautkan tidak membahas tentang layanan .
Pacerier

4
StackOverflow adalah tentang pengkodean. Deamons adalah hal yang unix, tidak ada tempat yang lebih baik untuk bertanya selain di sini
Mr.Robot

1
Hah? bagaimana pertanyaan ini bisa ditutup?
Jacob Vlijm

Jawaban:


123

Daemon - Daemon tidak mewakili Disk dan Execution Monitor ( http://www.takeourword.com/TOW146/page4.html ). Mereka adalah proses yang berjalan di latar belakang dan tidak interaktif. Mereka tidak memiliki terminal pengendali.

Mereka melakukan tindakan tertentu pada waktu yang telah ditentukan atau sebagai respons terhadap peristiwa tertentu. Dalam * NIX, nama-nama daemon berakhir dengan d .

Layanan - Di Windows, daemon disebut layanan .

Jika Anda bertanya-tanya mengapa * NIX memiliki layanan bernama perintah , ini hanya digunakan untuk menjalankan skrip init (singkatan untuk inisialisasi scriptrunlevel ).

Proses - Proses adalah program yang sedang berjalan. Pada saat tertentu, itu bisa berupa berlari , tidur , atau zombie (proses selesai, tetapi menunggu proses induknya untuk mengambil nilai kembali).

Sumber dan informasi lebih lanjut :


2
Proses memiliki beberapa status lagi di Linux, ini diagram yang sangat bagus: linux-tutorial.info/modules.php?name=MContent&pageid=84
Dietrich Epp

Sepotong dokumentasi resmi Ubuntu ini berbicara tentang "layanan", dan saya pikir mereka tidak berbicara tentang Windows! Jadi haruskah saya membacanya sebagai daemon? help.ubuntu.com/community/UbuntuBootupHowto
Mads Skjern

1
Bahkan OP bertanya tentang layanan di dalam Ubuntu, sementara jawaban ini memberi tahu tentang layanan di Windows. Jadi jelas jawaban Anon adalah yang benar
Mads Skjern

menurut serverfault.com/questions/129055/... daemon dan layanan tidak sama
Mr.Robot

41
  1. Sebuah daemon adalah latar belakang, non-interaktif Program . Itu terlepas dari keyboard dan tampilan dari setiap pengguna interaktif. Kata daemon untuk menunjukkan program latar belakang berasal dari budaya Unix; itu tidak universal.

  2. Sebuah layanan adalah program yang yang merespon permintaan dari program lain atas beberapa antar-proses mekanisme komunikasi (biasanya melalui jaringan). Layanan adalah apa yang disediakan server. Misalnya, layanan pemetaan port NFS disediakan sebagai layanan portmap terpisah, yang diimplementasikan sebagai portmapddaemon.

    Layanan tidak harus menjadi dasmon, tetapi biasanya demikian. Aplikasi pengguna dengan GUI dapat memiliki layanan yang dibangun di dalamnya: misalnya, aplikasi berbagi file. Contoh lain adalah layanan X Window, yang tidak lain adalah di latar belakang: ia mengambil alih layar, keyboard, dan perangkat penunjuk Anda. Ini adalah layanan karena menanggapi permintaan dari aplikasi (untuk membuat dan memanipulasi windows, dan lain-lain), yang bahkan dapat di tempat lain di jaringan. Tetapi layanan X juga merespons setiap gerakan tombol dan mouse Anda.

  3. Suatu proses adalah satu atau lebih utas eksekusi bersama dengan set sumber daya bersama mereka, yang paling penting adalah ruang alamat dan deskriptor file terbuka. Sebuah proses menciptakan lingkungan untuk rangkaian eksekusi ini yang sepertinya memiliki seluruh mesin untuk diri mereka sendiri: ini adalah mesin virtual.

    Di dalam suatu proses, sumber daya dari proses lain, dan dari kernel, tidak terlihat dan tidak dapat diakses secara langsung (setidaknya tidak untuk utas yang mengeksekusi kode ruang pengguna). Misalnya, tidak ada cara untuk merujuk ke file yang terbuka dari proses lain, atau ruang memori mereka; seolah-olah hal-hal itu bahkan tidak ada.

    Proses, dan hubungannya dengan kernel dan proses lainnya, mungkin merupakan abstraksi terpenting dalam sistem operasi mirip Unix. Sumber daya sistem dikelompokkan menjadi beberapa proses, dan hampir semuanya dipahami terjadi di dalam satu proses atau lainnya.


Tidak bisakah Anda mendapatkan memori dari proses lain dengan menanyakan langsung untuk sistem RAM?
Pacerier

1
Suatu proses umumnya tidak dapat meminta secara langsung untuk RAM sistem. OS modern menggunakan ruang alamat virtual ( en.wikipedia.org/wiki/Virtual_address_space ), yang berarti bahwa setiap proses hanya dapat berinteraksi dengan tampilan memori palsu di mana OS mengontrol dengan tepat apa yang dapat diakses.
akroy

"Sebuah proses menciptakan lingkungan untuk utas eksekusi ini yang sepertinya memiliki seluruh mesin untuk diri mereka sendiri: ini adalah mesin virtual." Cara yang sangat bagus untuk menggambarkannya, tidak pernah memikirkannya dengan jelas. Tapi tentu saja abstraksinya bocor. Seperti, proses yang dapat mengukur waktu (yang dapat dilakukan melalui prosesor bahkan) dapat melihat bahwa itu tidak sendirian di mesin. Dan tentu saja OS memang menyediakan mekanisme untuk menyebutkan proses lain.
masterxilo
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.