Quais são as diferenças entre processos e serviços regulares?

6

Quais são as diferenças entre processos regulares (como firefox, gimp, skype, etc.) e serviços (httpd, mysqld, etc.)? Obviamente, os serviços são diferentes em sua função, mas estou realmente me perguntando o que está acontecendo sob o capô no nível do sistema operacional? Eles são tratados de maneira diferente?

    
por Olivier Lalonde 02.10.2010 / 00:07

1 resposta

11

Sob o capô, os serviços são processos comuns. O que os distingue é o que eles fazem e como são iniciados (mas não é uma definição rígida e rápida). Os serviços normalmente não têm uma interface de usuário e geralmente são iniciados quando o sistema é inicializado e executado em segundo plano, ouvindo solicitações provenientes de outros programas ou da rede. Tais processos são chamados daemons no mundo unix.

Há uma definição mais geral de serviço que é mais conceitual: um serviço é um recurso que seu computador oferece. Essa definição corresponde aproximadamente ao que é gerenciado pelo comando service . Muitos serviços são fornecidos por daemons, mas nem sempre é o caso. Por exemplo, o gdm service (o gerenciador de login padrão) é fornecido por um processo que não é realmente um daemon (ele possui uma interface com o usuário para você digitar sua senha). Serviços como console-setup , mountall ou networking (para obter exemplos de /etc/init ) não são fornecidos pelos processos em execução contínua, mas são ativados e desativados executando alguns comandos de alteração de estado.

Outro conceito relacionado é o dos servidores . Um servidor é um programa que escuta conexões de outros programas. (As conexões podem vir através da rede ou por vários meios de comunicação locais.) Muitos servidores são daemons, mas um programa de curta duração pode ser um servidor e não será considerado um daemon; um programa com uma interface de usuário também não será considerado um daemon. Por exemplo, o editor Emacs pode executar um servidor que escuta solicitações externas para abrir arquivos (por exemplo, executar emacsclient myfile abre um arquivo em uma instância em execução do Emacs entrando em contato com o processo emascsserver associado); O Emacs pode iniciar no modo daemon, o que significa que o servidor é iniciado, mas não tem interface gráfica (uma janela será aberta quando você abrir um arquivo). Por extensão, um computador servidor é um computador cuja finalidade principal é executar programas de servidor.

    
por Gilles 02.10.2010 / 00:53