Por que o Unix tem arquitetura semelhante a um anel, por que não o Windows? [fechadas]

1

O Unix tem uma arquitetura que se parece com anéis concêntricos, o Windows tem uma arquitetura retangular. Por que? Alguma razão específica para esse tipo de diferença?

    
por Rakshitha Katte 31.10.2013 / 06:25

2 respostas

9

A noção de vários domínios de proteção hierárquica, frequentemente chamados de foi introduzido pelo sistema operacional Multics . Enquanto o sistema original da Multics tinha oito anéis distintos, muitos sistemas modernos têm menos. Outra diferença é que, em Multics, as transições de anel ocorrem em software, enquanto muitas arquiteturas de CPU modernas incluem alguma forma de suporte de hardware para proteção de anel. Por exemplo, a arquitetura x86 suporta quatro anéis de proteção:

Nem o Windows NT nem o Unix utilizam completamente o suporte de proteção de anel da arquitetura x86, principalmente para manter a compatibilidade com outras arquiteturas de hardware. Ambas as Windows e Linux usa apenas dois toques, com o anel 0 correspondendo ao modo kernel e o anel 3 ao modo usuário. De um modo geral, é frequentemente o caso do arquitecturas monolíticas de núcleos , que o kernel, juntamente com os drivers de dispositivo, executados em um modo de supervisor privilegiado, enquanto os aplicativos são executados em um modo de usuário não privilegiado.

    
por 31.10.2013 / 06:50
1

Eu suspeito que você esteja pensando em um diagrama de arquitetura que apareceu no livro de Maurice J. Bach O Design do Sistema Operacional UNIX .

Você pode desenhar facilmente um diagrama semelhante para o Windows.

Pessoalmente, acho que o diagrama está errado. Ou seja, de dentro para fora.

Aqui está o porquê: ele coloca as coisas de baixo nível como drivers no interior do sistema, e os aplicativos de alto nível no lado de fora. Na verdade, o núcleo do diagrama é o hardware.

Mas, na verdade, o material de baixo nível deve ser considerado como estando do lado de fora, porque os dispositivos interagem com o mundo exterior.

Mas também há problemas com isso.

Na verdade, é o código "central" que pertence ao centro. É por isso que esses diagramas de blocos também fazem muito sentido. Por exemplo, se observarmos a direção em que as chamadas de função vão, gostaríamos que a parte externa do diagrama estivesse onde estão os topos das cadeias de chamadas de função.

Onde está o topo? Top está na função main de um programa aplicativo. Também está na função start de cada thread ... e o dispatcher de interrupção no kernel também está no topo da rotina. Qualquer um desses pode chamar profundamente o kernel, de direções opostas, falando livremente.

Os diagramas de blocos em camadas fazem mais sentido. Eles mostram os níveis superiores opostos, que são todos "externos" em certo sentido, e fazem chamadas para o sanduíche no meio.

De qualquer forma, o ponto é que todos esses diagramas podem ser usados para Unix ou Windows e muitos outros sistemas.

    
por 31.10.2013 / 08:12

Tags