Alternativa D - Anteriormente ao Linux, havia o sistema operacional UNIX, escrito totalmente utilizando linguagem assembly no início e posteriormente em linguagem C.
Introdução à Questão
Esta questão aborda a história e a arquitetura dos sistemas operacionais, especificamente comparando o Linux com seu antecessor e inspiração, o UNIX. Para responder corretamente, é necessário conhecer o contexto histórico do desenvolvimento desses sistemas nas décadas de 1960 e 1970.
Desenvolvimento e Análise Histórica
O sistema operacional UNIX é um marco fundamental na computação. Sua evolução linguística segue este padrão histórico:
- Origem (Assembly): O UNIX original foi desenvolvido nos Laboratórios Bell por Ken Thompson e Dennis Ritchie. Inicialmente, ele foi escrito inteiramente em Assembly para a máquina PDP-7.
- Reescrita (Linguagem C): Com o surgimento da linguagem C criada por Dennis Ritchie, o UNIX foi reescrito. Isso permitiu que o sistema fosse portátil, ou seja, pudesse rodar em diferentes arquiteturas de hardware sem necessidade de reescrever todo o código.
Isso torna a Alternativa D a única afirmativa correta, pois descreve exatamente esse processo de transição tecnológica que possibilitou a disseminação do UNIX e, consequentemente, influenciou o desenvolvimento do Linux anos depois.
Análise das Alternativas Incorretas
Para reforçar o aprendizado, veja por que as outras opções estão erradas:
- Alternativa A: O Linux é um monokernel (kernel monolítico), assim como a maioria das implementações tradicionais do UNIX. A alternativa sugere que eles não se assemelham por causa de microkernels, o que é impreciso; na verdade, o Minix (inspiração de Torvalds) usava microkernel, mas o Linux seguiu o modelo monolítico clássico.
- Alternativa B: Historicamente incorreta. O primeiro kernel do Linux (versão 0.01) era extremamente simples, rodava apenas em processadores i386 (Intel) e não possuía suporte de rede completo nem muitos drivers de dispositivos.
- Alternativa C: As bibliotecas (como a
glibc) servem justamente como a interface para que as aplicações possam interagir com o kernel através das chamadas de sistema (syscalls). Dizer que elas "não podem interagir" contradiz a função principal do software. - Alternativa E: O gerenciamento de memória virtual e processos é a tarefa central de qualquer kernel moderno, incluindo o Linux. Excluir essas funções da responsabilidade do kernel é factualmente errado.
Conclusão
A alternativa D é a correta, pois reflete fielmente a história da criação do UNIX, que passou de uma implementação em Assembly para uma versão em Linguagem C, garantindo sua portabilidade e legado duradouro na informática.