Daemon, servis ve süreç arasındaki teknik fark nedir?


121

Ubuntu'da çalışan bir daemon, işlem ve hizmetin davranışlarındaki farklılıkların ne olduğunu bilmek istiyorum.


3
Bu daha önce kolayca sorulmuş ve cevaplanmış olan StackOverflow için daha uygun bir seçimdir .
Tom Brossman 23:12

5
@ Tom: Hayır, bu SE postası bir servisin ne olduğunu cevaplamıyor. Ve genel olarak buradaki cevaplar daha ayrıntılı.
Mads Skjern

3
@TomBrossman sonrası size ait görüşmelerin hiçbir bağlantılı hizmetler .
Pacerier

4
StackOverflow kodlama ile ilgilidir. deamons unix bir şey, burada sormak daha iyi bir yer yok
Mr.Robot

1
Ha? bu soru nasıl kapatılabilir?
Jacob Vlijm

Yanıtlar:


123

Daemons - Daemon, Disk ve Çalıştırma İzleyicisi için geçerli değildir ( http://www.takeourword.com/TOW146/page4.html ). Arka planda çalışan ve etkileşimli olmayan süreçlerdir. Kontrol terminalleri yok.

Belirli eylemleri önceden tanımlanmış zamanlarda veya belirli olaylara cevap olarak gerçekleştirirler. * NIX'te, daemonların adları d ile biter .

Hizmetler - Windows'ta, servislere servis denir .

Neden * NIX'in servis adında bir komutu olduğunu merak ediyorsanız , sadece init betiğini çalıştırmak için kullanılır ( başlatma betiği scriptrunlevel ).

İşlem - İşlem çalışan bir programdır. Belirli bir zamanda, koşuyor , uyuyor veya zombi olabilir (işlem tamamlandı, ancak ana işlemin dönüş değerini almasını bekliyor).

Kaynaklar ve daha fazla bilgi :


2
Süreçler Linux üzerinde birkaç devletler var, burada mükemmel bir diyagram açıklanmıştır: linux-tutorial.info/modules.php?name=MContent&pageid=84
Dietrich Epp

Bu resmi Ubuntu belgelerinin parçası “hizmetler” hakkında konuşuyor ve sanırım Windows hakkında konuşmuyorlar! Öyleyse onu daemon olarak okumalı mıyım? help.ubuntu.com/community/UbuntuBootupHowto
Mads Skjern

1
Aslında OP, Ubuntu içindeki hizmetleri sorurken, bu cevap Windows'taki hizmetleri anlatıyor. Açıkçası Anon'un cevabı doğru olanıdır
Mads Skjern

serverfault.com/questions/129055/… adresine göre servisler ve servisler aynı değildir
Mr.Robot

41
  1. Bir arka plan programı etkileşimli olmayan bir arka plandır . Herhangi bir etkileşimli kullanıcının klavyesinden ve ekranından çıkarılmıştır. Bir arka plan programını belirtmek için cini kelimesi, Unix kültüründen gelmektedir; bu evrensel değil.

  2. Bir hizmet bir olan programı (genellikle bir ağ üzerinden) bazı süreçler arası iletişim mekanizması üzerinde diğer programlardan isteklerine yanıt verir. Hizmet, sunucunun sağladığı şeydir. Örneğin, NFS bağlantı noktası eşleme hizmeti, portmapdarka plan programı olarak uygulanan ayrı bir bağlantı noktası hizmeti olarak sağlanır .

    Bir hizmet bir servet olmak zorunda değildir, ancak genellikle öyledir. Bir GUI'ye sahip bir kullanıcı uygulamasında yerleşik bir hizmet bulunabilir: örneğin bir dosya paylaşım uygulaması. Başka bir örnek, arka planda olan herhangi bir şey olan X Window servisidir: ekranınızı, klavyenizi ve işaretleme aygıtınızı devralır. Bu bir hizmettir, çünkü ağın başka bir yerinde bile olabilen uygulamalardan gelen isteklere yanıt verir (pencereleri oluşturmak ve değiştirmek, vb.). Ancak, X servisi aynı zamanda tüm tuş vuruşlarına ve fare hareketlerine cevap veriyor.

  3. Bir süreç, en önemlisi adres alanı ve açık dosya tanımlayıcıları olan paylaşılan kaynakları ile birlikte bir ya da daha fazla yürütme dizisidir. Bir işlem, bu yürütme iş parçacığı için kendi başına bir makineye sahip gibi görünen bir ortam yaratır: sanal bir makinedir.

    Bir işlemin içinde, diğer işlemlerin ve çekirdeğin kaynakları görünmezdir ve doğrudan erişilebilir değildir (en azından kullanıcı-alan kodunu çalıştıran bir iş parçacığına). Örneğin, başka bir işlemin açık dosyalarına veya hafıza alanlarına başvurmanın bir yolu yoktur; sanki bu şeyler bile yokmuş gibi.

    Süreç ve çekirdeğe ve diğer işlemlere olan ilişkisi belki de Unix benzeri işletim sistemlerinde en önemli soyutlamayı oluşturur. Sistemin kaynakları süreçler halinde bölümlere ayrılmıştır ve neredeyse her şey bir süreç içinde veya başka bir şeyde olduğu anlaşılmaktadır.


Sistemin RAM'ını doğrudan sorgulayarak diğer işlemlerin belleğini alamaz mıydınız?
Pacerier

1
Bir işlem genellikle doğrudan sistemin RAM'ını sorgulayamaz. Modern işletim sistemleri sanal adres alanlarını ( en.wikipedia.org/wiki/Virtual_address_space ) kullanır; bu, her bir işlemin yalnızca işletim sisteminin tam olarak erişilebilir olanı kontrol ettiği belleğin sahte görüntüsü ile etkileşime girebileceği anlamına gelir.
akroy

"Bir işlem, bu yürütme iş parçacıkları için kendilerine ait bir makineye sahip gibi görünen bir ortam yaratır: sanal bir makinedir." Bunu koymak çok güzel bir şekilde, bu kadar net olarak asla böyle düşünmedim. Ama elbette soyutlama sızdırıyor. Gibi, zaman ölçebilen bir işlem (işlemciden bile yapabilir), makinede yalnız olmadığını fark edebilir. Ve elbette, işletim sistemi diğer süreçleri numaralandırmak için mekanizmalar sağlar.
masterxilo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.