Existe um sistema Linux no qual o script de login não faz parte do shell?

1

Eu faço a seguinte pergunta para conhecimento geral e para entender melhor a arquitetura moderna do Linux. O pano de fundo para essa pergunta é esta sessão .

Eu assumi que, se alguém excluir todos os shells, por exemplo (rbash, bash, dash e sh), ele ainda poderá ter algum CLUI primal / fundamental para usar em algumas tarefas muito simples e interagir com o kernel de maneira mínima. Claro que, em relação ao moderno sistema Linux em geral, eu estava errado, porque o console só vai começar por um script de login no shell, portanto, remover todos os shells também removerá esse script de login. / p>

Mas e se movermos esse script de login para fora do shell e torná-lo parte do kernel; Será que ainda poderíamos usar algum console primal / fundamental?

    
por Arcticooling 15.11.2017 / 04:26

1 resposta

3

Fundamentalmente abaixo de um shell é um TTY. Embora não invente o que você poderia chamar de CLUI. A interface do terminal (entrada e saída de texto) é implementada no TTY enquanto o processamento de comandos é tratado pelo shell.

No DOS, isso é mais como um processador de comandos em lote, que contém arquivos .bat (ch). Enquanto no Linux um shell é uma mini linguagem de programação que também inclui estruturas de controle incorporadas.

Esse script de "login" é realmente o programa init que é carregado automaticamente pelo kernel depois de carregar seu VFS (o init pode ser incorporado ao initram ou esperar que sistemas de arquivos difíceis sejam acessíveis) e é executado antes de ttys serem carregados. Na verdade, o programa init deve então configurar os TTYs e depois carregar os serviços. O sysvinit carrega um shell de intérprete e, em seguida, usa scripts de inicialização, enquanto o systemd usa o INI como arquivos de configuração que ele chama de unidades. Um script de shell não é realmente necessário durante o processo de inicialização ou o processo de login, mas exec é.

O TTY é embutido no kernel, mas não pode interagir com o usuário. Vários comandos como um login interagem com o usuário em um TTY, mas não são tecnicamente processadores de comandos ou shells. Outros exemplos básicos existem como o botão de reset no seu roteador é tecnicamente uma maneira mínima de interagir com o sistema. Mas qualquer programa anexado a um TTY pode receber entrada e saída padrão dos comandos TTY e de processo.

Ignorando o fato de que você realmente precisa de um shell para interagir de forma significativa com o sistema, a maneira mais básica de interagir com o kernel é através de chamadas do sistema e a mais básica é a execução, que é como os argumentos do comando são transmitidos.

    
por 15.11.2017 / 05:36