O que o init no Ubuntu faz?

13

Eu já sei que inité o programa mágico necessário para inicializar o computador e gerenciar os níveis de execução, mas qual é o seu real objetivo?

Por que precisamos mesmo initem primeiro lugar? Por que o carregador de inicialização não pode dizer ao Upstart quais programas executar e não executar?

Esta pergunta em resposta (tardia) à minha pergunta O que aconteceria se initfosse excluída? questão.

Kaz Wolfe
fonte
inité a mãe de todos os processos.
Ctrl-alt-delor
É mais fácil escrever a funcionalidade initcomo processo do usuário do que gravá-la no kernel. Se fosse escrito no kernel, alguém adicionaria um processo starterque seria executado no espaço do usuário, mais flexível. Duplicando assim a funcionalidade. Portanto, é melhor manter a parte do kernel o mais simples possível.
Ctrl-alt-delor 25/08/14
man init > "What does init on Ubuntu do"e leia-o na pasta pessoal
αғsнιη

Respostas:

6

Veja o manual para initsistemas Unix .

Esta é uma postagem da entrada da Wikipedia eminit :

Nos sistemas operacionais baseados em Unix, init (abreviação de inicialização) é o primeiro processo iniciado durante a inicialização do sistema de computador. Init é um processo daemon que continua em execução até que o sistema seja desligado. É o ancestral direto ou indireto de todos os outros processos e adota automaticamente todos os processos órfãos. O Init é iniciado pelo kernel usando um nome de arquivo codificado e, se o kernel não puder iniciá-lo, ocorrerá um pânico no kernel. O Init é normalmente atribuído ao identificador de processo 1.

O design do init divergiu nos sistemas Unix, como o System III e o System V, da funcionalidade fornecida pelo init no Research Unix e seus derivados BSD. O uso na maioria das distribuições Linux é um pouco compatível com o System V, mas algumas distribuições, como o Slackware, usam um estilo BSD e outras, como o Gentoo, têm sua própria versão personalizada.

Várias implementações init de substituição foram escritas com a tentativa de abordar as limitações de design nas versões padrão. Eles incluem launchd, Service Service Facility, systemd e Upstart, sendo este último usado pelo Ubuntu e algumas outras distribuições Linux.

Espero que isso ajude a explicar isso para você; é muita leitura.

Mark Kirby
fonte
3

upstarte systemdsão initsistemas. Por convenção (e talvez outras restrições), o programa ainda é chamado init, independentemente de estar systemdou não upstartem jogo. Não deixe o nome do processo enganar você. O PID1 não é mais SysV init. Não existe há algum tempo no Ubuntu.

muru
fonte