estudo de caso windows

95
Instituto Federal de Educação, Ciência e Tecnologia da Paraíba – Campus Cajazeiras 1 Curso: Tecnologia em Análise e Desenvolvimento de Sistemas; Disciplina: Sistemas Operacionais; Professor: André Atanásio; Fátima Ferreira Sérgio Diniz

Upload: fatinha-de-sousa

Post on 29-Jul-2015

155 views

Category:

Education


17 download

TRANSCRIPT

Page 1: Estudo de Caso Windows

Instituto Federal de Educação, Ciência e Tecnologia da Paraíba –Campus Cajazeiras

1

Curso: Tecnologia em Análise e Desenvolvimento de Sistemas;Disciplina: Sistemas Operacionais;Professor: André Atanásio;

Fátima FerreiraSérgio Diniz

Page 2: Estudo de Caso Windows

Roteiro

Histórico;

Principais Versões;

Estrutura do Sistema;

Inicialização e Registro;

Processos e Threads;

Gerenciamento de memória;

Caching;

Entrada/Saída;

Sistema de Arquivos NT;

Segurança;

2

Page 3: Estudo de Caso Windows

3

Page 4: Estudo de Caso Windows

Um pouco de história...

Microsoft Windows é uma popular família de sistemas operacionais criadospela Microsoft, empresa fundada por Bill Gates e Paul Allen. O Windows éum produto comercial.

É o sistema operacional mais usado do mundo, embora uma grandequantidade de cópias sejam ilegais.

A atual versão estável do Windows para desktop é o Windows 7, lançado em2009. Para servidores o Windows Server 2008 R2 é a versão mais recente eestável.

O Windows não foi inovador, foi uma cópia de um sistema desenvolvidopela Apple, que, por sua vez, foi uma melhoria do sistema da Xerox.

4

Page 5: Estudo de Caso Windows

Um pouco de história

Os sistemas operacionais da Microsoft paradesktops, portáteis e servidores são divididosem três famílias:

MS-DOS;

Windows baseado no MS-DOS;

Windows baseado em NT;

5

Page 6: Estudo de Caso Windows

Década de 1990 - Windows MS-DOS

Era um sistema operacional de 16 bits;

Monousuário;

Memória limitada a 1 Mb -> 640 era dedicado a processosusuários;

FAT 16;

6

Page 7: Estudo de Caso Windows

Década de 1990: Windows baseado no MS-DOS

Windows inspirado na interface gráfica com o usuário.

Principais versões: Windows 3.0, Windows 95, Windows 98,Windows Me.

Estes sistemas incluíam interfaces de programação de 32 bits.

Porém, ele ainda não era totalmente seguro e o isolamentoentre as aplicações e o sistema operacional era precário.

7

Page 8: Estudo de Caso Windows

Década de 2000: Windows baseado em NT

Windows desenvolvido para funcionar em diferentesprocessadores e enfatizava a segurança e a confiança, bemcomo a compatibilidade com as versões baseadas no MS-DOS.

Problemas: O NT demandava mais memória, incompatibilidadeentre os drivers de dispositivos e as aplicações.

8

Page 9: Estudo de Caso Windows

9

Page 10: Estudo de Caso Windows

Windows 1.0

Lançado em 1985;

SO 16 bits exigia MS-DOS 2.0 numa maquina com 256 KB de memória RAMe HD.

O problema é que o próprio Windows 1.0 ocupava toda a memória dosistema;

10

Page 11: Estudo de Caso Windows

Windows 95

Lançado em 1994;

Vinha com o MS-DOS embutido;

FAT16 e FAT32 e suporte a USB e conceitos como a dupla Área de Trabalho +Menu Iniciar + Internet Explorer 1.0.

Memória virtual e multiprogramação;

11

Page 12: Estudo de Caso Windows

Windows 98

Usava sistemas de arquivo FAT32 nativamente, permitindo usar HDs comcapacidade superior a 2GB.

Como pontos negativos, o sistema era mais lento e instável que o Windows95.

Integração entre Internet e desktop.

12

Page 13: Estudo de Caso Windows

Windows ME

Muito semelhante ao Windows 98, só que com muito mais problemas;

Melhor compartilhamento de imagens, musicas e vídeos, aplicaçõesvoltadas para internet;

Restore System;

13

Page 14: Estudo de Caso Windows

Windows 2000

Possibilidade de cluster: duas ou mais maquinas como se fosse uma única;

Finalmente, livre do MS-DOS;

14

Page 15: Estudo de Caso Windows

Windows XP

Lançado em 2001, representou o fim da família 9x do sistema operacional;

32 e 64 bits;

A disponibilidade da tecnologia NT para usuários domésticos;

Separação entre sistemas para estações de trabalho e sistemas paraservidores.

15

Page 16: Estudo de Caso Windows

Windows Vista

Exige muitos recursos da maquina;

32 e 64 bits;

Instalação de drivers em modo kernel;

16

Page 17: Estudo de Caso Windows

Windows 7

Sucessor do Windows Vista lançado em 2009.

Instalação do sistema em HD virtual;

Conceito de bibliotecas;

IE 8 e 9;

17

Page 18: Estudo de Caso Windows

Windows 8

Lançado em 2012;

Esse sistema é capaz de se comunicar em todas as plataformas, seja emtablets, smartphone e computadores;

Melhor aproveitamento de tempo, mais intuitivo, perfeita integração comARM e X86.

18

Page 19: Estudo de Caso Windows

19

Page 20: Estudo de Caso Windows

Estrutura do Sistema

20

Page 21: Estudo de Caso Windows

Estrutura do Sistema

A camada de abstração do hardware;

A camada do núcleo;

Chamadas de procedimento diferidas – DPC;

Chamada de procedimento assíncrona - ACP;

Objetos despachantes

A camada executiva;

Os drivers de dispositivos;

21

Page 22: Estudo de Caso Windows

A camada de abstração do hardware - HAL

Camada responsável por oferecer ao resto do sistema operacionalhardwares abstratos que ocultam detalhes específicos;

Essas abstrações da HAL são apresentadas na forma de serviçosindependentes de máquinas;

22

Page 23: Estudo de Caso Windows

Modo Núcleo

Serve de ponte entre aplicativos e o processamento real dedados feito a nível de hardware e sua responsabilidade égerenciar os recursos do sistema (a comunicação entrecomponentes de hardware e software);

Abstrações são maneiras de esconder detalhes deimplementação de um conjunto particular de funcionalidades.

23

Page 24: Estudo de Caso Windows

Modo Núcleo

Chamadas de procedimento Diferidas

São responsáveis por diminuir o tempo gasto na execução de ISRs(rotinas de serviço de interrupção)

Camada de Procedimento Assíncrona

São similares à diferida porém trabalham no contexto de threads(mais específico) não no contexto de CPU (geral).

Objetos Despachantes

Este é qualquer um dos objetos habituais do modo núcleo, issoinclui semáforos, mutexes, evento, temporizadores e outrosobjetos pelos quais os threads podem esperar para sincronizaçãocom outros threads.

24

Page 25: Estudo de Caso Windows

Camada Executiva

Contém uma série de componentes diferentes e todosfuncionam usando as abstrações de controlefornecidas pela camada do núcleo;

Estes componentes são divididos em estruturasinternas e externas;

Também são conhecidos como gerenciadores;

Gerenciador de memória, E/S, Cache, Objetos, processor

25

Page 26: Estudo de Caso Windows

Os drivers de dispositivos

Bibliotecas de ligação dinâmica, carregadas peloexecutivo do NTOS;

Além de serem usados para implementar os driverspara hardware específicos, também são usados paraum mecanismo geral de extensibilidade do modonúcleo.

26

Page 27: Estudo de Caso Windows

Estrutura do Sistema

27

Page 28: Estudo de Caso Windows

Inicialização do Windows Vista

28

Page 29: Estudo de Caso Windows

Inicialização do Windows Vista

Quando um PC é ligado, um único código disponível está naforma não volátil na memória do CMOS, que é inicializada pelofabricante do computador.

Na maior parte ela e inicializada pela BIOS, que sabe secomunicar com o dispositivo padrão do computador.

São carregados primeiro os pequenos programas deinicialização (bootstrap) encontrados no inicio das partições dodisco.

Esses programas de inicialização sabem onde encontrar asinformações suficientes para verificar o estado do sistema.

29

Page 30: Estudo de Caso Windows

Inicialização do Windows Vista

Verifica o estado do sistema: suspenso, hibernado oudesligado;

Hibernado ou Suspenso – Carrega e executa o WindResume.exe;

Desligado – Carrega e executa o WindoLoad.exe;

Lida com problemas comuns que o usuário encontraquando a inicialização falha. Há suporte para ignorar mudanças recentes e realizar a inicialização para ultima

configuração segura do sistema.;

Incluem a inicialização segura, que desliga muito dos drivers opcionais;

Console de recuperação, que dispara uma janela de linha de comando cmd.exe;

30

Page 31: Estudo de Caso Windows

Inicialização do Windows Vista

Gerenciador de Objetos

O componente mais importante no executivo do Windows,ele fornece uma interface consistente e uniforme paragerenciar os recursos de sistema e estruturas de dados;

Essa uniformidade do gerenciador de objetos faz com quetodos os objetos usem o mesmo mecanismo para como sãocriados, destruídos;

31

Page 32: Estudo de Caso Windows

Inicialização do Windows Vista

Gerenciador de Objetos

Quando o sistema reinicializa, todos os objetos sãoperdidos;

Quando um objeto não é mais necessário, ele deve serremovido e sua memoria e endereços devem ser devolvidosao sistema;

32

Page 33: Estudo de Caso Windows

Inicialização do Windows Vista

O Windows usa manipuladores para fazer referência aobjetos do modo núcleo.

Esses manipuladores são organizados em tabelas;

33

Page 34: Estudo de Caso Windows

Registro do Windows

34

Page 35: Estudo de Caso Windows

Sistema de arquivos

O Sistema de arquivos do Windows é chamado de registro éorganizado em volumes separados, chamados de colmeias.

Quando o Windows é inicializado, uma colmeia em particular,chamada SYSTEM é carregada na memória;

Windows mantém uma grande quantidade de informaçãocrucial na colmeia SYSTEM, por exemplo: informações sobrequais drivers utilizar em quais dispositivos, qual softwareexecutar primeiro etc.

35

Page 36: Estudo de Caso Windows

Sistema de arquivos

Antes da introdução de registros, as informações deconfiguração no Windows eram mantidas em centenas dearquivos .ini espalhados pelo disco.

O registro reúne esses arquivos em um armazenamentocentral, que fica disponível no processo de inicialização dosistema.

Os registros, entretanto, tornaram-se desorganizados,conforme o Windows evolui.

36

Page 37: Estudo de Caso Windows

Sistema de arquivos

Para explorar o registro, o Windows tem um programa de GUIchamado de regedit, que permite que se abram e explorem osdiretórios (chaves) e itens de dados.

Quando o sistema é desligado, a maioria das informações doregistro é armazenada em disco nas colmeias.

Backups são feitos automaticamente para impedir a corrupçãona eventualidade de um travamento do sistema.

A perda do registro implica na reinstalação de todos ossoftwares do sistema.

37

Page 38: Estudo de Caso Windows

As colmeias do registro no Windows vista

38

Page 39: Estudo de Caso Windows

Processos e threads no Windows Vista

39

Page 40: Estudo de Caso Windows

Processos

Processos são criados por objetos de seção, cada um dos quaisdescreve um objeto de memória apoiado em um arquivo dedisco;

O Windows agrupa processos em tarefas;

A propriedade mais significativa das tarefas para ogerenciamento de recursos é que, uma vez que um processoesteja em uma tarefa, todos os threads dos processos que esseprocesso cria também estará na tarefa;

Um processo deve estar somente em uma tarefa;

40

Page 41: Estudo de Caso Windows

Processos

41

Page 42: Estudo de Caso Windows

Threads

Os threads forma a base do escalonamento de CPU;

Cada thread tem um identificador, que é obtido do mesmoespaço que os identificadores de processo;

Qualquer thread é capaz de acessar todos os objetos quepertencem a seu processo;

42

Page 43: Estudo de Caso Windows

Threads

Um thread normalmente é executado no modo usuário, masquando ele faz uma chamada de sistema, muda para o modonúcleo e continua a ser executado como o mesmo thread comas mesmas propriedades e limites que tinha no modo usuário.

Cada thread tem duas pilhas – Uma para o modo usuário eoutra para o modo núcleo;

Os valores dos registros do modo usuário são salvos em umaestrutura chamada de dados Context;

43

Page 44: Estudo de Caso Windows

Comunicação entre processos

Os threads podem se comunicar de muitas maneiras, entreelas:

Mailslots - Permitem que o processo emissor difunda uma mensagempara diversos receptores, em vez de apenas um.

Soquetes - Conectam processos de máquinas diferentes;

Chamadas de procedimentos remotas - Permite que umprocesso A faça com que um processo B chame um procedimento noespaço de endereçamento de B a pedido de A e retorne o resultadopara A;

É aperfeiçoado para comunicações entre processos na máquina local enão opera em rede;

44

Page 45: Estudo de Caso Windows

Sincronização de processos

Os processos também podem usar vários tipos de objetos desincronização;

Semáforos - Atuam como contador de threads que acessamo recurso;

Mutexes - Fornece exclusão mútua de threads;

Eventos – Responsáveis por notificar os threads que estãoem estado de espera;

Regiões Criticas – Guardam threads de prioridade alta quenão podem ser interrompidas;

45

Page 46: Estudo de Caso Windows

Escalonamento

O thread atualmente em execução bloqueia em um semáforo,mutex, evento, E/S;

O código do escalonador é executado para que escolha seusucessor e carregue CONTEXT para inicializar sua execução;

Ele sinaliza um objeto (Por exemplo, faz com que alguémevento seja sinalizado);

Depois que ele sinaliza o objeto, o escalonador deve serexecutado para verificar se o resultado de sua ação liberou umthread de prioridade mais alta e que esteja, agora, livre paraexecutar.

46

Page 47: Estudo de Caso Windows

Escalonamento

O quantum do thread em execução expira

O thread executa o código do escalonador paraverificar quem é o próximo a executar;

Uma operação de entrada e saída

Neste caso o escalonador verifica se esse threaddeveria causar preempção no thread em execução.

47

Page 48: Estudo de Caso Windows

Gerenciamento de Memória

48

Page 49: Estudo de Caso Windows

49

Gerenciamento de Memoria Virtual

O Windows Vista tem um sistema de memória virtualextremamente sofisticado. Ele dispõe de diversas funçõesWin32 para usar a memória virtual, implementadas pelogerenciador de memória.

Page 50: Estudo de Caso Windows

50

Memoria Virtual

Máquinas x64 funcionam no modo 64 bits

Podem tem endereços de 32 ou 64 bits.

Os endereços 32 bits são utilizados com os processos emexecução com WOW64 para compatibilidade com 32 bits.

Processos 32 bits podem obter espaços de endereçamento de4GB.

Tanto nas maquinas x86 quanto nas x64, o espaço deendereçamento é paginado sob demanda, com tamanho depagina fixo de 4kb.

Em alguns casos, são usadas paginas de 4mb.

Page 51: Estudo de Caso Windows

51

Os 64 kb do topo e da base não estão mapeados, visando auxiliar a identificação de erros de programas, causando um desvio em vez de gerar uma leitura de lixo ou escrita em um local incorreto

Nos 2GB que se seguem, vem o código e os dados privados do usuário.

Memoria Virtual

Page 52: Estudo de Caso Windows

52

Memoria Virtual

O motivo para o compartilhamento da memoria virtual doprocesso com o núcleo é que, ao fazer uma chamada de sistema, othread desvia o controle para o modo núcleo e o continuaexecutando sem alterar o mapa da memoria. Tudo o que precisaser feito é alternar para a pilha do núcleo do tread.

Como as paginas do processo do modo usuário ainda estãoacessíveis, o código do modo núcleo consegue ler paramentos eacessar buffer sem ter de ir e vir ate os espaços deendereçamento ou ter de temporariamente duplicar o mapa depaginas nos dois espaços.

Com isso se tem menos espaço privado de endereçamento porprocessos e retorno mais rápido de chamadas de sistema.

Page 53: Estudo de Caso Windows

53

Alocação de endereço virtual

As paginas podem estar em 3 estados: Inválida, Reservada ouComprometida.

Invalida: Não está atualmente mapeada para um objeto deseção de memória.

Comprometida: O código ou os dados estão mapeados em umapagina virtual.

Reservada: São inválidos mas com a particularidade de que osendereços virtuais nunca serão alocados pelo gerenciador dememoria para nenhum outro proposito. Ela garante que a pilhaaumente ate seu tamanha máximo sem correr o risco de quealgumas paginas contiguas do espaço de endereçamentovirtual necessário a pilha sejam liberadas para outro fim

Page 54: Estudo de Caso Windows

54

Arquivo de Paginas

O Windows usa uma estratégia Just-In-Time.

As paginas são comprometidas e acompanhadas doarquivo de paginas.

Não recebem espaço nesse arquivo ao menos queprecisem voltar para o disco.

Nenhum espaço de disco é alocado para as paginasque não precisam sair da memória.

Se a memória virtual total e menor que a memóriafísica disponível, não há necessidades de um arquivode paginas.

Page 55: Estudo de Caso Windows

55

Arquivo de Paginas

Com a estratégia de pré alocação, toda a memóriavirtual do sistema utilizada para o armazenamento dearquivos privados fica limitada ao tamanho dos arquivosdas paginas. Com a alocação Just in time ela pode sertão grande quando o tamanho dos arquivos de paginas eda memória física.

Comparando os discos cada vez maiores e mais baratos,com a memória física, as economias de espaço não sãotão significativas quanto a possibilidade de melhorardesempenho.

Page 56: Estudo de Caso Windows

56

Chamadas de sistema para gerenciamento de memoria A API Win32 contem diversas funções que permitem a

um processo gerenciar explicitamente sua memoria virtual.

Page 57: Estudo de Caso Windows

57

Implementação do gerenciamento de memoria

Na plataforma x86, o Windows Vista suporta, por processo, umúnico espaço de endereçamento linear de 4GB com paginas sobdemanda. Os tamanhos das paginas podem ser qualquer potenciade 2 até 64 KB. No Pentium, por exemplo, está fixado em 4 KB.

Além disso o sistema pode usar paginas de 4MB para aumentar aeficiência da TLB(Tabela de Tradução Rápida), melhorando na taxade acesso e na redução do numero de vezes que a tabela depaginas precisa ser varrida.

O gerenciador de memoria se preocupa exclusivamente com osprocessos, pois são os processos que possuem o espaço deendereçamento.

Page 58: Estudo de Caso Windows

58

Tratamento de Falta de Paginas

Faltas de página podem ocorrer quando:

1. Página referenciada não está comprometida

2. Ocorre uma violação de proteção

3. A página compartilhada do tipo copiar se escrita

estava para ser modificada.

4. A pilha precisa crescer.

5. A página referenciada está comprometida, mas

não está mapeada

Page 59: Estudo de Caso Windows

59

Tratamento de Falta de Paginas

1º e 2º caso: São erros de programação, causado quando umprograma tenta utilizar um endereço para o qual não se supõeexistir um mapeamento válido ou tenta executar uma operaçãoinválida.

3º caso: Ocorre quando há uma tentativa de escrita em umapágina de somente leitura.

4º caso: Ocorre quando um thread coloca um valor na pilha ereferencia uma página que ainda não foi alocada.

5º caso: Tem-se uma falta de página normal, ou seja, a páginareferenciada está comprometida mas não está mapeada.

Page 60: Estudo de Caso Windows

60

Tratamento de Falta de Paginas

Quando o gerenciador de memória consegue satisfazeruma falta de página sem a necessidade de lê-la no disco,a falta é classificada como falta aparente. Se fornecessária a leitura no disco então é uma falta estrita.Faltas aparentes são muito mais baratas e causammenos impacto no desempenho da aplicação.

Quando uma página física não está mais mapeada pelatabela de páginas de nenhum processo, ela é colocadaem uma lista livre, modificada ou em espera

Page 61: Estudo de Caso Windows

61

Tratamento de Falta de Paginas

Páginas que nunca mais serão necessárias sãoautomaticamente liberadas.

Páginas que podem causar novas faltas vão para a listade modificadas ou para a lista de espera.

As páginas na lista de modificadas serão escritas no discoe então movidas para a lista de espera.

Page 62: Estudo de Caso Windows

62

O Algoritmo de substituição de paginas

Quando a pouca página de memória física livre, é removido pelogerenciador de memória, páginas dos processos no modo usuárioe modo núcleo, com o objetivo de manter as páginas virtuais maisimportantes na memória e as outras no disco.

As páginas mais importantes são definidas pelo uso acentuado doconjunto de trabalho. O conjunto de trabalho consiste nas páginasmapeadas que estão na memória e que podem ser referenciadassem uma falta de página.

Cada conjunto de trabalho possui dois parâmetros:

- tamanho mínimo e tamanho máximo de páginas na memória

Page 63: Estudo de Caso Windows

63

O Algoritmo de substituição de paginas

Existem três níveis de atividade para o gerenciador do conjunto de trabalho:

Muita memória disponível: Varre as páginas reinicializando os bits deacesso e utilizando seus valores para representar a idade de cadapágina.

A memória está diminuindo: Para de adicionar páginas ao conjuntode trabalho e começa a substituir as páginas mais antigas.

A memória está baixa: Remove as páginas mais antigas, diminuindoos conjuntos de trabalho para que eles fiquem abaixo do valormínimo.

Além da lista de livres, de espera e a lista de modificadas, existe a listade páginas livres que foram zeradas e lista que armazena as páginasque foram identificadas como contendo erros de hardware.

Page 64: Estudo de Caso Windows

64

Gerenciador de memoria física

O sistema frequentemente precisa de paginas que somente contenhamzeros. Quando novas paginas são entregues aos processos, ou quando aultima pagina parcial no final de um arquivo é lida, uma pagina zerada énecessária.

Muito tempo é gasto na escrita de uma pagina com zeros, portanto émelhor utilizar uma thread de baixa prioridade e criar paginas zeradasno segundo plano.

Páginas são referenciadas por uma entrada válida de uma tabela depáginas ou estão por uma das cinco listas citadas.

Entradas possuem tamanho fixo, mas diferentes formatos são utilizadospara tipos de entrada distintos.

Entradas válidas mantêm o estado da página e um contador que informaquantas tabelas de páginas apontam para a página.

Page 65: Estudo de Caso Windows

65

Gerenciador de memoria física

As páginas de um conjunto de trabalho informam quais entradasas referenciam.

A movimentação das páginas pelos conjuntos de trabalho e asdiferentes listas é feita pelo gerenciador de conjuntos de trabalhoe outros threads do sistema.

O gerenciamento de memória é um subsistema que tenta serauto-ajustável ao máximo, mas há também parâmetros que osadministradores podem ajustar para atuar no desempenho dosistema.

Page 66: Estudo de Caso Windows

Caching no Windows Vista

66

Page 67: Estudo de Caso Windows

67

Caching no Windows Vista

A cache do Windows aumenta o desempenho de sistemas de arquivosmantendo na memória as regiões recente e frequentemente utilizadas dosarquivos.

Regiões de arquivos armazenadas em cache são chamadas de visões(views).

O gerenciamento real da memória física na cache é feito pelo gerenciadorde memória.

O gerenciador de cache administra o uso dos endereços virtuais do núcleopara visões, organiza para que o gerenciador de memória mantenha aspáginas da cache na memória física e oferece interfaces para o sistema dearquivos.

Os recursos do gerenciador de cache no Windows são compartilhados comtodos os sistemas de arquivos.

Page 68: Estudo de Caso Windows

68

Caching no Windows Vista

Caching virtual é conveniente porque os sistemas de arquivos nãoprecisam primeiro traduzir as partes do arquivo em números deblocos físicos, a tradução é feita quando o gerenciador de memóriachama o sistema de arquivos para acessar a página no disco.

Page 69: Estudo de Caso Windows

69

Caching no Windows Vista

O Windows Vista introduziu uma formacompletamente nova de caching no sistema,denominada ReadyBoost. Os usuários podemconectar uma memoria flash a USB ou a outras portase conseguir que o sistema operacional utilize essamemoria como uma cache do sistema.

Page 70: Estudo de Caso Windows

70

Entrada e Saída no Windows Vista

Os objetivos do gerenciador de E/S do Windows sãofornecer uma estrutura fundamental extensível e flexívelpara lidar, de modo eficiente, com uma grande variedadede dispositivos e serviços de E/S, suportar a descobertaautomática de periféricos (plug-and-play) e fazer ainstalação de seus drivers e realizar o gerenciamento deenergia dos dispositivos e da CPU.

Page 71: Estudo de Caso Windows

71

Conceitos fundamentais

O gerenciador de E/S é ligado intimamente com o gerenciador de recursosPlug-and-play.

No Windows, todos os sistemas de arquivos, filtros anti-vírus, gerenciadoresde volume, pilhas de protocolo de rede e até serviços do núcleo que nãotem hardware associado são implementados usando-se drivers de E/S.

Uma característica interessante do Windows é o suporte a discosdinâmicos, que podem cobrir várias partições e ate mesmo vários discospodendo ser configurados em tempo real, sem nem mesmo ter dereinicializar.

Da suporte à E/S assíncrona. É possível que um thread comece umaoperação de E/S e então continue sendo executado em paralelo com aoperação de E/S.

Page 72: Estudo de Caso Windows

72

Chamadas API de entrada e saída

As chamadas API de sistema fornecidas pelo gerenciadorde E/S não são muito diferentes das oferecidas pelasmaioria dos sistemas operacionais. As operações básicassão open, read, write, ioctl e close, mas também háoutros recursos prontos para usar as operações deenergia, operações para configuração de parâmetro,descarga de buffers do sistema etc.

Page 73: Estudo de Caso Windows

73

Chamadas API de entrada e saída

Page 74: Estudo de Caso Windows

74

Implementação de E/S

O sistema e E/S do Windows consiste de serviços plug-and-play, o gerenciador de energia, o gerenciador de E/Se o modelo de driver de dispositivo.

Drivers de dispositivos:

Para garantir que os drivers de dispositivos funcionembem com o resto do Windows, a Microsoft definiu oWDM(modelo de drivers do Windows), ao qual, foiprojetado para funcionar com as diferente versões doWindows, permitindo que drivers escritos com cautelafossem compatíveis com os sistemas

Page 75: Estudo de Caso Windows

75

Drivers de dispositivos

Um driver no Windows Vista é capaz de fazer todo otrabalho sozinho. Por outro lado, os drivers podem serempilhados, o que significa que uma requisição podepassar por uma sequencia de drivers, cada um fazendouma parte do trabalho.

Page 76: Estudo de Caso Windows

76

Drivers de dispositivos

Os Drivers de dispositivos do modo núcleo são umproblema grave para a estabilidade e confiabilidade doWindows, pois a maior parte das falhas do núcleo noWindows se deve aos erros dos drivers de dispositivos.

Como os drivers de dispositivos do modo núcleo dividemo mesmo espaço de endereçamento com as camadas donúcleo e executiva, erros nos drivers podem corromperas estruturas de dados do sistema.

Page 77: Estudo de Caso Windows

77

Gerenciador de energia

O Gerenciador de energia controla a utilização de energia emtodo o sistema.

Historicamente, o gerenciamento de consumo de energiaconsistia em desligar a tela do monitor e parar o giro dasunidades de disco.

Recursos de gerencialmente de energia mais novos incluem aredução de consumo de energia dos componentes quando osistema não esta em uso.

Page 78: Estudo de Caso Windows

78

Gerenciador de energia

O Windows da suporte a uma modo especial dedesligamento chamado hibernação, que copia toda amemoria física para o disco e, então, reduz o consumode energia a uma minúsculo fluxo.

Uma alternativa a hibernação é um modo chamadomodo de espera, no qual o gerenciador de energia reduzo sistema inteiro para o menor estado de energiapossível.

Page 79: Estudo de Caso Windows

79

O sistema de arquivos NT do Windows

O Windows Vista dá suporte a vários sistemas de arquivos (FAT-16, FAT-32, NTFS)

FAT-16 é usando no antigo sistema de arquivos do MS-DOS,que usa endereços de disco de 16 bits, o que o limita apartição de disco a 2GB.

O FAT-32 usa endereços de 32 bits e suporta partições dedisco de ate 2TB. Não há segurança no FAT-32, e hoje ele só éusado em mídias portáteis.

O NTFS(sistema de arquivos do NT) usa endereços de discode 64 bits e pode suporta partições de disco de ate 2^64byts.

Page 80: Estudo de Caso Windows

80

Sistema de Arquivo NTFS

Nomes de arquivos individuais no NTFS são limitados a 255caracteres

Caminhos completos são limitados em 32.767 caracteres.

Nomes de arquivos em Unicode(qualquer língua)

O NTFS é case sensitive.

A API do Win32 não da suporte completo para nomes dearquivos e nunca para os nomes de diretórios.

O NTFS é um sistema de arquivos hierárquico, similar aosistema de arquivos do UNIX. O Separador entre nomes decomponentes é “\”, em dez de “/”, que foi herdado do MS-DOS.

Suporte a Links Simbólicos surgiu no Windows Vista

Page 81: Estudo de Caso Windows

81

Sistema de Arquivo NTFS

O NTFS define 13 atributos. Cada cabeçalho identifica o atributo einforma o tamanho e a localização do campo de valor.

Page 82: Estudo de Caso Windows

82

Compressão de arquivos

O NTFS suporta a compressão transparente de arquivos.Um arquivo pode ser criado em modo comprimido, oque significa que o NTFS tenta comprimirautomaticamente os bloco quando eles são escritos edescomprimi-los automaticamente quando são lidos

Page 83: Estudo de Caso Windows

83

Criptografia de arquivos

Os computadores são usados, atualmente, para armazenartodo tipo de dados sensíveis, entre os quais planos deincorporações, informação sobre tributos e cartas de amor,enfim, informações cujos donos não as querem ver reveladas aqualquer um.

O Windows resolve esses problemas disponibilizando umaopção para criptografas arquivos, desse modo, mesmo que ocomputador seja roubado, os arquivos serão ilegíveis.

Os processos de criptografas e decriptar em si não são feitospelo NTFS, mas por um driver chamado EFS(sistema decriptografia de arquivos).

Page 84: Estudo de Caso Windows

84

Segurança no Windows Vista

Orginalmente, o NT foi projetado para cumprir asdeterminações de segurança C2 do Departamento deDefesa dos Estados Unidos. Esse padrão exige que ossistemas operacionais tenha certas propriedades paraserem classificados como seguros o suficiente paracertos tipos de atividades militares.

Page 85: Estudo de Caso Windows

85

Segurança no Windows Vista

Embora o Windows Vista não tenha sidoespecificamente projetado para cumprimento dasdeterminações C2, ele herda varias das propriedades desegurança do NT. Entre elas, estão:

Autenticação segura com medidas contra trapaças

Controles de acesso discricionário

Controle de acesso privilegiado

Page 86: Estudo de Caso Windows

86

Segurança no Windows Vista

Acesso seguro ao sistema significa que o administrador dosistema pode exigir que todos os usuários tenham uma senhapara se conectarem

Os Controles de acessos discricionário permitem ao dono deum arquivo ou de outro objeto dizer quem pode usa-lo e deque modo.

Os controles de acessos privilegiados permitem que oadministrador do sistema ignore os controles de acessosdiscricionários quando necessários

Page 87: Estudo de Caso Windows

87

Conceitos Fundamentais

Todo usuário (e grupo de usuário) do Windows Vista éidentificado por um SID(identificador de segurança).

Os SIDs são números binários com um pequenocabeçalho seguido por um componente longo ealeatório. A intenção é que cada SID seja único em todoo mundo.

Cada processo tem uma ficha de acesso que especificaum SID e outras propriedades. Essa ficha é atribuída nomomento de acesso ao sistema.

Page 88: Estudo de Caso Windows

88

Estrutura de uma ficha de acesso

Cabeçalho: Contem algumas informações administrativas.

Validade: Indica quando a fica deixa de ser valida.

Grupo: Especificam os grupos aos quais o processo pertence.

CACL inicial: é a lista de controle de acesso atribuída aos abjetos criadospelo processo.

SID do usuário: Indica quem possui o processo.

SIDs restritos: Permitir que processos não confiáveis participem detrabalhos.

Privilégios: Dão ao processo poderes especiais, como o direito de desligar amaquina ou de acessar arquivos.

Nível de personificação: É utilizado para comunicação entre clientes eservidores.

Page 89: Estudo de Caso Windows

89

Chamadas API de segurança

A maioria dos mecanismos de controle de acesso doWindows Vista é baseada em descritores de segurança.O padrão usual é que, quando um processo cria umobjeto, ele fornece um descritor de segurança. Essedescritor de segurança torna-se, então, o descritor desegurança associado ao objeto. Se nenhum descritor desegurança for fornecido na chamada de criação doobjeto, será usado a configuração padrão de segurança.

Page 90: Estudo de Caso Windows

90

Chamadas API de segurança

Para criar um descritor de segurança, primeiro deve seralocada sua memoria e então e então executar umasequencia de funções da API do Win32

Page 91: Estudo de Caso Windows

91

UAC(Controle de conta do usuário)

Criado para tratar o problema crônico do Windows emque muitos usuários se conectam como administradores.

Ser administrador o tempo todo é algo perigoso nãosomente porque os erros do usuário podem danificar osistema, mas também porque, se o usuário for enganadoou atacado e executar código que esteja tentandocomprometer o sistema, o código terá acessoadministrativo e pode enterrar-se bem fundo nosistema.

Page 92: Estudo de Caso Windows

92

UAC(Controle de conta do usuário)

Com a UAC, se ocorre uma tentativa de execução de umaoperação que demanda permissões de administrador, osistema cria um desktop especial e assume o controlepara que somente entradas do usuário possam autorizaro acesso.

Alguns ataques conseguem destruir os dados do usuário.Entretanto, o UAC realmente ajuda a impedir certostipos de ataques

Page 93: Estudo de Caso Windows

93

Page 94: Estudo de Caso Windows

94

Page 95: Estudo de Caso Windows

95