Alternativa B
A arquitetura padrão de sistemas operacionais baseados em Linux, como o Oracle Linux, segue uma separação clara entre Espaço de Usuário (onde os aplicativos rodam) e Espaço do Núcleo (Kernel Space, onde o sistema operacional gerencia recursos).
Para entender o fluxo correto, é necessário analisar a responsabilidade de cada camada na comunicação com o hardware de rede:
- Aplicativo: É o programa que deseja enviar ou receber dados. Ele não tem acesso direto ao hardware por segurança e estabilidade.
- Bibliotecas do Sistema (System Libraries): O aplicativo chama funções nessas bibliotecas (como as da linguagem C, ex:
glibc). Essas bibliotecas fornecem uma interface amigável e preparam a requisição. - Linux Kernel: As chamadas nas bibliotecas resultam em system calls, que transferem o controle para o Kernel. O Kernel valida a solicitação e executa a lógica de rede (TCP/IP stack).
- Kernel Modules: Para interagir fisicamente com a placa de rede (NIC), o Kernel utiliza drivers carregados como módulos. Eles traduzem os comandos genéricos do Kernel para instruções específicas do hardware.
Análise das Alternativas
A seguir, detalhamos por que a alternativa correta é a única que reflete essa hierarquia:
- Correta (Alternativa B): Descreve o fluxo clássico de abstração: Aplicativo \rightarrow Bibliotecas \rightarrow Kernel \rightarrow Módulos. Isso garante segurança, pois o usuário não acessa o núcleo diretamente.
- Incorreta (Alternativa A): Sugere que o Kernel usa bibliotecas do sistema. Isso está errado, pois bibliotecas residem no espaço de usuário, enquanto o Kernel opera abaixo delas.
- Incorreta (C): Implica interação direta entre Bibliotecas e Módulos do Kernel, pulando a interface de sistema chamada pelo Kernel.
- Incorreta (D): Inverte a direção, sugerindo que Módulos usam Bibliotecas. Módulos do Kernel não podem chamar bibliotecas de usuário.
- Incorreta (E): Afirma que o Kernel não é envolvido. Em qualquer sistema Unix/Linux moderno, o Kernel é obrigatório para gerenciar memória e acesso a dispositivos.
Conclusão
O caminho de execução de uma aplicação para acessar a rede passa necessariamente pelas Bibliotecas do Sistema, que acionam o Linux Kernel, o qual delega a operação física aos Kernel Modules. Portanto, a sequência descrita na Alternativa B é a correta.