Processo de inicialização do sistema [Liunx] Linux

Veremos muitas informações de inicialização quando o Linux iniciar.

O processo de inicialização do sistema Linux não é tão complicado quanto todos pensam.O processo pode ser dividido em 5 etapas:

  • A inicialização do kernel.
  • Execute init.
  • Inicialização do sistema.
  • Estabeleça um terminal.
  • O usuário efetua login no sistema.

Tipo de programa init:

  • SysV: init, antes do CentOS 5, arquivo de configuração: / etc / inittab.
  • Iniciante: init, CentOS 6, Arquivos de configuração: / etc / inittab, /etc/init/*.conf.
  • Systemd: systemd, CentOS 7, arquivos de configuração: / usr / lib / systemd / system, / etc / systemd / system.

Inicialização do kernel

Quando o computador está ligado, o autoteste do BIOS é o primeiro a ser iniciado de acordo com o dispositivo de inicialização (geralmente um disco rígido) definido no BIOS.

Após o sistema operacional assumir o controle do hardware, primeiro leia os arquivos do kernel no diretório / boot.


Execute init

O processo init é o ponto de partida de todos os processos no sistema. Você pode compará-lo com o ancestral de todos os processos no sistema. Sem esse processo, nenhum processo no sistema será iniciado.

O programa init precisa primeiro ler o arquivo de configuração / etc / inittab.

 

Nível de execução

Muitos programas precisam ser iniciados. Eles são chamados de "serviços" no Windows e "daemons" no Linux.

Uma das principais tarefas do processo init é executar esses programas de inicialização.

No entanto, ocasiões diferentes exigem que programas diferentes sejam iniciados, por exemplo, quando usado como servidor, o Apache precisa ser iniciado e não é necessário para uma área de trabalho.

O Linux permite que diferentes programas de inicialização sejam atribuídos a diferentes ocasiões, chamados "runlevel". Em outras palavras, de acordo com o "nível de execução" na inicialização, determine quais programas executar.

O sistema Linux possui 7 níveis de execução (nível de execução):

  • Nível operacional 0: o sistema está parado O nível operacional padrão do sistema não pode ser definido como 0, caso contrário, não pode iniciar normalmente
  • Execute o nível 1: estado de trabalho de usuário único, autoridade root, usada para manutenção do sistema, proibir login remoto
  • Execute o nível 2: estado multiusuário (sem NFS)
  • Execute o nível 3: complete o estado multiusuário (com NFS), entre no modo de linha de comando do console após o login
  • Nível de execução 4: o sistema não é usado e está reservado
  • Execute o nível 5: console X11, entre no modo gráfico da GUI após o login
  • Nível de execução 6: o sistema é encerrado e reiniciado normalmente.O nível de execução padrão não pode ser definido como 6, caso contrário, não pode iniciar normalmente

Inicialização do sistema

Existe uma linha no arquivo de configuração init: si :: sysinit: /etc/rc.d/rc.sysinit Chama e executa /etc/rc.d/rc.sysinit, e rc.sysinit é um script de shell bash , É principalmente para concluir algum trabalho de inicialização do sistema, rc.sysinit é um script importante que deve ser executado primeiro para cada nível de execução.

As principais tarefas que ele executa: ativar a partição de troca, verificar o disco, carregar módulos de hardware e outras tarefas que precisam ser executadas primeiro.

l5 : 5 : aguarde : / etc / rc . d / rc 5

Essa linha significa executar o /etc/rc.d/rc com o parâmetro 5. /Etc/rc.d/rc é um script do Shell que aceita 5 como o parâmetro para executar o /etc/rc.d/rc5.d/ Todos os scripts de inicialização do rc, os scripts de inicialização no diretório /etc/rc.d/rc5.d/, na verdade, são alguns arquivos de conexão, em vez de scripts de inicialização do rc reais, os scripts de inicialização do rc reais são todos Coloque no diretório /etc/rc.d/init.d/.

Esses scripts de inicialização rc têm usos semelhantes e geralmente aceitam parâmetros como iniciar, parar, reiniciar e status.

O script de inicialização rc em /etc/rc.d/rc5.d/ geralmente é um arquivo de conexão começando com K ou S. Para scripts de inicialização começando com S, ele será executado com o parâmetro start.

Se houver um script correspondente e uma conexão começando com K, e ela já estiver em um estado de execução (usando o arquivo em / var / lock / subsys / como um sinal), esses guardas parados serão parados com o parâmetro stop Processo e, em seguida, execute-o novamente.

Isso é feito para garantir que quando o init altere o nível de execução, todos os daemons relacionados serão reiniciados.

Quanto aos daemons que serão executados em cada nível de execução, os usuários podem definir seus próprios através dos "Serviços do Sistema" no chkconfig ou na instalação.


Estabelecer Terminal

Depois que o rc for executado, retorne ao init. No momento, o ambiente básico do sistema foi definido e vários daemons foram iniciados.

O Init abrirá 6 terminais para que os usuários possam efetuar login no sistema. As 6 linhas a seguir no inittab definem 6 terminais:

1 : 2345 : respawn : / sbin / mingetty tty1 2 : 2345 : respawn : / sbin / mingetty tty2 3 : 2345 : respawn : / sbin / mingetty tty3 4 : 2345 : respawn : / sbin / mingetty tty4 5 : 2345 : respawn : / sbin / mingetty tty5 6 : 2345 : respawn : / sbin / mingetty tty6

Como se pode ver acima, nos níveis de execução de 2, 3, 4 e 5. o programa mingetty será executado no modo de ressurgimento.O programa mingetty pode abrir o terminal e definir o modo.

Ao mesmo tempo, ele exibirá uma interface de login de texto, que é a interface de login que geralmente vemos. Nesta interface de login, o usuário será solicitado a inserir o nome do usuário, e o usuário inserido pelo usuário será passado como parâmetro para o programa de login para verificar a identidade do usuário.


Sistema de login do usuário

De um modo geral, existem três maneiras de os usuários efetuarem login:

  • (1) Login na linha de comando
  • (2) login ssh
  • (3) Login na interface gráfica

Para usuários no modo gráfico com nível de execução 5, o logon é realizado através de uma interface gráfica de logon. Após o login bem-sucedido, você pode inserir diretamente os gerenciadores de janelas como o KDE e o Gnome.

E este artigo fala principalmente sobre a situação do login de texto: quando vemos a interface de login do mingetty, podemos inserir o nome do usuário e a senha para efetuar login no sistema.

O programa de verificação de conta para Linux é o login, e o login receberá o nome de usuário de Mingetty como parâmetro de nome de usuário.

Em seguida, o login analisará o nome do usuário: se o nome do usuário não for raiz e o arquivo / etc / nologin existir, o login produzirá o conteúdo do arquivo nologin e depois sairá.

Isso geralmente é usado para impedir que usuários não raiz efetuem login durante a manutenção do sistema. Somente os terminais registrados em / etc / securetty permitem que usuários root efetuem login. Se esse arquivo não existir, o usuário root poderá efetuar login em qualquer terminal.

O arquivo / etc / usertty é usado para impor restrições de acesso adicionais aos usuários.Se esse arquivo não existir, não haverá outras restrições.


Alternando entre o modo gráfico e o modo texto

As predefinições do Linux fornecem seis terminais da janela de comando para o logon.

Por padrão, efetuamos login na primeira janela, que é tty 1. As seis janelas são tty1, tty2… tty6, você pode pressionar Ctrl + Alt + F1 ~ F6 para alternar entre elas.

Se você instalou uma interface gráfica, o padrão é entrar na interface gráfica.Neste momento, você pode pressionar Ctrl + Alt + F1 ~ F6 para inserir uma das interfaces da janela de comando.

Ao entrar na interface da janela de comando e retornar à interface gráfica, basta pressionar Ctrl + Alt + F7 para retornar.

Se você estiver usando uma máquina virtual vmware, a tecla de atalho para alternar na janela de comando é Alt + Space + F1 ~ F6.Se você estiver na interface gráfica, pressione Alt + Shift + Ctrl + F1 ~ F6 para alternar para a janela de comando.


Desligamento do Linux

Usado principalmente no servidor no campo Linux, raramente encontrava operação de desligamento. Afinal, não há fim para a execução de um serviço no servidor, a menos que, em circunstâncias especiais, ele seja encerrado.

O processo de desligamento correto é: sincronização> desligamento> reinicialização> parada

O comando shutdown é: shutdown, você pode gerenciar o shutdown para ver a documentação da ajuda.

Por exemplo, você pode executar o seguinte comando para desligar:

sincronização de dados da memória síncrona para o disco rígido. 

desligamento comando de desligamento, você pode equipar desligamento olhada nos arquivos de ajuda. Por exemplo, você pode executar o seguinte comando para desligar: shutdown - h 10 ' Este servidor será desligado após 10 minutos ' Este comando informa a todos que o computador será desligado após 10 minutos e será exibido na tela atual do usuário conectado. desligamento - H agora imediatamente desligamento desligamento - H 20 : 25 será hoje 20 : 25 desligamento desligamento - H + 10 fora de dez minutos, após o desligamento - r agora o sistema imediatamente reinicialização desligamento    - Reinicialização do sistema R + 10 após 10 minutos , reinicialização, o que equivale ao desligamento - r agora interrompe o sistema, o que equivale ao desligamento - h now e poweroff 

Finalmente, para resumir, se é para reiniciar o sistema ou desligá-lo, primeiro execute o comando sync para gravar os dados na memória no disco.

O comando shutdown é shutdown –h now stop poweroff and init 0 , e o comando para reiniciar o sistema é shutdown –r now reboot init 6 .


Artigo de referência:

Acho que você gosta

Origin www.cnblogs.com/HGNET/p/12723948.html
Recomendado
Clasificación