RUSSINOVICK, M.; SOLOMON, D.A.; LONESCU, A. Windows Internals: Part 1. 6.ed. Washington:
Microsoft Press, 2012. 34p.
Tradução: Eduardo Vieira Barbosa.
MODELO DO SISTEMA OPERACIONAL
Na maioria dos sistemas multiusuários as aplicações são separadas do próprio
sistema operacional – o código do kernel roda na forma privilegiada no processador com
acesso aos dados do sistema e ao hardware; códigos de programas executam no
processador na forma não privilegiada (chamado de modo usuário) com limitado conjunto
de interfaces disponível, restrito acesso aos dados do sistema e não acesso direto ao
hardware. Quando um programa em modo usuário invoca um serviço do sistema, o
processador executa uma instrução especial que adequa a chamada para o modo kernel.
Quando o serviço do sistema é completado, então o contexto do programa volta ao modo
usuário e prossegue normalmente.
O Windows é similar a maioria dos sistemas Unix em que o é um sistema
operacional monolítico no sentido que o código do próprio sistema e drivers
compartilham o mesmo espaço protegido de memória. Isso significa que qualquer
componente ou driver pode potencialmente corromper dados usados por outros
componentes. Entretanto, o Windows faz a implementação de alguns mecanismos de
proteção, tais como PatchGuard e Kernel Mode Code Signing que ajudam a mitigar e
prevenir as questões relativas a esse cenário.
Todos os componentes do sistema operacional têm total proteção das aplicações
maliciosas, porque elas não têm acesso direto ao código e dados da parte com privilégios
do sistema operacional (embora eles possam rapidamente chamar outros serviços do
kernel). Essa proteção é uma das razões que o Windows tem a reputação de ser robusto e
estável como servidor de aplicações e como estação de trabalho (workstation), rápido e
ágil da perspectiva do core dos serviços como gerenciamento de memória virtual,
entrada/saída, rede, arquivo e compartilhamento de impressão.
Os componentes em modo kernel também incorporam os básicos princípios da
orientação a objeto. Por exemplo, em geral eles não conseguem dentro de outras
estruturas de dados acessarem informações mantidas por componentes individuais. Ao
invés, eles usam interfaces para passar um parâmetro para acessar e modificar estrutura
de dados.
Com relação ao amplo uso de objetos para representar recursos do sistema, o
Windows não é um sistema orientado a objeto (OO) no senso restrito. A maioria do
código escrito do sistema é em C por motivo de portabilidade. A linguagem de
programação C não suporta diretamente construções de OO tais como vinculação
dinâmica para tipo de dados, funções polimórficas ou herança de classe. Portanto, as
implementações dos objetos baseados em C no Windows copiam, mas não dependem
delas, características de particular linguagem de natureza OO.
Download

MODELO DO SISTEMA OPERACIONAL