manipuladores

Propaganda
Estudo de caso: Windows 8
História do Windows até o
Windows 8.1
Versões principais na história do sistema operacional da
Microsoft para PC
MS-DOS
• Sistema criado para IBM
• Características:
• 16-bit
• Único usuário
• Linha de comando
• 8 KB de memória
História do Windows até o
Windows 8.1
Versões principais na história do sistema operacional da
Microsoft para PC
MS-DOS-Based Windows
•
•
•
•
Primeira interface gráfica
MS-DOS ainda existente
Windows 3.0: interface gráfica
Windows 95: SO mais completo:
• Memória Virtual;
• Gerenciamento de processos;
• Multiprogramação;
• Programação 32-bits.
• Problemas de segurança: isolação entre aplicações e
SO
• Windows 98 e ME: algumas correções, porém continua
com problemas de instabilidade
História do Windows até o
Windows 8.1
Versões principais na história do sistema operacional da
Microsoft para PC
NT-based Windows
• NT : New Tecnology e processador Intel 860 (codinome
N10)
• Primeiro sistema não basado sobre o MS-DOS
• Criado pelo projetista David Cutler, da DEC
• Feito para funcionar em diferentes processadores e
versões antigas do Windows baseadas no MS-DOS
• Baseado na tecnologia OS/2, API da IBM – 32 bits
NT-based Windows
• Lançamento do Windows 2000
• Suportava apenas processadores x86
• Características:
• Plug-and-play
• Serviço de diretório de redes
• Melhora de gerenciamento de energia
• Lançamento do Windows XP
• Características:
• Interface gráfica mais agradável
• Versão do XP para servidores: Windows 2003
2000s: Windows baseados no NT
(1)
Sistemas operacionais da DEC desenvolvido por Dave Cutler.
NT-based Windows
•
•
•
•
Comuns em sistemas 32 Bits
Threads como unidade de concorrência
Bibliotecas são unidades de composição
Fork/exec implementadas por uma única operação sem
que se faça uma cópia do processo primeiro
• Suporte para as API OS/2, porém, utilizava a API da
Microsoft Win32
NT-based Windows
•
•
•
•
Demandava muita memória
Poucas aplicações 32 bits disponíveis
Incompatibilidade entre drivers e aplicações
Era forte em servidores
2000s: Windows baseados no NT
(2)
A Win32 API assegura a execução dos programas em quase
todas as versões do Windows.
NT-based Windows
• Lançamento do Windows 2000
• Suportava apenas processadores x86
• Características:
• Plug-and-play
• Serviço de diretório de redes
• Melhora de gerenciamento de energia
• Lançamento do Windows XP
• Características:
• Interface gráfica mais agradável
• Versão do XP para servidores: Windows 2003
NT-based Windows
• Lançamento do Windows Vista (2006)
• Características:
•
•
•
•
•
•
Inovações na interface gráfica
Novas características de segurança
Limpeza de código
Melhoras no desempenho
Escalabilidade
Confiabilidade
• Versão de servidor: Windows 2008
• Número maior de linhas de código para manter
compatibilidade
• Número maior DLL, exe (system32 maior)
• Lançamento do Windows 7: otimizado para várias
arquiteturas
História do Windows até o
Windows 8.1
Versões principais na história do sistema operacional da
Microsoft para PC
Modern Windows
• Crescente sucesso:
• Tablets, smartphones
• Serviços em nuvem
• Serviços da web: vídeos, redes sociais, etc
• Criação do Windows 8
• Integração com vários dispositivos
• Reclamações:
• Menu iniciar
• Interface de tablets em desktops
• Lançamento do Windows 8.1 para sanar essas
reclamações
• Melhor integração com serviços em nuvem
• Aumento no número de programas
Diferenças entre versões
Estrutura do
sistema
Arquivos principais do Windows
8.1
Programação Windows 8.1
• As interfaces de programação que as
aplicações são construídas ficam abaixo das
camadas applet e GUI
• Windows é composto por várias DLLs:
• Dynamic Library Links: bibliotecas que contém
pequenos códigos que permitem os programas
acessarem recursos do SO de forma dinâmica.
• Windows inclui interfaces de programação
que são implementadas como serviços
(processos separados)
Programação Windows 8.1
• Aplicações se comunicam com serviços em
modo usuário atrás de RPCs (Remote
Procedures Calls)
• O núcleo do Windows: NTOS
• Oferece interface para chamadas ao sistema
•
Somente programadores da Microsoft possuem
acesso a essa camada
Programação Windows 8.1
• Todas as interfaces de modo usuário são
implementadas utilizando subsistemas.
• Executam em camadas acima do NTOS
• Suportava:
• OS/2 -> acabou no Windows XP
• POSIX -> Removida no Windows 8.1
• Win32 -> Todas as aplicações são escritas no
topo desse subsistema (WinFX, por exemplo)
Programação no Windows (1)
Camadas de programação nos modernos sistemas Windows
Programação Windows 8.1
• Devido a necessidade de um único SO executar em
desktops, celulares, tablets, etc, foi caindo em
desuso o Win32 em favor do WinRT API
• WinRT provê um conjunto mais consistente de
interfaces e comportamentos
• Win32 foi mantida pois WinRT não é capaz de
prover todas as funcionalidades
• Separar gestão de recursos do modelo de
programação
• Criação de processos
Programação Windows 8.1
•
Sistema Operacional decide o tempo de vida do processo (ao
contrário de aplicações comuns do Win32):
• Executam apenas o atual
• Pouca capacidade de hardware = morte do processo
• Tarefas em background devem ser especificadas no
WinRT
•
Objetivo: economizar energia (bateria) e otimizar aplicativo
corrente
• Melhor em dispositivos portáteis
Programação Windows 8.1
•
Uma aplicação é executada em uma sandbox chamada
AppContainer.
•
•
Se a aplicação precisa acessar recursos do sistema chama os
processos intermediários
Subsistemas são constituídos por quatro componentes:
•
Processos de subsistemas;
•
Conjunto de bibliotecas;
•
“Ganchos” no CreateProcess;
•
Suporte ao kernel.
Programação no Windows (2)
Os componentes usados para construir subsistemas NT.
Programação Windows 8.1
• Processos de subsistemas:
•
Um serviço
•
Inicializado pelo programa smss.exe como resposta a uma
solicitação de CreateProcess no Win32 ou API
correspondente
• smss.exe: gerenciador de sessões, programa inicial do
modo usuário inicializado
• Somente Win32, pois foi o único mantido
Programação Windows 8.1
• Conjunto de bibliotecas:
•
Implementa funções de alto nível do SO
•
Contém rotinas de comunicação entre os processos
utilizando o subsistema e o processo do subsistema
• Essa comunicação é feita pela LPC (local procedure
call)
Programação no Windows (2)
Os componentes usados para construir subsistemas NT.
Programação Windows 8.1
• “Ganchos” no CreateProcess
•
O gancho na chamada CreateProcess do Win32 detecta
qual subsistema é necessário para o processo
•
Consulta na imagem binária
• Solicita ao smss.exe a inicialização do subsistema
• O subsistema fica responsável pelo carregamento
do programa
Programação Windows 8.1
• Suporte ao kernel
•
O núcleo NT oferece facilidades na criação de
subsistemas específicos do SO.
• Alguns códigos são obrigatórios
• Chamada ao sistema NtCreateProcess
• As chamadas ao sistema nativas incluem:
•
•
•
Gerenciamento de endereços virtuais
Threads
Manipuladores e exceções nos processos
A API nativa do NT (1)
• Objetos: chamadas ao sistema executas em modo núcleo
• Microsoft não disponibilizou as chamadas nativas
• Força a utilização do Win32
Categorias comuns de tipos de objeto em modo kernel.
A API nativa do NT (1)
• Nem todas as estruturas de dados criadas pelo
sistema são objetos
• Nem todos os objetos são do modo núcleo
• Os únicos objetos do modo núcleo são aqueles
que precisam ser nomeados, protegidos ou
compartilhados.
•
Representam algum tipo de abstração de programação
implementada no núcleo
•
Possuem tipo definido pelo sistema
•
Possuem operações bem definidas
•
Ocupam armazenamento no núcleo
A API nativa do NT (1)
• A cada criação de um novo objeto em modo núcleo é
retornado um manipulador.
• Utilizado para realizar operações sobre o objeto
• Únicos por processos que os criaram
• Não há compartilhamento de manipuladores entre processos
•
Entretanto, cria-se uma cópia protegida para outros processos acessarem
• Cada objeto tem um descritor de segurança
• Indica quem pode e quem não pode realizar operações sobre
ele
A API nativa do NT (2)
Exemplos de chamadas nativas à API do NT que usam
manipuladores para manipular objetos ao longo de fronteiras
de processos.
A API do Win32 (usada em
linguagens como C/C++)
Exemplos de chamadas do Win32 API e sua relação com as
chamadas nativas da API do NT.
A API do Win32 (usada em
linguagens como C/C++)
• Windows dá suporte para WOW (Windows on Windows):
• WOW32 usado em sistemas 32 bits para executar aplicações
16 bits
• WOW64 usando em sistemas 64 bits para executar aplicações
32 bits
O registro do Windows (1)
As chaves do registro do Windows. HKLM é uma abreviatura
para HKEY LOCAL MACHINE.
O registro do Windows (2)
Algumas das chamadas da API Win32 API que usam o
registro.
Estrutura do sistema operacional
Organização do sistema em modo kernel.
O Hardware Abstraction Layer
(HAL) – camadas de abstração do
hardware
Algumas das funções de hardware gerenciadas pelo HAL.
Drivers de dispositivo (1)
Visão simplificada da pilha de dispositivos para dois volumes do
NTFS file volumes. O pacote de requisição de E/S (IRP) é passado
para do topo até a base. As rotinas apropriadas dos drivers
associados são invocadas em cada nível da pilha. As pilhas dos
dispositivos também consistem em objetos alocados
especificamente para cada pilha.
Drivers de dispositivo (2)
Implementação
do gerenciador
de objetos
A estrutura do objeto no nível
executivo gerenciado pelo
gerenciador de objetos.
Handles (descritores) (1)
Estrutura de dados para a tabela de descritores para uma
tabela mínima com até 512 descritores.
Handles (2)
Estrutura para uma tabela com até 16 milhões de
descritores.
Espaço de nomes dos objetos (1)
Procedimentos associados à manipulação de um novo
objeto.
Espaço de nomes dos objetos (2)
Alguns diretórios típicos no espaço de nomes dos objetos.
The Object Name Space (3)
Use of parse procedure:
1.Executive component passes Unicode pathname for
namespace
2.Object manager searches through directories and
symbolic links
3.Object manager calls the Parse procedure for object
type
4.I/O manager creates IRP, allocate file object, send
request to stack of I/O devices
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
The Object Name Space (4)
Use of parse procedure:
5.IRP passed down the I/O stack until it reaches device
object representing the file system instance
6.Device objects encountered as the IRP heads toward
the file system represent file system filter drivers
7.File system device object has a link to file system
driver object
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
The Object Name Space (5)
Use of parse procedure:
8.NTFS fills in file object and returns it to I/O manager,
which returns back up through all devices on the stack
9.Object manager is finished with its namespace
lookup
10.Final step is to return back to the user-mode caller
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Espaço de nomes dos objetos (6)
Passos usados no gerenciador de objetos e E/S na
criação/abertura de um arquivo e obtenção do descritor de
arquivo.
Espaço de nomes dos objetos (7)
Alguns tipos de objeto do executivo mais comuns
gerenciados pelo gerenciador de objetos.
Espaço de nomes dos objetos (8)
Alguns tipos de objeto do executivo mais comuns.
Jobs, Processes, Threads, Fibers
Figure 11-22. The relationship between jobs, processes,
threads and fibers. Jobs and fibers are optional; not all
processes are in jobs or contain fibers.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Thread Pools and User-Mode
Scheduling (1)
Key elements of UMS implementation:
1.User-mode switching
2.Re-entering the user-mode scheduler
3.System call completion
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Thread Pools and User-Mode
Scheduling (2)
Figure 11-23. Basic concepts used for CPU
and resource management.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Job, Process, Thread, and Fiber
Management API Calls (1)
Diferenças do UNIX:
1.A busca pelo caminho para encontrar o programa a
ser executado é embutida no código de biblioteca para
Win32.
2.O diretório corrente de trabalho é um conceito do
modo kernel do UNIX, mas uma string do modo usuário
do Windows.
3.UNIX analisa a linha de comando e passa um vetor de
parâmetros, enquanto o Win32 deixa a análise de
argumentos para o programa individual (pode tratar
caracteres
curingas,
porSystems:4th
exemplo,
*txt) Inc. All rights reserved.
Tanenbaum
& Bo, Modern Operating
ed., (c) 2013 Prentice-Hall,
Job, Process, Thread, and Fiber
Management API Calls (2)
Differences from UNIX:
4. No UNIX, o descritor define se os descritores de
arquivos podem ou não ser herdados. No Windows é
uma propriedade do descritor e do parâmetro de criação
do processo.
5.Novos processos passam informações diretamente
sobre a sua janela primária no Win32. No UNIX essa
informação é passada como parâmetros.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Job, Process, Thread, and Fiber
Management API Calls (3)
Differences from UNIX:
6.Windows não possui um bit SETUID como uma
propriedade do executável, mas um processo pode criar
outro que seja executado como um usuário diferente
(com o token apropriado).
7.O descritor de processos retornado pelo Windows
pode ser usado para modificar o novo processo/thread
de várias maneiras. UNIX apenas faz modificações ao
novo processo entre as chamadas fork e exec.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Comunicação entre Processos
As threads podem se comunicar de várias maneiras:
•
Pipes
•
•
Mailslots
•
•
•
Característica do OS/2 (compatibilidade)
Semelhante aos pipes, mas unidirecional
Soquetes
•
•
Enviam bytes ou mensagens
Igual aos pipes, mas conectam processos em máquinas
diferentes
RPC (chamadas de procedimentos remota)
•
Processo A pede para o Processo B abrir um espaço de
endereçamento em B e retorne o resultado para A.
Sincronização entre Processos
•
•
•
•
Semáforos
Mutexes
Regiões Críticas
Eventos
Implementation of Processes
and Threads (1)
Figure 11-24. Some of the Win32 calls for managing
processes, threads, and fibers.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Implementation of Processes
and Threads (2)
Figure 11-24. Some of the Win32 calls for managing
processes, threads, and fibers.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Criação de processos
• Um processo é criado quando há chamada ao
comando CreateProcess, no Win32.
• Essa chamada invoca um procedimento (em
modo usuário) na kernel32.dll que cria o
processo.
Scheduling (1)
• Windows não possui uma thread de escalonamento
central.
• Quando a thread não pode mais executar, ela entra
em modo núcleo e executa ela mesma o
escalonador.
• As condições que fazem com a que thread execute o
escalonador são:
1. A thread em execução se bloqueia devido a um semáforo, mutex,
evento, I/O, etc
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Scheduling (1)
2.Ela sinaliza um objeto (por exemplo, faz um up em
um semáforo).
3.O quantum expira.
4.Uma operação de I/O é completada.
5.Um tempo de espera (wait) expira.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Scheduling (2)
Figure 11-25. Mapping of Win32 priorities to
Windows priorities.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Scheduling (3)
Figure 11-26. Windows supports 32 priorities for threads.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Scheduling (4)
Figure 11-27. An example of priority inversion.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Memory Management
Fundamental Concepts
• x86: endereços de 32 bits de largura
• x64: endereços de 32 e 64 bits de largura
• Tamanho da página: 4Kb
Memory Management
Fundamental Concepts
Figure 11-28. Virtual address space layout for three user
processes on the x86. The white areas are private per
process. The shaded areas are shared among all processes.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Memory Management
Fundamental Concepts
• Páginas podem estar em três estados:
• Inválida: página não está mapeada
•
Referência a ela causa page fault
• Comprometida: dados ou código foram mapeados
para a página
• Reservada: páginas inválidas, porém reservadas
para um processo
• A medida que vai precisando, as páginas vão se tornando
comprometidas
Memory Management
Fundamental Concepts
• Arquivo de páginas
• Fica no disco
• Serve para armazenar as páginas que estão comprometidas
• Uma página comprometida apenas é escrita nesse arquivo
caso vá para o disco (just-in-time)
• Se a página retorna para a memória, a cópia em disco vai para
uma lista chamada lista de espera
• Windows suporta até 16 arquivos de páginas (espalhados por
diversos discos)
Memory-Management System Calls
Figure 11-29. The principal Win32 API functions for
managing virtual memory in Windows.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Implementation of Memory
Management
Figure 11-30. Mapped regions with their shadow pages on disk.
The lib.dll file is mapped into two address spaces at the same time.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Page Fault Handling (1)
• Pré-Paginação – SuperFecth
• Pré carga de páginas de aplicativos recém abertos
• Dois bits:
• A – Acesso
• D – Sujo
• LRU
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Page Fault Handling (1)
Figure 11-31. A page table entry (PTE) for a mapped page on
the Intel x86 and AMD x64 architectures.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Page Fault Handling (2)
Categorias para falta de páginas:
1.A página referenciada não está comprometida.
2.Ocorreu violação de proteção
3.Uma 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
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
The Page Replacement Algorithm (1)
Figure 11-32. The Windows self-map entries are used to map
the physical pages of the page tables and page directory into
kernel virtual addresses (shown for 32-bit PTEs).
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
The Page Replacement Algorithm (2)
• Cada processo tem um conjunto de trabalho:
• Conjunto de trabalho: são as páginas
mapeadas que estão na memória e que podem
ser referenciadas sem uma falta de página
• Possuem valores mínimos e máximos
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
The Page Replacement Algorithm (2)
Três níveis de atividade para o gerenciador
do conjunto de trabalho:
1.Muita memória disponível
• Reinicia os bits de acesso e os transforma
da idade de cada página
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
The Page Replacement Algorithm (2)
Três níveis de atividade para o gerenciador
do conjunto de trabalho:
2.Memória diminuindo
•
Qualquer processo com quantidade
significativa de páginas não utilizadas, para de
adicionar páginas ao conjunto de trabalho e
começa a substituir páginas mais antigas
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
The Page Replacement Algorithm (2)
Três níveis de atividade para o gerenciador
do conjunto de trabalho:
3.Memória está baixa
•
Remove as páginas mais antigas, diminuindo
os conjuntos de trabalho
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Physical Memory Management (1)
Figure 11-33. Some of the major fields in the page frame
database for a valid page.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Physical Memory Management (2)
Figure 11-34. The various page lists and the
transitions between them.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Input/Output API Calls
Figure 11-35. Native NT API calls for performing I/O.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Device Drivers
Figure 11-36. A single level in a device stack.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
I/O Request Packets
Figure 11-37. The major fields of an I/O Request Packet.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Device
Stacks
Figure 11-38. Windows
allows drivers to be
stacked to work with a
specific instance of a
device. The stacking is
represented by device
objects.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Implementation of the NT File System (1)
Figure 11-39. The NTFS master file table.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Implementation of the NT File System (2)
Figure 11-40. The attributes used in MFT records.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Storage Allocation (1)
Figure 11-41. An MFT record for a three-run, nine-block stream.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Storage Allocation (2)
Figure 11-42. A file that requires three MFT
records to store all its runs.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Storage Allocation (3)
Figure 11-43. The MFT record for a small directory.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
File Compression
Figure 11-44. (a) An example of a 48-block file being
compressed to 32 blocks. (b) The MFT record for the
file after compression.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Security in Windows 8
Security properties inherited from NT:
1.Secure login with antispoofing measures.
2.Discretionary access controls.
3.Privileged access controls.
4.Address space protection per process.
5.New pages must be zeroed before being
mapped in.
6.Security auditing.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Fundamental Security Concepts
Figure 11-45. Structure of an access token.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Security API Calls (1)
Figure 11-46. An example
security descriptor for a file.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Security API Calls (2)
Figure 11-47. The principal Win32 API functions for security.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Security Mitigations
Figure 11-48. Some of the principal
security mitigations in Windows.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
End
Chapter 11
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Download