Programando o Windows Vista

Propaganda
ESTUDO DE CASO – WINDOWS VISTA
História
• Os sistemas operacionais da Microsoft para
PCs desktop e portáteis e para servidores
podem ser divididos em 3 famílias:
• MS-DOS
• Windows baseado em MS-DOS
• Windows baseado em NT
História
História
• Sistema Operacional mais extenso já visto
Programando o Windows Vista
A figura a seguir mostra as camadas do sistema
operacional Windows. As camadas são formadas
por bibliotecas de codigo (DLLs), com as quais os
programas se conectam dinamicamente para
acessar os recursos do sistema operacional. As
aplicações se comunicam com serviços no modo
usuario por meio de chamadas de procedimento
remoto (remote-procedure calls – RPCs).
Programando o Windows Vista
Programando o Windows Vista
O núcleo do sistema operacional NT é o
programa de modo núcleo NTOS (ntoskrnl.exe)
que provê a interface de chamadas de sistema
sobre a qual todo o SO é montado. Somente
escrevem nessa camada programadores da
Microsoft. Todas as interfaces de modo usuário
são implementadas utilizando subsistemas que
funcionam no topo das camadas NTOS.
Programando o Windows Vista
A interface de programação nativa de aplicações do NT
Como em todos os outros sistemas
operacionais, o Windows Vista pode executar
um conjunto de chamadas de sistema, que são
implementadas na camada de execução NTOS
do modo núcleo. Elas são usadas internamente
por programas de baixo nível que acompanham
o pacote do sistema operacional, bem como
drivers de dispositivos do modo núcleo.
Programando o Windows Vista
A interface de programação nativa de aplicações do NT
Na API nativa do NT há chamadas disponíveis para
criar novos objetos no modo núcleo ou acessar os
existentes. Cada chamada, criando ou abrindo um
objeto, retorna um resultado conhecido como um
manipulador. É possível duplicar um manipulador
em uma tabela de descritores de outros processos
de uma forma protegida, permitindo aos processos
compartilhar o acesso a objetos. Todo objeto tem
um descritor de segurança associado a ele,
detalhando quem pode ou não executar quais tipos
de operações no objeto baseado no acesso
solicitado.
Programando o Windows Vista
A interface de programação nativa de aplicações do NT
Nem todas as estruturas de dados criadas pelo
sistema são objetos e nem todos os objetos são do
modo núcleo.
Os objetos do modo núcleo não são, logicamente,
específicos para o Windows. Os sistemas UNIX
também dão suporte a uma variedade de objetos
do modo núcleo, como arquivos, soquetes de rede,
pipes, dispositivos, processos e facilidades de
comunicação entre processos, como memória
compartilhada, portas de mensagem, semáforos e
dispositivos de E/S.
Programando o Windows Vista
A interface de programação nativa de aplicações do NT
Não são apenas as aplicações que usam objetos
gerenciados pelo gerenciador de objetos. O
próprio sistema operacional também pode criar
e usar objetos, e o faz de forma intensa.
Programando o Windows Vista
A interface de programação de aplicações do Win32
As chamadas de funções do Win32 são
denominadas API do Win32. Essas interfaces são
divulgadas, amplamente documentadas e
implementadas e, embora as APIs nativas do NT
não
sejam
publicadas,
muitas
das
funcionalidades que elas apresentam são
acessíveis pela API do Win32.
Programando o Windows Vista
A interface de programação de aplicações do Win32
Como as interfaces do Win32 existentes sofrem
poucas alterações a cada lançamento do
Windows, na teoria os programas binários que
funcionam de maneira correta nas versões
anteriores continuarão funcionando na nova
versão. Na prática, são freqüentes os problemas
com as novas versões.
Programando o Windows Vista
A interface de programação de aplicações do Win32
Paginação por demanda - O próprio sistema de
gerenciamento de memória executa as entradas
e saídas conforme a necessidade, após os
arquivos serem mapeados na memória pelos
threads.
Programando o Windows Vista
A interface de programação de aplicações do Win32
Áreas importantes para programas e interface:
1. E/S de arquivos
2. Gerenciamento de dados nos arquivos
3. Segurança
4. Operações de GUI (todas as chamadas para
gerenciamento da interface gráfica do sistema)
Programando o Windows Vista
O registro do Windows
O Windows anexa um tipo especial de sistema
de arquivos no espaço de nomes do NT. Esse
sistema de arquivos é chamado de registro e é
organizado em volumes separados, chamados
colméias
Programando o Windows Vista
O registro do Windows
Um problema é que a maior parte dos usuários,
aplicações e todos os drivers funcionam com todos os
privilégios e de maneira freqüente modificam parâmetros
do sistema diretamente no registro, algumas vezes
interferindo uns com os outros e desestabilizando o
sistema.
O registro (regedit) é um cruzamento estranho entre um
sistema de arquivos e uma base de dados, e ainda assim
PE diferente de ambos. Ele permite aos usuários editá-lo.
Mas a perda do registro implica a reinstalação de todos
os softwares no sistema.
Estrutura do Sistema Operacional
A camada central é o próprio núcleo do Windows
NT que é carregado do ntoskrnl.exe quando o
Windows inicializa. O núcleo do NT tem duas
camadas, o executivo contendo a maioria dos
serviços, e uma camada menor, chamada
também de núcleo que implementa os
fundamentos das abstrações de sincronização e
agendamento de threads e também tratadores
de armadilha, interrupções e outros aspectos de
como a cpu é gerenciada
Camadas do modo núcleo
A Camada de Abstração de Hardware
• Um dos objetivos do Windows Vista, como
nos lançamentos do Windows baseado no NT
anteriores a ele, foi tornar o sistema
operacional portátil a outras plataformas. De
maneira ideal, para trazer o sistema
operacional a um novo sistema de
computador, teríamos apenas de recompilar o
sistema operacional usando um compilador
para a nova maquina e colocá-lo em
funcionamento uma primeira vez.
A Camada de Abstração do Hardware
Infelizmente, não é assim tão simples.
Enquanto vários dos componentes em
algumas camadas do sistema operacional
podem ser bastante portáteis, outras camadas
devem lidar com registradores de dispositivos,
interrupções, DMA e outras características de
hardware que mudam de maneira significativa
de maquina para maquina
A Camada de Abstração de Hardware
Os detalhes de hardware sobre como a
memória e organizada em grandes servidores,
ou quais sincronizações primitivas de
hardware estão disponíveis, também podem
ter grande impacto nos níveis mais altos do
sistema, por exemplo o gerenciador de
memória virtual do NT e a camada do núcleo
sabem de detalhes de hardware relacionados
a cache e localidade de memória.
A Camada de Abstração de Hardware
Além dessas questões maiores de
portabilidade, também há um vasto número
de problemas menores até entre placas-mãe
diferentes de vários fabricantes. Diferenças
nas versões de CPUs também afetarão esta
versão do Windows.
HAL - Camada de abstração de
Hardware
A Microsoft fez uma tentativa séria de esconder
esses tipos de dependência de máquina usando
um software de código aberto que permite que
outros softwares acessem funções e obtenham
informações do sistema operacional e
de hardwares com muito menos dificuldade se
tivessem que escrever um software diretamente
utilizando funções do hardware, o HAL serve para
abstrair essas informações facilmente utilizando
a Camada de abstração de hardware presente em
todos os sistemas operacionais.
Download