<Anterior | Conteúdo | Próxima>
Uma descrição completa do GRUB pode ser encontrada emitindo o info larva comando ou no site GRUB. O Projeto de Documentação do Linux tem uma inicialização múltipla com GRUB Mini-HOWTO.
4.2.4. Iniciar
O kernel, uma vez carregado, encontra o init in sbin e o executa.
Quando o init iniciar, ele se tornará o pai ou avô de todos os processos que iniciam automaticamente em seu sistema Linux. A primeira coisa o init faz, está lendo seu arquivo de inicialização, / etc / inittab. Isso instrui o init para ler um script de configuração inicial para o ambiente, que define o caminho, inicia a troca, verifica os sistemas de arquivos e assim por diante. Basicamente, esta etapa cuida de tudo que seu sistema precisa ter feito na inicialização do sistema: acertar o relógio, inicializar portas seriais e assim por diante.
Então o init continua a ler o / etc / inittab arquivo, que descreve como o sistema deve ser configurado em cada nível de execução e define o padrão nível de corrida. Um nível de execução é uma configuração de processos. Todos os sistemas semelhantes a UNIX podem ser executados em configurações de processo diferentes, como o modo de usuário único, que é referido como nível de execução 1 ou nível de execução S (ou s). Neste modo, apenas o administrador do sistema pode se conectar ao sistema. É utilizado para realizar tarefas de manutenção sem riscos de danificar o sistema ou os dados do usuário. Naturalmente, nesta configuração não precisamos oferecer serviços ao usuário, portanto, todos estarão desabilitados. Outro nível de execução é o nível de execução de reinicialização, ou nível de execução 6, que desliga todos os serviços em execução de acordo com os procedimentos apropriados e reinicia o sistema.
Use o que para verificar qual é o seu nível de execução atual:
willy @ ubuntu: ~ $ quem -r
nível de execução 2 2006/10/17 23:22
último = S
willy @ ubuntu: ~ $ quem -r
nível de execução 2 2006/10/17 23:22
Mais sobre os níveis de execução na próxima seção, consulte a Seção 4.2.5.
Depois de determinar o nível de execução padrão para o seu sistema, o init inicia todos os processos em segundo plano necessários para o sistema funcionar, procurando no apropriado rc diretório para esse nível de execução. o init executa cada um dos scripts kill (seus nomes de arquivo começam com K) com um parâmetro de parada. Em seguida, ele executa todos os scripts de inicialização (seus nomes de arquivo começam com um S) no diretório de nível de execução apropriado para que todos os serviços e aplicativos sejam iniciados corretamente. Na verdade, você pode executar esses mesmos scripts manualmente depois que o sistema terminar de inicializar com um comando como /etc/init.d/httpd Pare or serviço httpd parar logado como raiz, neste caso, parando o
servidor web.
Caso especial
Observe que na inicialização do sistema, os scripts em rc2.d e rc3.d geralmente são executados. Nesse caso, nenhum serviço é interrompido (pelo menos não permanentemente). Existem apenas serviços que são iniciados.
Nenhum dos scripts que realmente iniciam e param os serviços está localizado em / etc / rc .d. Em vez disso, todos os arquivos em / etc / rc .d são links simbólicos que apontam para os scripts reais localizados em /etc/init.d. Um link simbólico nada mais é do que um arquivo que aponta para outro arquivo, e é usado neste caso porque pode ser criado e excluído sem afetar os scripts reais que matam ou iniciam os serviços. Os links simbólicos para os vários scripts são numerados em uma ordem específica para que comecem nessa ordem. Você pode alterar a ordem na qual os serviços são inicializados ou eliminados, alterando o nome do link simbólico que se refere ao script que realmente controla o serviço. Você pode usar o mesmo número várias vezes se quiser que um determinado serviço seja iniciado ou interrompido imediatamente antes ou depois de outro serviço, como no exemplo abaixo, listando o conteúdo de
/etc/rc5.d, Onde cron e xfs são ambos iniciados a partir de um linkname começando com "S90". Nesse caso, os scripts são iniciados em ordem alfabética.
[jean @ blub /etc/rc5.d] ls K15httpd @ K45named @ | S08ipchains @ | S25netfs @ | S85gpm @ |
K16rarpd @ K46radvd @ | S08iptables @ | S26apmd @ | S90crond @ |
K20nfs @ K61ldap @ | S09isdn @ | S28autofs @ | S90xfs @ |
K20rstatd @ K65identd @ | S10network @ | S30nscd @ | S95anacron @ |
K20rusersd @ K74ntpd @ | S12syslog @ | S55sshd @ | S95atd @ |
K20rwalld @ K74ypserv @ | S13portmap @ | S56rawdevices @ | S97rhnsd @ |
K20rwhod @ K74ypxfrd @ | S14nfslock @ | S56xinetd @ | S99local @ |
K25squid @ K89bcm5820 @ | S17keytable @ | S60lpd @ | |
K34yppasswdd @ S05kudzu @ | S20random @ | S80sendmail @ |
Depois de o init progrediu através dos níveis de execução para chegar ao nível de execução padrão, o / etc / inittab script bifurca um Getty processo para cada console virtual (prompt de login em modo de texto). Getty abre linhas tty, define seus modos, imprime o prompt de login, obtém o nome do usuário e, a seguir, inicia um processo de login para esse usuário. Isso permite que os usuários se autentiquem no sistema e o utilizem. Por padrão, a maioria dos sistemas oferece 6 consoles virtuais, mas como você pode ver no inittab arquivo, isso é configurável.
/ etc / inittab também pode dizer o init como deve lidar com um usuário pressionando Ctrl+outro+Apagar no console. Como o sistema deve ser desligado e reiniciado corretamente, em vez de desligar e ligar a energia imediatamente, o init é instruído a executar o comando / sbin / shutdown -t3 -r agora, por exemplo, quando um usuário pressiona essas teclas. Além disso,
/ etc / inittab afirma o que o init deve fazer em caso de falhas de energia, se o seu sistema tiver uma unidade UPS conectada a ele.
Na maioria dos sistemas baseados em RPM, a tela gráfica de login é iniciada no nível de execução 5, onde / etc / inittab executa um script chamado / etc / X11 / prefdm. O prefdm script executa o gerenciador de exibição X preferido, com base no conteúdo do / etc / sysconfig / desktop diretório. Isso é tipicamente gdm se você executa o GNOME ou kdm se você executar o KDE, mas eles podem ser misturados, e há também o xdm que vem com uma instalação X padrão.
Mas também existem outras possibilidades. No Debian, por exemplo, há um initscript para cada um dos gerenciadores de exibição, e o conteúdo do / etc / X11 / default-display-manager é usado para determinar qual iniciar. Mais sobre a interface gráfica pode ser lido na Seção 7.3. Em última análise, a documentação do sistema explicará os detalhes sobre os aspectos de nível superior do o init.
O / etc / default e / ou / etc / sysconfig Os diretórios contêm entradas para uma variedade de funções e serviços, todos eles lidos no momento da inicialização. A localização do diretório que contém os padrões do sistema pode ser um pouco diferente dependendo da distribuição do Linux.
Além do ambiente gráfico do usuário, muitos outros serviços também podem ser iniciados. Mas se tudo correr bem, você deve olhar o prompt de login ou a tela de login quando o processo de inicialização terminar.