Camadas do sistema operacional UNIX
O sistema operacional UNIX está estruturado em uma arquitetura em camadas, com cada camada prestando serviços para as camadas acima dele. Aqui está um colapso das principais camadas:
1. Hardware: A base do sistema, consistindo em componentes físicos como CPU, memória, dispositivos de armazenamento e interfaces de rede.
2. Kernel: O núcleo do sistema operacional, responsável por gerenciar o hardware e fornecer serviços essenciais como gerenciamento de memória, agendamento de processos, gerenciamento de sistemas de arquivos e drivers de dispositivo.
3. Chamadas do sistema: Uma interface entre os programas do usuário e o kernel. São funções de baixo nível que permitem que os programas solicitem serviços de kernel.
4. Bibliotecas do sistema: Coleções de funções que fornecem abstrações de nível superior sobre chamadas do sistema. Essas bibliotecas facilitam o desenvolvimento de aplicativos para os programadores.
5. Shell: Um intérprete de linha de comando que permite aos usuários interagir com o sistema. Ele recebe comandos do usuário, os interpreta e os executa chamando os programas ou bibliotecas do sistema apropriados.
6. Programas de usuário: Aplicativos e utilitários que são executados no topo do sistema operacional. Eles interagem com o kernel através de chamadas ou bibliotecas do sistema.
interação entre shell e kernel
Vamos entender a interação usando o comando `ls` como exemplo:
1.
entrada do usuário: O usuário digita `ls` no shell.
2.
Interpretação da concha: O shell reconhece `ls` como um comando interno ou um programa definido pelo usuário.
3. Execução do programa
: Se `ls` for um comando embutido, o shell o executará diretamente. Se for um programa definido pelo usuário, o shell cria um novo processo para executá-lo.
4.
chamada do sistema: O programa (o Shell ou o `LS`) precisa acessar arquivos no disco. Ele usa uma chamada de sistema como `open ()`, `read ()` ou `stat ()` para solicitar este serviço do kernel.
5.
Ação do kernel: O kernel lida com a solicitação de chamada do sistema executando as operações necessárias no sistema de arquivos (por exemplo, lendo metadados do arquivo ou recuperando o conteúdo do arquivo).
6.
resultado retornado: O kernel retorna as informações solicitadas ao programa.
7.
Exibição de dados: O programa (neste caso, `ls`) formato e exibe a saída para o usuário.
Portanto, o shell atua como um intermediário entre o usuário e o kernel, fornecendo uma interface amigável para executar programas e acessar recursos do sistema. Resumo
A arquitetura em camadas do UNIX permite flexibilidade, manutenção e eficiência. O shell atua como intérprete de comando, interagindo com o kernel através de chamadas do sistema para executar programas e gerenciar recursos. Essa interação permite que os usuários gerenciem seus sistemas e executem aplicativos sem problemas.