qual é a diferença técnica entre daemon, serviço e processo?


121

Quero saber quais são as diferenças no comportamento de um daemon, processo e serviço em execução no Ubuntu.


3
Esse é um ajuste melhor para o StackOverflow, onde já foi convenientemente solicitado e respondido .
Tom Brossman

5
@ Tom: Não, essa postagem do SE não responde o que é um serviço. E, em geral, as respostas aqui são mais elaboradas.
precisa

3
@ TomBrossman, a postagem que você vinculou não fala de serviços .
Pacerier

4
StackOverflow é sobre codificação. deamons são uma coisa unix, não há melhor lugar para perguntar do que aqui
Mr.Robot

1
Hã? como essa questão poderia ser encerrada?
Jacob Vlijm 15/01

Respostas:


123

Daemons - Daemon não representa Disk and Execution Monitor ( http://www.takeourword.com/TOW146/page4.html ). Eles são os processos executados em segundo plano e não são interativos. Eles não têm terminal de controle.

Eles executam certas ações em horários predefinidos ou em resposta a determinados eventos. No * NIX, os nomes dos daemons terminam em d .

Serviços - No Windows, os daemons são chamados de serviços .

Se você está se perguntando por que o * NIX possui um comando chamado service , é usado apenas para executar scripts init (abreviação de inicialização scriptrunlevel ).

Processo - Processo é um programa em execução. Em um determinado momento, ele pode estar em execução , em suspensão ou zumbi (processo concluído, mas aguardando que o processo pai pegue o valor de retorno).

Fontes e informações adicionais :


2
Processos têm mais alguns estados no Linux, aqui está um excelente diagrama: linux-tutorial.info/modules.php?name=MContent&pageid=84
Dietrich Epp

Esta documentação oficial do Ubuntu fala sobre "serviços" e acho que eles não estão falando sobre o Windows! Então, devo apenas ler como daemon? help.ubuntu.com/community/UbuntuBootupHowto
Mads Skjern

1
De fato, o OP pergunta sobre serviços no Ubuntu, enquanto esta resposta fala sobre serviços no Windows. Então, obviamente, a resposta de Anon é a correta
Mads Skjern

monitores segundo a serverfault.com/questions/129055/... daemons e serviços não são os mesmos
Mr.Robot

41
  1. Um daemon é um programa não interativo em segundo plano . Ele é desanexado do teclado e da exibição de qualquer usuário interativo. A palavra daemon para denotar um programa em segundo plano é da cultura Unix; não é universal.

  2. Um serviço é um programa que responde a solicitações de outros programas por meio de algum mecanismo de comunicação entre processos (geralmente em uma rede). Um serviço é o que um servidor fornece. Por exemplo, o serviço de mapeamento de portas NFS é fornecido como um serviço separado de portmap, que é implementado como o portmapddaemon.

    Um serviço não precisa ser um daemon, mas geralmente é. Um aplicativo de usuário com uma GUI pode ter um serviço embutido nele: por exemplo, um aplicativo de compartilhamento de arquivos. Outro exemplo é o serviço X Window, que está em segundo plano: ocupa a tela, o teclado e o dispositivo apontador. É um serviço porque responde a solicitações de aplicativos (para criar e manipular janelas etc.), que podem até estar em outro lugar na rede. Mas o serviço X também responde a todos os movimentos de teclas e movimentos do mouse.

  3. Um processo é um ou mais encadeamentos de execução, juntamente com seu conjunto compartilhado de recursos, dos quais os mais importantes são o espaço de endereço e os descritores de arquivo aberto. Um processo cria um ambiente para esses encadeamentos de execução que parecem ter uma máquina inteira só para eles: é uma máquina virtual.

    Dentro de um processo, os recursos de outros processos e do kernel são invisíveis e não estão diretamente acessíveis (pelo menos não para um encadeamento que está executando o código de espaço do usuário). Por exemplo, não há como se referir aos arquivos abertos de outro processo ou ao espaço de memória; é como se essas coisas nem existissem.

    O processo, e sua relação com o kernel e outros processos, talvez constitua a abstração mais importante em sistemas operacionais semelhantes ao Unix. Os recursos do sistema são compartimentados em processos, e quase tudo é entendido como acontecendo dentro de um processo ou de outro.


Você não conseguiu obter a memória dos outros processos consultando diretamente a RAM do sistema?
Pacerier

1
Um processo geralmente não pode consultar diretamente a RAM do sistema. Os sistemas operacionais modernos usam espaços de endereço virtual ( en.wikipedia.org/wiki/Virtual_address_space ), o que significa que cada processo pode interagir apenas com uma visão falsa da memória, onde o sistema operacional controla exatamente o que é acessível.
akroy

"Um processo cria um ambiente para esses encadeamentos de execução que parecem ter uma máquina inteira só para eles: é uma máquina virtual". Uma maneira muito legal de dizer isso, nunca pensei nisso com tanta clareza. Mas é claro que a abstração está vazando. Assim, um processo que pode medir o tempo (o que pode ser feito através do processador) pode notar que não está sozinho na máquina. E é claro que o sistema operacional fornece mecanismos para enumerar outros processos.
Masterxilo # 13/18
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.