Escolar Documentos
Profissional Documentos
Cultura Documentos
Windows
Hist
oria do Windows
MS-DOS
Consumer Windows (95/98/Me)
Windows NT
Windows XP
CP/M
1974
Intel, processador 8080, 8 bits
Control Program for Microcomputers
Gary Kildall e Digital Research
IBM-PC
MS-DOS
QDOS (Quick and Dirty Operating System)?
Bill Gattes
Comprado da Seattle Computer Products por 50 mil
dolares
MS-DOS (MicroSoft Disk Operanting System)
MS-DOS
linha de comando
16 bits
monousuario
Windows 1.0
Windows 2.0
1987
PC-AT
Windows 3.0
1990
Sucesso comercial
Windows
Interface grafica sobre o MS-DOS
Espaco de enderecamento compartilhado (bugs!)
Windows 95
Windows 95
Memoria virtual
Multiprogramacao
32 bits, mas varias partes de 16 bits
Nomes de arquivos mais longos (substituindo 8+3)
Windows 98
Windows 98
4 GB de memoria virtual
2 GB privados para um processo
1 GB compartilhado (bugs!)
1 MB para compatibilidade com o MS-DOS
Kernel nao era re-entrante
Mutex unico trava todo o sistema
Um processo pode ter de esperar por outro nao
relacionado
Integracao entre o desktop e a Internet
Acusacao de monopolio
Windows Me
Windows Millennium Edition
Windows Me
Facilidades extras:
Simplificou compartilhamento de imagens e musicas
Aplicacoes voltadas para a Internet
Jogos multiusuario
Mecanismo para restaurar configuracoes anteriores
Windows NT
Conclusao ao final dos anos 80:
Seria difcil construir um sistema 32 bits sobre o
MS-DOS 16 bits
Windows New Technology
Baseado no VMS da DEC (contratacao de David Cutler)
Visao importante: computadores pessoais seriam usados
em aplicacoes comerciais
Voltado para aplicacoes comerciais e de usuarios
Windows NT 3.1
Windows NT 3.1
Apesar de muito superior, as pessoas nao quiseram
trocar o Windows 3.1 pelo Windows NT 3.1
NT precisava de maquinas mais poderosas
Nao havia muitas aplicacoes disponveis
Fracasso do NT fez com que fossem lancados o
Windows 95/98/Me
Windows NT 4.0
Windows 95/98
No
No
No
No
No
Intel 80x86
No
No
Yes
Yes
Yes
No
Yes
Yes
Yes
Windows NT
Yes
Yes
Yes
Yes
Yes
80x86, Alpha, MIPS, ...
Yes
Yes
No
No
Optional
Yes
Yes
No
No
Windows 2000
Vers
oes do Windows 2000
Version
Professional
Server
Advanced server
Datacenter server
Max RAM
4 GB
4 GB
8 GB
64 GB
CPUs
2
4
8
32
Max clients
10
Unlimited
Unlimited
Unlimited
Cluster size
0
0
2
4
Optimized for
Response time
Throughput
Throughput
Throughput
Tamanho do c
odigo de alguns
Sistemas Operacionais
2000 29M
6M
10M
16M
3.1
3.5
4.0
38K
4.2
4.3
98K
179K
Sys III 58K
SVR3 92K
SVR4 280K
1M
2.2
165K
470K
1.0
2.0
Free 1.0 235K
4.4 Lite 743K
5.6 1.4M
2.0 62K
5.8 2.0M
Free 4.0 1.4M
V6
V7
9K
21K
4.1
1.0 13K
0.01
10K
5.3 850K
Win NT
Solaris
Linux
MINIX
BSD
AT&T
Year
1976
1979
1980
1982
1984
1986
1987
1989
1991
1993
1994
1996
1997
1999
2000
Ciclo de desenvolvimento do
Windows
Centenas de programadores trabalham no Windows
durante o dia
Trechos de codigo finalizado sao submetidos
` 18:00hs, o sistema e reconstrudo
As
O novo sistema operacional e distribudo e submetido a
uma serie de testes durante a noite
Na manha seguinte, verifica-se se o codigo funciona
Windows XP
Programac
ao no Windows 2000
Win32 Application Programming Interface
Chamadas ao sistema
nao sao publicas
mudam de versao para versao
Win32 API - conjunto de funcoes bem definidas que
fazem as chamadas ao sistema ou operam em espaco do
usuario
Novas funcoes sao acrescentadas frequentemente
Win32 API
Win32
application
program
Win32s
Windows 3.x
Windows
95/98/Me
Windows NT
Window 2000
Tipos de funco
es do Win32 API
Processos, threads
Gerencia de memoria
Sincronizacao
I/O
Interface grafica
janelas, menus, cones, barras de controle, . . .
Objetos do n
ucleo
Arquivos, processos, threads, pipes, . . .
Toda chamada retorna um handle, que pode ser usado
posteriormente
Handles possuem permissao de acesso
Nao podem ser simplesmente passados de um processo
para outro
Windows nao e orientado a objetos
Faltam conceitos como heranca e poliformismo
Informaco
es de controle
Windows 3.1: varios arquivos .ini
A partir do Windows 95: registry
Banco de dados centralizado
Semelhante a um sistema de arquivos: diretorios,
subdiretorios e entradas (arquivos)
Registry
Key
HKEY_LOCAL _MACHINE
HARDWARE
SAM
SECURITY
SOFTWARE
SYSTEM
HKEY_USERS
USER-AST-ID
AppEvents
Console
Control Panel
Environment
Keyboard Layout
Printers
Software
HKEY_PERFORMANCE _DATA
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
Description
Properties of the hardware and software
Hardware description and mapping of hardware to drivers
Security and account information for users
System-wide security policies
Generic information about installed application programs
Information for booting the system
Information about the users; one subkey per user
User ASTs profile
Which sound to make when (incoming email/fax, error, etc.)
Command prompt settings (colors, fonts, history, etc.)
Desktop appearance, screensaver, mouse sensitivity, etc.
Environment variables
Which keyboard: 102-key US, AZERTY, Dvorak, etc.
Information about installed printers
User preferences for Microsoft and third party software
Hundreds of counters monitoring system performance
Link to HKEY_LOCAL _MACHINE\SOFTWARE\CLASSES
Link to the current hardware profile
Link to the current user profile
Ger
encia de entradas no Registry
Funcoes disponveis na API
Win32 API function
RegCreateKeyEx
RegDeleteKey
RegOpenKeyEx
RegEnumKeyEx
RegQueryValueEx
Description
Create a new registry key
Delete a registry key
Open a key to get a handle to it
Enumerate the subkeys subordinate to the key of the handle
Look up the data for a value within a key
Service
process
POSIX program
Win32 program
OS/2 program
POSIX subsystem
Win32 subsystem
OS/2 subsystem
User mode
I/O mgr
File sys
D
PnP
mgr
Power Config
mgr
mgr
Kernel
Hardware Abstraction layer (HAL)
Hardware
LPC
mgr
Win32
GDI
Video
driver
Kernel mode
System services
Device
addresses
1.
Interrupts
DMA
Timers
RAM
2.
3.
Spin
locks
BIOS
MOV EAX,ABC
ADD EAX,BAX
BNE LABEL
MOV EAX,ABC
MOV EAX,ABC
ADD EAX,BAX
BNE LABEL
MOVE AX,ABC
ADD EAX,BAX
BNE LABEL
Disk
Printer
Hardware abstraction layer
A camada do n
ucleo
Constroi abstracoes de nvel mais alto a partir das
fornecidas pelo HAL
A maior parte esta escrita em C
Troca de contexto
Objetos de controle
DPC (Deferred Procedure Call)
APC (Asynchronous Procedure Call)
dispatcher objects (semaforos, locks, timers)
Executive
Dividido em modulos
Object manager
I/O manager
Process manager
Memory manager
Security manager
Cache manager
Plug-and-play manager
Power manager
Configuration manager
Local procedure call manager
System services
Tipos de objetos
Type
Process
Thread
Semaphore
Mutex
Event
Port
Timer
Queue
Open file
Access token
Profile
Section
Key
Object directory
Symbolic link
Device
Device driver
Description
User process
Thread within a process
Counting semaphore used for interprocess synchronization
Binary semaphore used to enter a critical region
Synchronization object with persistent state (signaled/not)
Mechanism for interprocess message passing
Object allowing a thread to sleep for a fixed time interval
Object used for completion notification on asynchronous I/O
Object associated with an open file
Security descriptor for some object
Data structure used for profiling CPU usage
Structure used for mapping files onto virtual address space
Registry key
Directory for grouping objects within the object manager
Pointer to another object by name
I/O device object
Each loaded device driver has its own object
Estrutura de um objeto
Object
header
Object
data
Object name
Directory in which the object lives
Security information (which can use object)
Quota charges (cost to use the object)
List of processes with handles
Reference counts
Pointer to the type object
Object-specific data
Type name
Access types
Access rights
Quota charges
Synchronizable?
Pageable
Open method
Close method
Delete method
Query name method
Parse method
Security method
Handle
table for
process A
Thread
1
Thread
2
Thread
3
Thread
4
Handle
table for
process B
1110
1010
1011
1111
0101
Mutex
type
object
Mutex
1
Mutex
2
Mutex
3
Diret
orios no espaco de nomes
Directory
??
Device
Driver
ObjectTypes
Windows
BaseNamedObjs
Arcname
NLS
FileSystem
Security
KnownDLLs
Contents
Starting place for looking up MS-DOS devices like C:
All discovered I/O devices
Objects corresponding to each loaded device driver
The type objects shown in Fig. 0-0
Objects for sending messages to all the windows
User-created objects such as semaphores, mutexes, etc.
Partition names discovered by the boot loader
National language support objects
File system driver objects and file system recognizer objects
Objects belonging to the security system
Key shared libraries that are opened early and held open
Gdi32.dll
Call
User32.dll
Call
1
Kernel32.dll
Call
2b
Win32
subsys
2a
3b
System interface (ntdll.dll)
4b
Kernel
space
User
process
3a
Operating system
Conceitos b
asicos sobre ger
encia de
processos e threads
Name
Job
Process
Thread
Fiber
Description
Collection of processes that share quotas and limits
Container for holding resources
Entity scheduled by the kernel
Lightweight thread managed entirely in user space
Address
space
Process
User
stack
Process
handle
table
T T
Access token
T T
Idle
15
6
5
4
3
2
1
Win32
thread
priorities
Realtime
Time critical
31
Highest
26
Above normal
25
Normal
24
Below normal
23
Lowest
22
Idle
16
Filas de prioridades
Priority
31
Next thread to run
System
priorities
24
16
User
priorities
1
Zero page thread 0
Idle thread
Invers
ao de prioridades
Blocked
12
12
Semaphone
Running
Ready
(a)
Semaphone
Would like to do an up
on the semaphore but
never gets scheduled
(b)
Emulac
ao do MS-DOS
Process
Ntvdm
MSDOS program
2
Trampoline
4
Operating system
Ger
encia de mem
oria
Process A
Process B
Process C
Nonpaged pool
Paged pool
Nonpaged pool
Nonpaged pool
Paged pool
Paged pool
HAL + OS
HAL + OS
HAL + OS
System data
System data
System data
Process A's
private code
and data
Process B's
private code
and data
Process C's
private code
and data
4 GB
2 GB
0
Bottom and top
64 KB are invalid
Mapeamento de p
aginas
Backing store on disk
Region
Process A
Process B
Stack
Stack
Data
Data
Paging file
Shared
library
Lib.dll
Shared
library
Program
Program
Prog1.exe
Prog2.exe
Ger
encia de p
aginas
Zero page needed (8)
Page read in (6)
Top
ModStandby
Free
Zeroed
ified
page
page
page
page Modified list Dealloc(5) list
list
Zero
list
page
page
writer(4)
thread (7)
Bottom
Page evicted from a working set (1)
Bad
RAM
page
list
Ger
encia de p
aginas
Page frame database
Page tables
State
List headers
Standby
Modified
Free
Zeroed
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Clean
Dirty
Clean
Active
Clean
Dirty
Active
Dirty
Free
Free
Zeroed
Active
Zeroed
Active
Zeroed
Cnt WS Other
PT
Next
X
X
20
4
X
X
6
14
Mais informaco
es sobre o Windows
http://en.wikipedia.org/wiki/Windows
http://www.microsoft.com/