Vraag wat is technisch verschil tussen daemon, service en proces? [Gesloten]


Ik wil weten wat verschillen in gedrag zijn van een daemon, proces en service die wordt uitgevoerd op ubuntu-desktop.


106
2017-09-23 10:10


oorsprong


Dit is beter geschikt voor StackOverflow, waar het handig is is al gevraagd en beantwoord. - Tom Brossman
@Tom: Nee, dat SE-bericht geeft geen antwoord op wat een service is. En over het algemeen zijn de antwoorden hier gedetailleerder. - Mads Skjern
@TomBrossman, Het bericht dat je hebt gekoppeld spreekt er helemaal niet over Diensten. - Pacerier
StackOverflow gaat over coderen. deamons zijn een unix-ding, er is geen betere plek om te vragen dan hier - Mr.Robot


antwoorden:


daemons - Daemon wel niet staan ​​voor Schijf en uitvoering Monitor (http://www.takeourword.com/TOW146/page4.html). Het zijn de processen die op de achtergrond draaien en niet interactief zijn. Ze hebben geen controlerende terminal.

Ze voeren bepaalde acties uit op vooraf gedefinieerde tijden of in reactie op bepaalde gebeurtenissen. In * NIX eindigen de namen van daemons d.

Diensten - In Windows worden daemons aangeroepen Diensten.

Als je je afvraagt ​​waarom * NIX een opdracht heeft met de naam service, het wordt gewoon gebruikt om init scripts uit te voeren (steno voor initialisatie scriptrunlevel).

Werkwijze - Proces is een lopend programma. Op een bepaald moment kan het ook zijn lopend, slapenof zombie (voltooid proces, maar wachtend op het bovenliggende proces om de geretourneerde waarde op te halen).

Bronnen en verdere informatie


109
2017-09-23 10:23



Processen hebben nog een paar staten op Linux, hier is een uitstekend diagram: linux-tutorial.info/modules.php?name=MContent&pageid=84 - Dietrich Epp
Dit stuk officiële Ubuntu-documentatie praat over "services" en ik denk dat ze het niet over Windows hebben! Moet ik het dus net als daemon lezen? help.ubuntu.com/community/UbuntuBootupHowto - Mads Skjern
In feite vraagt ​​OP naar services binnen Ubuntu, terwijl dit antwoord vertelt over services op Windows. Dus het antwoord van Anon is duidelijk de juiste - Mads Skjern
volgens serverfault.com/questions/129055/... daemons en services zijn niet hetzelfde - Mr.Robot


  1. EEN demon is een achtergrond, niet-interactief programma. Het is losgemaakt van het toetsenbord en de weergave van een interactieve gebruiker. Het woord daemon voor het aanduiden van een achtergrondprogramma komt van de Unix-cultuur; het is niet universeel.

  2. EEN service is een programma die reageert op verzoeken van andere programma's over een inter-proces communicatiemechanisme (meestal via een netwerk). Een service is wat een server biedt. De NFS-poortkartingservice wordt bijvoorbeeld geleverd als een afzonderlijke portmap-service, die wordt geïmplementeerd als de portmapd demon.

    Een service hoeft geen daemon te zijn, maar is dat meestal wel. In een gebruikerstoepassing met een GUI kan een service zijn ingebouwd: bijvoorbeeld een toepassing voor het delen van bestanden. Een ander voorbeeld is de X Window-service, die allesbehalve op de achtergrond is: deze neemt uw scherm, toetsenbord en aanwijsapparaat over. Het is een service omdat deze reageert op verzoeken van applicaties (om vensters te maken en te manipuleren, et cetera), die zelfs elders in het netwerk kunnen zijn. Maar de X-service reageert ook op elke toetsaanslag en muisbeweging.

  3. Een proces bestaat uit een of meer threads of execution samen met hun gedeelde verzameling bronnen, waarvan de belangrijkste de adresruimte en open bestandsbeschrijvingen zijn. Een proces creëert een omgeving voor deze uitvoeringsdraden, die eruitzien alsof ze een hele machine helemaal voor zichzelf hebben: het is een virtuele machine.

    Binnen een proces zijn de bronnen van andere processen en van de kernel onzichtbaar en niet direct toegankelijk (tenminste niet met een thread die user-space code uitvoert). Er is bijvoorbeeld geen manier om te verwijzen naar de open bestanden van een ander proces of naar hun geheugenruimte; het is alsof die dingen niet eens bestaan.

    Het proces en de relatie tot de kernel en andere processen vormen misschien de belangrijkste abstractie in Unix-achtige besturingssystemen. De bronnen van het systeem worden opgedeeld in processen en bijna alles wordt begrepen als gebeurt binnen het ene proces of een ander proces.


37
2017-09-23 16:06



Kon u niet het geheugen van de andere processen verkrijgen door direct naar het RAM van het systeem te vragen? - Pacerier
Een proces kan in het algemeen niet rechtstreeks naar het RAM van het systeem vragen. Moderne besturingssystemen maken gebruik van virtuele adresruimten (en.wikipedia.org/wiki/Virtual_address_space), wat betekent dat elk proces alleen kan werken met een nep geheugenoverzicht waarin het besturingssysteem precies bepaalt wat toegankelijk is. - akroy
"Een proces creëert een omgeving voor deze uitvoeringsdraden, die eruitzien alsof ze een hele machine helemaal voor zichzelf hebben: het is een virtuele machine." Zeer mooie manier om het te zeggen, dacht er nooit zo duidelijk over na. Maar natuurlijk lekt de abstractie. Zoals, een proces dat de tijd kan meten (wat het zelfs via de processor kan doen) kan opmerken dat het niet alleen op de machine staat. En natuurlijk biedt het besturingssysteem mechanismen om andere processen op te sommen. - masterxilo