You are on page 1of 32

Evoluo Histrica dos Sistemas Operacionais

A evoluo dos sistemas operacionais foi uma conseqncia dos avanos ocorridos no
hardware dos computadores. Temos trs nveis de geraes de sistemas operacionais:
O primeiro nvel integrado pelos sistemas operacionais bsicos, surgidos nos anos
cinqenta, limitava-se a auxiliar os programas nas operaes de entrada e sada e na
traduo nos programas fonte, escritos em linguagem pouco evoludas.
O segundo nvel esteve disponvel na dcada de 60 e a sua ajuda programao foi mais
decisiva, proporcionando tradutores simblicos mais evoludos, programas de servios para
transferncia de informao entre perifricos e programas de controle de entrada e sada, ou
seja, os famosos IOCS( Input Output Control System).
O terceiro nvel de sistemas operacionais surgiu na dcada de 70. A contribuio destes
sistemas programao foi to grande que foram rompidas as normas clssicas do processo
informtico. Os tradutores de altssimo rendimento ento incorporados tm permitido hoje
em dia a utilizao de linguagem de programao simblica quase idnticas linguagem
utilizada pelo homem, reduzindo sensivelmente o tempo gasto na produo bem como o
tempo de aprendizagem de novas linguagens.
Estrutura do Sistema Operacional
Pode-se criar um sistema to grande e complexo como um sistema operacional somente
dividindo-o em pequenas partes. Cada uma dessas partes deve ser uma poro bem
delineada do sistema, com entradas, sadas e funes, cuidadosamente definidas.
Logicamente, nem todos os sistemas tm a mesma estrutura, ou seja, no apresentam a
mesma forma de ligao entre as partes. Contudo, os sistemas operacionais modernos
geralmente possuem as seguintes partes:
I. Gerenciamento de processos - criar e eliminar, suspender e retomar, sincronismo e
comunicao entre processos;
II. Gerenciamento da memria principal manter o controle das partes da memria que
esto sendo usadas e por quem, decidir que processos sero carregados para memria
quando houver espao disponvel, alocar e desalocar espao de memria quando
necessrio;
III. Gerenciamento de memria secundria o SO responsvel pelas atividades de
alocao de espao livre.
IV. Gerenciamento de Entrada/Sada manter os device drivers para comunicao com os
deferentes dispositivos, um buffer-caching para o sistema;
V. Gerenciamento de arquivos criar e eliminar arquivos e diretrios, manter mapeamento
dos arquivos em disco;
1

VI. Proteo do sistema se um sistema multiusurio e permite mltiplos processos


concorrentes, estes processos devem ser protegidos de outras atividades;
VII. Networking em um sistema distribudo (fracamente acoplado) cada processador tem
sua prpria memria e seus processadores que se comunicam atravs do SO. A
comunicao entre eles deve considerar roteamento e estratgias de conexo;
VIII. Interpretador de comandos um dos mais importantes programas do SO o
interpretador de comandos, que serve de interface entre o usurio e o SO. Alguns SOs
incluem este programa no prprio ncleo (kernel). J outros sistemas, como o DOS e o
UNIX, tratam o interpretador de comandos como um programa especial que executado
quando uma sesso iniciada. Com isso, um sistema operacional fornece um ambiente para
execuo, melhor dizendo, fornece servios para os programas e tambm para os usurios
desses programas.
A Histria do Sistema Operacional LINUX
O Sistema Operacional Linux foi originalmente criado por Linus Torvalds na
Universidade de Helsinki na Finlndia. Ele foi desenvolvido com a ajuda de vrios
programadores atravs da Internet. Linus teve seu projeto inspirado pelo seu interesse em
Minix, um pequeno sistema Unix desenvolvido por Andy Tannenbaum. No dia cinco de
Outubro de 1991, Linus anunciou a primeira verso "oficial'' de Linux, verso 0.02. Desde
ento, vrios programadores responderam sua chamada, e haviam ajudado a tornar Linux
o completo sistema operacional que ele hoje.
Conceito de Linux
Linux um sistema operacional Unix independente, largamente distribudo para mquinas
x86, Motorola 68k, Digital Alpha e Motorola PowerPC. Ele uma implementao da
especificao do POSIX com a qual todas as verdadeiras verses de Unix consentem. O
ncleo de Linux no usa cdigos de AT&T ou qualquer outra fonte de proprietrio, e muitos
dos softwares disponveis para Linux so desenvolvidos pelo projeto Free Software
Foundation's GNU. Enfim, uma completa implementao do sistema operacional Unix.
Como Unix, Linux um multi-tarefa robusto, multi-usurio, sistema operacional de rede
que ostenta uma longa lista de padres aceitveis . Possui suporte completo para ambas
plataformas de 32 e 64-bits, mltiplas CPUs e alta performance para redes e outros
perifricos. Ele suporta uma vasta variedade de softwares, incluindo X Windows, Emacs e
redes TCP/IP (incluindo SLIP/PPP/ISDN). Muitas pessoas j executaram marcas de nvel
em sistemas 80486 Linux e acharam elas comparveis com estaes de trabalho mdias da
Sun e Digital. O Sistema Operacional Linux est disponvel na Internet em diversos sites, e
tambm com vrias verses em disquetes ou CD-ROM. A parte central de Linux coberta
2

pela GNU Public License (GPL), e geralmente "empacotada" com vrios binrios que
consistem em um sistema operacional trabalhando em Unix. Esses pacotes de softwares so
chamados distribuies e chegam em muitos tamanhos e estruturas. Linux est sendo
usado hoje por milhes de pessoas em todo o mundo. Ele usado para desenvolvimento de
software, rede (intra-office e Internet), e como plataforma para usurio. Linux tornou-se
uma alternativa barata para os caros sistemas Unix.

Sistemas de Arquivos
Viso Geral sobre Sistema de Arquivos
Conceitualmente, arquivos so mecanismos de abstrao que fornecem uma forma de
armazenar e recuperar informaes em disco. A caractersticas mais importante de qualquer
mecanismo abstrao a forma de identificar os objetos como os quais o mecanismo
trata. Quando um processo cria um arquivo, preciso que tal arquivo receba um nome,
normalmente dado pelo processo. Quando tal processo termina sua execuo, o arquivo
continua a existir, podendo ser acessado por outros processos, usando para tanto o nome
atribudo ao arquivo. O sistema de arquivos a parte mais visvel do sistema operacional. A
maioria dos programas lem e escrevem em pelo menos um arquivo. O sistema de arquivos
encara o disco como se este fosse composto simplesmente por uma seqncia de blocos de
tamanho fixo. Cada bloco pode ser composto por 1, 2, 4 ou mais setores fsicos; desta
forma, tamanhos possveis de blocos (ou clusters) so 512 bytes, 1 KB, 2KB e assim por
diante.
Sistema de Arquivos Unificado
O Sistema de Arquivos Unificado est presente em todas as variantes Unix.Ao contrrio
da grande maioria dos sistemas operacionais, unidades de armazenamento distintas so
enxergadas como parte de um nico e imenso diretrio, de forma que quando estamos
acessando um arquivo, por exemplo, no diretrio /etc podemos estar acessando uma
unidade de disco rgido enquanto o arquivo que estamos lendo na outra janela pode estar
num CD-ROM.
Conceitos Fundamentais
O Linux organiza o seu sistema de arquivos em uma rvore hierarquizada, resultando em
uma estrutura nica que agrega todas as informaes relativas ao sistema de
arquivos. Cada nodo da rvore pode representar um arquivo, um dispositivo de
entrada e sada, ou ainda um diretrio. O Linux faz distino entre nome maisculos

e minsculos. Normalmente um nome de arquivo composto de nome e uma


extenso, separada por ponto no Linux, o tamanho da extenso, se houver, fica a
critrio do usurio, e um arquivo pode at ter duas ou mais extenses.
Ex : prog.c.Z.
No h limite de nmeros de caracteres utilizados para dar nome a arquivos. O Sistema
Operacional Linux, olha o arquivo como uma sequncia de byte, sem nenhuma estrutura,
isto d uma flexibilidade espantosa ao sistema de arquivo. Os programas de usurios,
podem colocar o que desejarem nos arquivos e identific-los da forma que lhe for mais
conveniente, o Unix no influncia em nada nesta processo de identificao.
Tipos de arquivos
O Linux suporta arquivos regulares, arquivos de diretrio, arquivos especiais de caracteres
e arquivos especiais blocados. Os arquivos regulares so aqueles que contm
informaes de usurios, por exemplos, tipo ASCII. Arquivos diretrios so
arquivos usado na manuteno do sistema de arquivo. Arquivos especiais de
caracteres esto diretamente ligado entrada/sada e so usados para dispositivos
seriais de entrada/sada, tais como terminais, impressoras e rede. Os arquivos
especiais blocados so usado modelar dispositivos.
Diretrios
Para tratar dos arquivos, o sistema operacional normalmente lana mo do diretrios, no
caso do Linux diretrios hierrquico. Os diretrios so um tipo de arquivo. No Linux todos
os arquivos fazem parte de um diretrio, assim eles so mantidos e organizados, os
diretrios so meios de oferecer endereos dos arquivos, de maneira que o SO possa
acess-los rapidamente e facilmente, ao entra pela primeira vez em sua conta, o usurio j
esta em um subdiretrio denominado subdiretrio de entrada.
Conta
uma senha que aberta pelo administrador do sistema (denominado de root) onde o
usurio indentifica-se para o computador, que ento d acesso ao seu diretrio de entrada,
onde voc pode executar os comandos permitidos a sua senha. Nos SO padro Unix, a
conta obrigatria para todos.
Acesso a arquivos
O Sistema Operacional Linux, bem como os demais SO, trata o acesso a arquivos de

forma randmica, ou seja, seus byte ou registros podem ser lidos em qualquer ordem.
Operaes sobre arquivos
Os arquivos existem para armazenar informaes e permitir a sua recuperao. As
chamadas de sistemas mais comum relacionadas ao sistema de Arquivo Linux so
chamadas que operam sobre arquivos individuais ou envolvendo diretrios e sistema de
arquivos como um todo. A chamada CREAT no s cria um arquivo, mas tambm abre esta
arquivo para escrita, independente do modo de proteo especificado para ele. O descritor
de arquivo que a chama retorna fd, pode ser usado para escrever no arquivo. Se a chamada
CREAT for executada sobre um arquivo existente, esta arquivo ser truncado para o
comprimento 0, desde que os direitos do arquivos assim o permitam. Para que um arquivo
existente possa ser lido ou escrito, necessrio que ele seja primeiramente aberto e se ele
esta aberto para leitura, escrita ou para ambas as operaes. Vrias opes podem ser
especificadas. O descritor de arquivo que a chamada retorna pode ento ser usado para
leitura ou escrita. Posteriormente, o arquivo deve ser fechado atravs da chamada CLOSE,
cuja execuo torna o descritor de arquivo disponvel para ser novamente utilizado numa
chamada CREAT ou OPEN subseqente. A chamada READ utilizada para ler o arquivo,
os bytes lidos vm em posio corrente de leitura. O processo que faz a chamada deve
indicar a quantidade de informao a ser lida e providenciar um buffer para possibilitar a
leitura. A chamada WRITE, os dados so escritos no arquivo, geralmente a partir da
posio corrente. Se tal posio for a de final de arquivo, o tamanho do mesmo cresce. Se a
posio corrente no momento da escrita estiver no meio do arquivo, os dados existente
nesta posio estaro perdidos para sempre, pois a operao de write escreve os novos
dados em cima dos antigos. Apesar da maioria dos programas ler e escrever arquivos
sequencialmente, em algumas aplicaes os programas devem ser capaz de acessar
randomicamente qualquer parte do arquivo. Associado a cada arquivo, existe um ponteiro
que indica a posio corrente do arquivo. Quando a leitura ou escrita for seqencial, em
geral, ele aponta para o prximo byte a ser lido ou a ser escrito. A chamada LSEEK tm
trs parmetros: o primeiro do descritor de rea para o arquivo, o segundo a posio do
arquivo, o terceiro informa se a posio relativa ao inicio do arquivo, posio corrente
ou final do arquivo. O valor que o LSEEK retorna a posio absoluta no arquivo aps a
mudana no ponteiro. Para cada arquivo o Linux mantm o modo do arquivo (regular,
diretrio ou arquivo especial), seu tamanho, o instante da ltima modificao, e outra
informaes pertinentes. Os programas podem verificar estas informaes, usando a
chamada STAT. Seu primeiro parmetro o nome do arquivo. O segundo um ponteiro
para a estrutura onde a informao solicitada deve ser colocada. As chamadas do sistema
relacionadas com os diretrios ou com o sistema de arquivo como um todo , em vez de um

arquivo especficos. Os diretrios so criados utilizando as chamadas MKDIR e RMDIR,


respectivamente. um diretrios o pode ser removido se estiver vazio. A ligao de um
arquivo cria uma nova entrada no diretrio que aponta para um arquivo existente. A
chamada LINK cria esta ligao. Os seus parmetros especificam os nome originais e novo,
respectivamente. As entrada do diretrios so removidas via UNLINK. Quando a ltima
ligao para um arquivo removida, automaticamente apagada. Para um arquivo que
nunca foi ligado, o primeiro UNLINK faz com que ele desaparea. Os diretrios de
trabalho especificado pela chamada CHDIR. Sua execuo faz com que haja mudana na
interpretao dos nome dos caminhos relativos. A chamada CHMODE torne possvel a
mudana do modo um arquivo, ou seja, de seus bits de proteo.

Arquivos Compartilhados
Quando vrios usurios esto trabalhando juntos em um projeto, ele comumente precisam
compartilhar arquivos. Em decorrncia disto, muitas vezes conveniente que um
arquivo compartilhado aparea simultaneamente em diretrios diferentes que
pertenam a diferentes usurios. A coneco entre um diretrio e um arquivo
compartilhado chamada de ligao (link). O prprio sistema de arquivo um
grfico acclico dirigido , ou DAG, em vez de rvore. No Linux os blocos do disco
no so listados no diretrio, mas numa estrutura de dados associada ao prprio
arquivo. Esta estrutura chamada n-i, a forma como o Linux implementa
compartilhamento arquivo.
Sistema de Arquivos no Linux - Descrio
O Sistema de Arquivos do Linux estrutura de organizao de arquivos em formato de
rvore, que permite:

hierarquia (de diretrios e arquivos);

proteo das informaes;

compartilhamento dos arquivos.

Todos os arquivos linux esto arranjados em uma nica rvore hierrquica. Em


linux o usurio no precisa se preocupar com discos especficos como C:, D:, etc. Na
verdade, o usurio no necessita saber como os arquivos esto arranjados fisicamente em
um ou mais discos. O Linux suporta diversos sistemas de arquivos. Estes no so acessados
via identificadores, e sim combinados numa estrutura hierrquica em rvore, que representa
o sistema de arquivos como uma entidade nica. Cada partio do disco pode conter um
6

sistema de arquivos. Dentre esses sistemas destacamos:


Minix: mais antigo e presumivelmente o mais confivel, mas bastante limitado em
caractersticas (algumas datas no aparecem , mximo de 30 caracteres para nome de
arquivos, etc...) e restrito em armazenamento (no mximo 64 Mb por sistema de arquivos).
Xia: ma verso modificada do sistema de arquivos minix, o qual aumenta os limite de
nomes de arquivos e de sistemas de arquivos, mas no introduz novas facilidades. No
muito popular, mas comenta-se que funcione muito bem.
ext2: mais poderoso e popular sistema de arquivos nativo do Linux. Desenhado para ser
facilmente compatvel com os avanos das novas verses, sem a necessidade de criar
novamente os sistemas de arquivos j existentes.
Ext: Uma verso antiga do ext2 que no mais compatvel com verses atuais. raro v-la
instalada em sistemas novos e mesmo os mais antigos tm sido convertidos para ext2.
Adicionalmente h o suporte a diversos outros sistemas de arquivos, para simplificar a troca
de informaes com outros sistemas operacionais. Estes sistemas de arquivos funcionam
como se fossem nativos, exceto pela perda de algumas facilidades presentes no UNIX, ou
apresentam algumas particularidades.
Msdos: Compatibilidade com MS-DOS (e OS/2 e Windows NT) atravs de sistemas de
arquivos FAT/FAT32.
Umsdos: Sistemas de arquivos MS-DOS estendidos para suportar nomes longos, donos,
permisses, links e arquivos de dispositivos do Linux. Isso permite que um sistema de
arquivos msdos possa ser usado como se fosse um sistema Linux, removendo a necessidade
de uma partio distinta para o Linux.
iso9660: O sistema de arquivos padro do CD-ROM. A extenso Rock Ridge que permite
nomes longos tambm suportada automaticamente.
Nfs: Sistemas de arquivos em redes que permitem o compartilhamento e o fcil acesso aos
arquivos entre diversos computadores da rede.
Hpfs: O sistema de arquivos do OS/2.
Sysv: Sistema de arquivos do System V/386, Coherent e Xenix.
Sistema de Arquivos Second Extended File System(ext2)
Atualmente, o sistema de arquivos mais utilizado pelo Linux o EXT2 (Second Extended

File System). Nele os arquivos so guardados em blocos de mesmo tamanho, determinado


durante a criao do sistema de arquivos. A partio lgica que ele ocupa dividida em
Block Groups, cada um contendo informaes crticas para a integridade do sistema de
arquivos, alm de conter arquivos e diretrios. Cada Block Group contm um superblock,
que contm informaes sobre o sistema de arquivos. Normalmente, s o superblock do
primeiro Block Group lido. Os demais so utilizados caso haja corrupo do sistema de
arquivos. Um arquivo qualquer no Linux composto por uma quantidade inteira de blocos.
Assim, cada arquivo tem seu tamanho arredondado de forma a ocupar um nmero inteiro
de blocos. Por exemplo, se considerarmos blocos de tamanho de 1024 byes, um arquivo de
1025 bytes ocupar dois blocos, ou seja, 2048 bytes. Essa poltica de alocao implica que
se desperdice metade do tamanho de um bloco por arquivo. Esse desperdcio , na verdade,
resultante de um compromisso entre desempenho e economia de espao em disco.
A organizao de blocos da partio em grupos de blocos tambm est relacionado com
um problema de desempenho, tendo como principal objetivo evitar a dispero de arquivos
no disco. Dessa forma, o ncleo tenta alocar para um arquivo os blocos pentencentes a um
mesmo grupo, reduzindo os movimentos de seek no momento de acess a esse arquivo. Cada
grupo composto por seis elementos distintos: superbloco, descritor do grupo, bitmap de inodos, tabela de i-nodos, e bloco de dados. A estrutura bsica de construo de arquivos
ext2 o i-nodo: cada arquivo ou diretrio no sistema de arquivo ext2 descrito por um
nico i-nodo. Cada grupo de blocos possui um bitmap de i-nodos e uma tabela que contm
ponteiros para i-nodos de cada arquivo, ou diretrio, pertencente ao grupo. Um i-nodo
descreve quais blocos compes um arquivo e tambm armazena uma srie de informaes
relativas a esse arquivo. Todos os i-nodos de uma partio ext2 tm o mesmo tamanho (128
bytes).
Modo: esse campo armazena informaes relacionadas com os direitos de acesso ao
objeto que o i-nodo referencia.
Informaes: fornece os direitos de acesso, leitura e escrita, associando o arquivo a
um usurio e/ou a um grupo de usurios.
Tamanho: o tamanho do arquivo em bytes, ou seja, o tamanho real do arquivo e
no a quantidade de blocos que ele ocupa.
Timestamps: data(hora, dia, ms, ano) em que o i-nodo foi criado ou modificado.
Apontadores para blocos: valores que indicam quais blocos compem o arquivo. Esses
apontadores so empregados em 4 nveis: apontadores diretos (12), apontador de indireo
simples(1), apontador de dupla indireo(1), e apontador de tripla indireo(1). Nas verses
8

atuais do Linux, o tamanho mximo de um arquivo limitado a 2 Gigabytes o que no


explora toda a capacidade de endereamento fornecida pela tripla indireo.
Diretrios ext2
O sistema de arquivo ext2 implementa diretrios como um tipo de arquivo. O contedo
desse arquivo uma sequncia de registros, na qual cada registro corresponde a um arquivo
pertencente ao diretrio. Qualquer diretrio, quando criado, inicializado com dois
arquivos com nomes especiais: o arquivo ponto (.) e o arquivo ponto-ponto(..). O primeiro
arquivo ponto, serve para fazer referncia ao prprio diretrio (diretrio corrente), o
segundo, arquivo ponto-ponto, referencia o diretrio imediatamente superior na hierarquia,
ou seja, o diretrio pai do diretrio corrente. Os diferentes campos que compem cada um
dos registros so:
I-nodo: o i-nodo que descreve a localizao dos blocos que compem o arquivo.
Tamanho da entrada: tamanho em bytes da entrada do diretrio.
Tamanho do nome do arquivo: quantidade de caracteres que formam o nome do
arquivo.
Tipo do arquivo: o ext2 posssui uma srie de tipos para arquivos (arquivos
regulares, pipes, diretrios, links simblicos, dispositivos de entrada/sada e
sockets). Cada um desses arquivos utiliza blocos de dados de diferentes formas, j
que alguns arquivos armazenam dados (arquivos regulares e diretrios) e outros no
(dispositivos entrada/sada).
Nome: um string que fornece o nome do arquivo. Essa string possui um caracter
escepical como marca de fim (\0) e deve sempre ocupar, por questes de
desempenho, um tamanho mltiplo de 4 bytes. O tamanho do string limitado em
256 caracteres.
No ext2, um arquivo localizado atravs de um caminho(path). O caminho uma
seqncia de diretrios separados pelo caractere barra ( /) e terminado pelo nome do
arquivo. O caminho pode ser relativo ou absoluto. No caminho relativo, o sistema inicia a
pesquisa pelo nome do arquivo a partir do diretrio corrente. No caminho absoluto, a
localizao do arquivo feita a partir do diretrio raiz. Para encontrar o i-nodo que
representa um arquivo no sistema ext2, o Linux necessita realizar um parsing no caminho
para encontrar a hierarquia dos diretrios e finalmente acessar o arquivo. O ponto inicial
para essa pesquisa o primeiro i-nodo do super-bloco do sistema, j que nele esto
armazenadas as informaes relativas ao tamanho e ao formato do sistema de arquivos. De
9

posse dessas informaes, ento possvel calcular qual grupo de blocos mantm o i-nodo
referente a cada uma das entradas do caminho, para em seguida localizar o bloco
correspondente no diretrio, e acess-lo para ler o i-nodo do prximo diretrio na seqncia
do caminho, ou o i-nodo relativo ao prprio arquivo.

I/O no Sistema de Arquivos do Linux


Um dos objetivos de um sistema operacional esconder dos usurios as peculiaridades
de um determinado hardware. A gerncia de I/O realiza um papel anlogo, ou seja, fornece
uma interface uniforme para acesso a um determinado dispositivo independente de sua
tecnologia. Um exemplo bastante comum so os discos rgidos. Ns encontramos discos
IDE, EIDE, SCSI, entre outros, os quais possuem geometria, funcionalidades e capacidades
diferentes. Entretando, eles so vistos de forma genrica como discos rgidos. Esse o
objetivo da gerncia da entrada e sada: criar uma camada de software que esconda, atravs
de uma interface comum, os detalhes especficos de cada dispositivo. O processador no
o nico dispositivo inteligente de um hardware. Cada dispositivo fsico de entrada e sada
possui um controlador. Um controlador nada mais que um processador projetado para
realizar uma determinada funo especfica. Assim, teclado, mouse e portas seriais so
normalmente vinculados a um controlador serial; discos IDE, a um controlador IDE; discos
SCSI, a um controlador SCSI; interface de rede, a controladores de redes; etc. Cada
controlador possui um conjunto prprio de registradores de controle e estado(CSR- Control
and Status Registers) os quais diferem de controlador para controlador. Os CSR so
utilizados para inicializar, encerrar, diagnosticar e realizar operaes em um controlador, ou
seja, em um dispositivo. Ao invs de cada aplicao codificar a seqncia de comandos
CSR, esses esto concentrados no ncleo do sistema operacional j que, por exemplo, ler e
escrever so operaes comuns a todas as aplicaes. O software que implementa, no
ncleo do sistema operacional, essas operaes conhecido como driver de dispositivos
(device drivers).
Device Drives - Drivers de Dispositivos
Um driver de dispositivo composto por um conjunto de funes e de estruturas de dados
que controlam um ou mais perifricos tais como discos rgidos, teclados, mouse, monitores,
interfaces de redes, etc. Cada driver interage com as diferentes partes do sistema
operacional atravs de uma interface de programao(API) bem definida.
Arquivos de Dispositivos

10

Os arquivos de dispositivos so os arquivos especiais empregados para representar os


dispositivos de entrada e sada. Alm de um nome, cada um desses arquivos possui trs
atributos: tipo, nmero maior, nmero menor. O tipo do dispositivo indica se ele um
dispositivo orientado a caractere ou a bloco. O nmero maior um nmero na faixa de 1 a
255 que serve para identificar uma classe de dispositivos. Todos os arquivos de dispositivos
que possuem o mesmo nmero maior e o mesmo tipo dividem o mesmo device driver, pois
isso representa que eles so da mesma classe. O nmero menor identifica um dispositivo
especfico entre um grupo de dispositivos de uma mesma categoria, ou seja, de um mesmo
nmero maior. Normalmente, cada arquivo de dispositivo associado a um dispositivo
fsico de entrada e sada, ou a uma partio lgica de um disco.
Segurana
O Sistema Operacional Linux o segundo sistema operacional mais seguro do
mundo. Seu pai, o Unix, o nico que o supera. Este um dos motivos mais
favorveis a sua utilizao, principalmente em servidores. Outro fato que
comprova esta segurana que, das invases realizadas com sucesso, apenas 1%
est relacionado com Linux como alvo. Ainda, esta invaso a ele ocorre por dois
motivos: falha humana (99,5% dos casos) e falha do sistema(0,5% dos casos).
Porm segurana no apenas relacionada invaso mas tambm a vrus,
trojans, worms e todos aqueles softwares mal intencionados. A cada 1000 pragas
virtuais lanadas 1 para Linux. O mais incrvel que qualquer falha ou praga
eliminada em questo de pouqussimas horas devido ao grande nmero de
programadores que o Linux possui. Diferente dos demais sistemas operacionais,
o Linux fecha todas as portas por padro, ou seja, mantm abertas somente as
que realmente precisam estar. So justamente estas portas abertas que devem ser
filtradas (protegidas) sem as fechar utilizando um Firewall (porto, muro, parede
de fogo). Ele tem a funo de liberar ou no o acesso as requisies feitas por
endereos da internet (IPs), atravs de regras definidas pelo administrador do
sistema. No existe um padro de regras que venham juntamente com o pacote
padro de instalao, se no for especificado o Sistema Operacional no vai
filtrar. Outro ponto interessante de ressaltar que todas configuraes de firewall
realizadas no Linux ou em qualquer outro sistema operacional devem ser tanto
para meios externos (internet) quanto meios internos (intranet), nem mesmo os
usurios internos esto livres da maldade.
O Linux utiliza como firewall o iptables, que tambm pode ser chamado de ipchains ou
ipfwadm depende da verso do kernel (ncleo do sistema) como mostra o quadro abaixo:

11

Verso do Kernel

Sistema Utilizado

2.0.x

Ipfwadm

2.2.x

Ipchains

2.4.x ou superior

Iptables

Segurana interna
SAMBA - Compartilhamento de arquivos
Apesar de praticamente no existir pragas para Linux, eles existem em massa para o
sistema operacional da Microsoft. Isto representa perigo se voc estiver em uma rede com
estaes de trabalho windows, por conseqncia utiliza-se o samba para liberar acesso a
arquivos no servidor linux. Este compartilhamento criado entre o servidor e estao pode
permitir que um vrus ou trojan apague os arquivos l encontrados, isto requer que voc
possua um bom antivrus instalado em cada estao e mantenha-o bem atualizado. Porm
no basta apenas isso, mas deve-se tomar as seguintes precaues.
. No utilizar login nico para toda a rede (mesmo que seja uma rede pequena).
. Cada login deve ter acesso restrito somente ao que realmente precisa.
. Contas de usurios visitantes devem ser evitadas, e se existirem deve ter o acesso
mais restrito possvel.
. No permitir que o usurios alterem as permisses de arquivo.
. No criar a conta root ou administrador.
. No compartilhar jamais a raiz do sistema (parece obvio mais j algumas pessoas o
fazerem).
SQUID Acesso Internet
O squid proxy(distribuidor) de internet, tem a funo de liberar e controlar o
acesso a internet em uma rede. Para que ele seja um aliado e ajudante no dia-a-dia
necessrio bloquear alm de sites e portas, as extenses executveis e de arquivos
compactados. Tambm devem se restringir o horrio de acesso Internet.
CUIDADOS ESPECIAIS
12

Senha e usurio root


O ideal que apenas que uma pessoa saiba esta senha. O usurio root no deve ser
usado no cotidiano, apenas na instalao e manuteno dos servios e usurios do
servidor.
SSH - Acesso remoto
Este servio permite o acesso linha de comando do linux de qualquer outro local.
Porm ao habilitar este servio no deve-se liberar acesso ao usurio root.
Telnet
Protocolo e servio muito conhecido nos ambientes Windows. No recomendado
o uso, em hiptese alguma, no Linux, pois sua segurana j foi posta em cheque
inmeras vezes.

Windows 2000
A arquitetura do Windows 2000 fortemente inspirada no princpio de microncleo, pois
cada funcionalidade do sistema oferecida e gerenciada por um nico componente do
sistema operacional. Todavia, mdulos fora do microncleo executam operaes em modo
protegido (modo kernel), por isso, no puramente microncleo.
O Windows 2000 tambm segue uma organizao em camadas, e explora o modelo
orientado a objetos. Foi projetado de modo a permitir a execuo de aplicaes escritas
para outros sistemas operacionais.
A estrutura pode ser dividida em duas partes: modo usurio (onde esto localizados os
sistemas protegidos) e o modo kernel (o executivo). O executivo constitui o ncleo do
Windows 2000, exportando funes para serem utilizadas no modo usurio e funes que
s so acessveis por componentes (mdulos) pertencentes ao prprio ncleo. Os principais
componentes do executivo so:
Gerncia de objetos;
Gerncia de processos;
Gerencia de memria virtual;
Monitor de segurana;
Mdulo de suporte;
Gerncia de E/S.
O ncleo do Windows 2000 foi projetado de forma a dar suporte ao multiprocessamento
simtrico quando executado em mquinas multiprocessadas. O multiprocessamento
13

assimtrico na presena de n processadores, um processador pr-selecionado e dedicado a


execuo do sistema operacional, deixando para os processos de usurios os n-1
processadores restantes. J o multiprocessamento simtrico, o sistema operacional pode ser
executado em qualquer processador que esteja livre, ou ainda em todos os processadores
simultaneamente, explorando melhor o potencial dos vrios processadores existentes.

Gerncia de Memria
O Windows 2000 implementa um sistema de memria virtual baseado em um espao de
endereamento linear (plano) de 32 bits, o que oferece at 4 Gbytes de memria virtual.
Esse espao de endereamento normalmente dividido em duas partes de igual tamanho (2
Gbytes): uma destinada ao processo usurio (parte inferior) e outra destinada ao sistema
operacional (parte superior). Em outros termos, uma aplicao (processo usurio) possui,
no mximo, um tamanho de 2 Gbytes. Na realidade, o Windows 2000 oferece a opo de
modificar essa alocao inicial de forma a atribuir 3 Gbytes ao processo usurio e 1 Gbyte
ao sistema operacional. Essa possibilidade permite que certas aplicaes, como, por
exemplo, banco de dados, armazenem uma grande parcela de dados dentro do espao de
endereamento da prpria aplicao (processo). O Windows 2000 prev ainda uma
extenso, denominada de VLM (Very Large Memory) destinada aos processadores de
arquitetura de 64 bits que permite a um processo usurio alocar at 28 Gbytes de memria
virtual suplementar.
A alocao de memria por um processo Windows realizada em duas fases. Inicialmente,
o processo reserva um certo nmero de pginas da memria virtual sem necessariamente
utiliz-la. Em seguida, medida que o processo necessita de memria, essas pginas pralocadas so mapeadas a reas efetivas de armazenamento no disco (rea de swap). Essa
segunda fase conhecida, em terminologia Windows, como commit. Dessa forma, as
pginas relativas ao espao de endereamento total de um processo usurio (2 Gbytes)
podem estar em um de trs estados: livres, reservadas ou dedicadas (commited). As pginas
livres so as pginas do espao de endereamento no utilizadas pelo processo. As pginas
reservadas correspondem quelas pr-alocadas mas ainda no mapeadas a uma rea de
armazenamento real. Uma vez esse mapeamento efetuado, as pginas pr-alocadas tornamse pginas dedicadas. A distino entre pginas reservadas e pginas dedicadas justificada
pela reduo do tamanho do arquivo de paginao (swap) necessrio a um processo.
Apenas as pginas dedicadas consomem rea de armazenamento. Por questes de
desempenho, o Windows 2000 permite tambm que um processo, possuindo os privilgios
necessrios, bloqueie pginas em memria, fazendo com que essas pginas nunca sofram
14

procedimento de swapping. Como a concepo do Windows toda orientada a objetos, a


memria alocada por um processo representada atravs de um objeto memria. Dois
processos podem compartilhar um mesmo espao de endereamento referenciando um
objeto comum. Para o caso de compartilhamento de apenas uma regio de memria o
Windows oferece a abstrao de viso (view). Essa abstrao consiste em um processo
mapear uma poro de seu espao de endereamento a um objeto (section object) o qual
utilizado por outros processos para acessos compartilhados a essa regio. O mecanismo de
view bastante flexvel. Ele permite que, em caso de swapping de uma regio
compartilhada de memria, as pginas correspondentes a essa regio sejam transferidas ou
para a rea de swap ou para um arquivo especial (mapped file). possvel ainda fixar um
endereo virtual para essa regio compartilhada, permitindo assim que ela resida sempre
em um mesmo endereo (virtual) em todos os processos que a utiliza. Finalmente, a rea de
view pode ter diferentes tipos de acesso, como por exemplo, apenas leitura, leitura e escrita,
execuo e outros.
Sistema de Arquivos
O Windows 2000 possui um sistema de arquivos prprio, O NTFS (NT File System),
projetado de forma a oferecer segurana de acesso, garantia da consistncia de dados em
presena de falhas e suporte a discos de grande capacidade. O Windows oferece ainda
suporte a outros sistemas de arquivos como o FAT (MS-DOS e Windows 3,1), FAT32
(Windows 95, 98, Millenium), o HPFS (Os/2), alm de formatos para cdrom (CDFS) e
UDF (Universal Disk Format) para acesso a dados armazenados em DVDs. O grande
diferencial do NTFS em relao aos seus predecessores da linha Microsoft est em cobrir as
necessidades de alguns pontos considerados como crticos para aplicaes em ambientes
corporativos, a saber:
- Facilidade de recuperao de dados e tolerncia a falhas: para alcanar a
confiabilidade, que e requisito as aplicaes corporativas, uma das tcnicas utilizada
pelo Windows 2000 o processamento de transaes. Uma transao definida
como uma operao de E/S que altera os dados do sistema de arquivo, ou a estrutura
de diretrio do volume, de forma indivisvel, isto , cada alterao no sistema de
arquivo s considerada efetivada se for completamente realizada. O NTFS
emprega esse modelo de transaes para implementar seu recurso de recuperao do
sistema de arquivos permitindo que este seja reconstrudo, ou, ao menos, mantido
em um estado consistente, aps uma falha no sistema.
- Segurana: O NTFS explora o modelo de objetos para oferecer segurana aos
arquivos. Um arquivo aberto implementado como um objeto arquivo o qual atua

15

como um descritor, definindo os diferentes privilgios de acesso e requisitos de


segurana a este.
- Suporte a grandes discos e arquivos: o NTFS projetado para suportar de forma
eficiente acesso, manipulao e armazenamento em discos de grandes capacidades.
- Fluxos de dados mltiplos: um arquivo e seus atributos so vistos como uma
seqncia de bytes, denominada fluxo de dados. Dessa forma, no NTFS, um nico
arquivo pode ter associado vrios fluxos de dados. Essa organizao oferece uma
grande flexibilidade pois permite que o fluxo de dados que compe o arquivo seja
interpretado de acordo com o fluxo de dados de seu atributo.
- Facilidade de indexao: o NTFS permite que arquivos sejam acessados de forma
indexada atravs de atributos (chaves de pesquisa) criados para cada arquivo.
- Suporte para sistema POSIX: o NTFS implementa os recursos exigidos pelo
POSIX como diferenciao de maisculas para nomes de arquivos e diretrios e
atalhos (soft links).
O NTFS organizado sobre trs estruturas bsicas: setor, cluster e volume. O setor,
normalmente composto de 512 bytes, a menor unidade de alocao fsica do disco.
Setores contguos podem ser organizados em grupos, formando os clusters. Um cluster
constitui ento a unidade bsica de alocao do NTFS, isto , um arquivo ocupa em
disco sempre um nmero de bytes mltiplo do tamanho do cluster. Um volume
corresponde a uma partio lgica do disco. Um volume composto por uma srie de
clusters e possui de forma autocontida informaes relacionadas a esse disco lgico,
isto , estrutura de diretrio, cluster livres e ocupados, etc. Atualmente, o nmero
mximo de clusters permitido a um arquivo no NTFS 2, sendo o tamanho mximo
de um cluster limitado a 64 Kbytes.
Um volume (disco lgico ou partio) organizado em 4 regies. A primeira regio de
um volume NTFS corresponde ao setor de boot, que na realidade pode ocupar at 16
setores fsico do disco, apesar do nome setor boot. O setor de boot possui
informaes sobre o layout do volume, a estrutura do sistema de arquivos e o programa
de boot do Windows. Essa regio seguida pela Mster File Table (MTF) a qual
contm as informaes sobre todos os arquivos e diretrios (folders) desse volume,
assim como sobre o espao livre. O MTF organizado na forma de um conjunto de
registros de tamanho varivel, em que cada arquivo ou diretrio possui um registro
associado. Nesses registros, est includo o prprio MTF, j que ele tambm no deixa
de ser um tipo de arquivo. Cada registro do MTF mantm informaes relacionadas ao
atributo do arquivo (leitura, escrita, etc.), datas de criao e modificao, nome do
arquivo, descritor de segurana. A terceira regio a dos arquivos de sistema,
tipicamente de 1 Mbyte, em que so armazenados: uma cpia parcial da MFT
(informaes suficientes para recuperar erros fsicos acontecidos na NFT); um arquivo
16

de logs, referente ao controle de transaes do NTFS; um bit map que fornece a


ocupao dos clusters do volume; e uma tabela de atributos que define o tipo de acesso
e esse volume (sequencial, indexado, etc). Finalmente, a quarta e ltima regio
corresponde rea disponvel para os arquivos.
Como mencionado anteriormente, um dos principais objetivos do NTFS facilitar a
recuperao em caso de falhas. A capacidade de recuperao do NTFS essencialmente
baseada em logs de transao. Uma operao que altere o sistema de arquivos tratada
como uma transao, a qual gravada na regio de logs associada a cada volume.
Apenas aps a gravao da transao que a operao efetivada. importante
salientar que a capacidade de recuperao do NTFS foi projetada para garantir a
coerncia e a recuperao de estruturas e dados do sistema operacional e no dados de
arquivos de usurio. Dessa forma, um usurio jamais perder o acesso a um volume
(partio) em decorrncia de uma falha fsica, ou do sistema, embora possa perder
acesso ao contedo de um arquivo seu. Entretanto, para suprir a necessidade de
recuperao total, o Windows disponibiliza uma srie de ferramentas para a tolerncia a
falhas.
Windows NT
O Windows NT um sistema operacional para estaes de trabalho e servidores. Utiliza
novas tecnologias, um sistema multitarefa de 32 bits com alto nvel de segurana, capaz
de executar uma grande variedade de programas, podendo ser executado em mquinas de
diferentes fabricantes. Alm da adaptabilidade do NT e do seu ambiente robusto, o NT foi
projetado sob o modelo cliente-servidor, tanto interna como externamente. Cliente: um
nico computador de usurio que executa geralmente um processo e faz conexes de rede
para acesso ao servidor. Servidor: um computador multitarefa que executa vrios processos
simultaneamente. Servidores so projetados para uma funo especfica de prover
informaes para vrios outros micros simultaneamente. Suas principais funes so: servir
arquivos, impresso, banco de dados e comunicao aos usurios da rede. O Windows NT
(New Technology) um Sistema Operacional multitarefa, ou seja, capaz de executar vrios
programas simultaneamente, e cada programa pode executar vrios processos. Por
exemplo: voc pode copiar arquivos, imprimir um texto e trabalhar em uma planilha
simultaneamente, enquanto seu computador recebe uma atualizao de antivrus. um
sistema operacional multiplataforma, ou seja, pode ser instalado em computadores com
processadores diferentes como Intel ou DECAlpha e pode executar programas escritos para
outros Sistemas Operacionais. O Windows NT bastante seguro em relao travamento e
crashs. O NT separa cada programa em reas de memria diferentes, sendo que uma
aplicao no interfere na execuo de outras.

17

Windows NT verso 4.0


O Windows NT 4.0, foi lanado em 24 de agosto de 1996. Essa atualizao do Windows
NT 3.5x aumentou a facilidade do uso e simplificou o gerenciamento, aumentou a taxa de
transmisso da rede e forneceu um conjunto completo de ferramentas para desenvolvimento
e gerenciamento de intranets. Em sua verso de servidor, inclua servios mais rpidos de
arquivos e impresso, suporte a aplicativos robustos, recursos de comunicao baseados em
padres e um servidor Web integrado (Internet Information Server). O Windows NT
Workstation 4.0 usava a conhecida interface de usurio do Windows 95 e aprimorou o
suporte a servios de rede, fornecendo segurana e acesso fcil Internet e a Intranets
corporativas. Como o Windows NT 3.5x, o Windows NT 4.0 tambm tinha duas verses,
Workstation e Server, que serviam para os mesmos propsitos. Service packs e optional
packs subseqentes ofereceram recursos adicionais incluindo funcionalidade de autoridade
de certificao e chave pblica, suporte a smart card, escalabilidade de multiprocessamento
simtrico (SMP) aprimorada, capacidade de clustering e suporte a modelos de objetos
componentes (COM).
Segurana
A Microsoft fez com que a segurana se tornasse uma meta abrangente do sistema
operacional Microsoft Windows NT. Como resultado, o Windows NT oferece o modelo
de segurana mais robusto de todos os sistemas operacionais de servidores ou estaes de
trabalho disponveis atualmente no mercado. O subsistema de segurana centralizado do
Windows NT utiliza recursos de elaborao de segurana avanados como o logon de
caminho confivel e um Security Reference Monitor - um local nico no sistema
operacional completo que fornece servios de autorizao de recursos. Esses recursos
avanados fornecem um nvel excepcional de garantia de segurana do sistema. Uma das
razes para a estabilidade do NT sua rgida segurana. De acordo com critrios de
segurana nvel C2 do Departamento de Defesa dos Estados Unidos, os endereos de
memria devem ser protegidos de tal forma que uma aplicao no deve usar o mesmo
endereo de outra. O Windows NT tem este nvel de segurana e como resultado,
aplicaes executadas sob o NT so executadas em um espao nico de memria. Isto
significa que se esta aplicao travar, somente aquela aplicao ser afetada. Em outros
sistemas operacionais, a falha em uma aplicao pode afetar todo o sistema sendo
necessrio desligar o micro. Com o Windows NT, basta teclar CTRL + ALT + DEL e
finalizar o programa que est travado, mantendo o micro ligado e os outros programas
intactos.

18

Segurana no Internet Information Server


Desde 1996, com o lanamento do Windows NT 4.0 com o Internet Information Server
que a utilizao deste produto tem se popularizado. Contudo, a "fama" do IIS de um
pacote de servios para a Internet completamente inseguro. Infelizmente, esta afirmao
possui um sentido indireto muito mais preocupante do que as falhas de segurana
descobertas no produto. Significa que os profissionais que instalam servidores Windows e
IIS no esto fazendo seu dever de casa ao corretamente configurar um servidor exposto
para a Internet, potencial alvo de qualquer hacker ou defacer. Um servidor Windows 2000 /
XP ou mesmo o IIS podem ser to seguros quanto qualquer outra soluo, desde que
corretamente mantidos e configurados.

Contexto de Segurana
O primeiro conceito que se deve ter em mente ao instalar o IIS, de que o Windows NT /
2000 / XP possui um principio de unidade ou contextos de segurana. Estes contextos de
segurana se traduzem, no Windows NT 4.0, nos famosos domnios, com seus Primary
Domain Controllers e Backup Domain Controllers. Estes contextos, se corretamente
configurados, proporcionam ao administrador uma enorme liberdade e flexibilidade na
configurao de segurana, que passa a ser centralizada.
Entretanto, em redes que possuam a exigncia de serem seguras, traz tambm um risco: o
comprometimento de um dos controladores de domnio traz toda a segurana abaixo, pois
todas as contas so cadastradas e mantidas no mesmo. Para quem usa Windows 2000 / XP,
foi introduzido o conceito de rvore, ou, no caso especfico, do AD - Active Directory.
Algumas caractersticas mudaram, como o fato de que no existem mais Primary ou
Backup Domain Controllers. Contudo, o comprometimento de um Domain Controller traz
tantos problemas quanto o comprometimento de um PDC ou BDC.
Portanto, quando se deseja colocar um servidor IIS no ar, quanto mais restrito for o
contexto
de
segurana,
melhor.
Assim,
temos
duas
possibilidades:
1. Domnio ou AD separado para servidores Web .Em redes grandes, tipicamente em
hosting centers, existe a necessidade de se utilizar as facilidades de controle de segurana
centralizadas. Neste caso, deve-se posuir um domnio ou rvore AD separada APENAS
para os servidores. Nenhuma outra parte da rvore ou qualquer outro domnio deve confiar
nas contas ou neste contexto de segurana, que deve ser exclusivo para este fim.
O servidor web deve ser instalado como MEMBER SERVER desta rvore ou domnio. Sob
nenhuma hiptese, deve ser um controlador de domnio de qualquer natureza.
19

2. servidor Web instalado como stand alone server. Em redes com poucos servidores,
tipicamente em um ambiente corporativo que no possui a finalidade de ser um provedor de
servios (hosting center por exemplo), o servidor web ou de servios Internet deve ser um
stand alone server, sem pertencer a nenhum domnio, ou sem ser um controlador de
domnio. Soluo mais segura e interessante para ambientes com poucos servidores onde o
custo deve ser mantido baixo (no possam existir controladores de domnio especficos para
o ambiente ou contexto de provimento de servios Internet).
Instalao
O trabalho de configurao de segurana do IIS comea na instalao do Windows.
Apenas os componentes necessrios devem ser instalados, e servios e programas
desnecessrios devem ser excludos da instalao. Servios como Simple TCPIP Services,
ou SNMP no devem ser usados. Alm de absolutamente no serem necessrias, aumentam
o risco de invaso. Existe um texto no livro "Firewalls and Internet Security", escrito por
dois grandes especialistas na rea, Cheswick e Bellovin, que traduz isso de forma simples e
engraada, mas eficaz:
Axioma 1 (Murphy) Todos os programas tm bugs.
Teorema 1 (Lei dos Programas Grandes) Programas grandes possuem ainda mais bugs do
que o seu tamanho pode indicar.
Prova: por inspeo
Corolrio 1.1 Um programa relativo a segurana possui bugs de segurana.
Teorema 2 Se voc no executar um programa, no importar se ele possui ou no bugs.
Prova: como em todos os sistemas lgicos, (falso ==> verdadeiro) = falso.
Corolrio 2.1 Se voc no executar um programa, no importar se ele possui ou no bugs
de segurana.
Teorema 3 Mquinas expostas devem rodar to poucos programas quanto possvel; os que
rodarem, devem ser to pequenos quanto o possvel.
Prova: corolrios 1.1 e 2.1
Corolrio 3.1 (Teorema Fundamental dos Firewalls) A maioria dos hosts no consegue
atender s nossas necessidades: eles rodam programas demais que so grandes demais.
Desta forma, a nica soluo isolar atrs de um firewall se voc deseja rodar qualquer
programa que seja.
(Firewalls and Internet Security: Repelling the Wily Hacker William Cheswick /Steven
Bellovin)

20

A instalao do IIS em si uma das fases que mais preocupa. A instalao PADRO dele
coloca muita coisa sem utilidade, e diversos componentes susceptveis a ataque e invaso
no servidor. Todo cuidado deve ser tomado nesta fase.
A instalao deve IGNORAR componentes de exemplo, os sites de tutorial, e
principalmente, as ferramentas de gerncia em HTML. APENAS o servidor Web deve ser
instalado. Caso demais servios sejam necessrios, como servidor de FTP ou SMTP, apenas
estes componentes devem ser selecionados, e at a documentao deve ser deixada de fora.
Se existe a necessidade de experimentar, brincar com o servidor (testes) ou ler a
documentao, faa-o em um computador separado, especificamente para esta funo.
A Microsoft tambm publicou ferramentas de gerncia de servidores Windows NT / 2000
atravs de pginas web, ou do IIS. Estas ferramentas devem ser ignoradas sumariamente,
inclusive a quem vem com o prprio IIS.

Consideraes sobre Ambiente de Desenvolvimento


Uma das principais falhas encontradas em servidores de produo so ambientes usados
tambm para desenvolvimento, em um mesmo servidor. Servidores de desenvolvimento
devem ser completamente isolados da Internet, e serem especficos para esta finalidade.
Servidores de produo devem possuir apenas componentes usados na produo, no no
desenvolvimento do site ou de aplicaes. A grande maioria das ferramentas de
desenvolvimento "abre" demais a segurana em favor da agilidade no desenvolvimento.
Patches e atualizaes
A correta instalao de atualizaes e patches de segurana fundamental e requisito
bsico para um servidor seguro.
Alerter
Permite a emisso de alertas sob determinadas condies.
Computer Browser
Permite que o computador participe de eleies para master browser de uma rede. Divulga
informaes para possveis invasores, por exemplo, se o servidor ou no o master browser
de uma rede, o que pode potencialmente revelar se o servidor um controlador de domnio.
Indexing Service / Index Server

21

Servio que cria ndices de documentos para pesquisa mais rpida. Um dos principais
calcanhares de aquiles do Windows em termos de segurana. No deve ser usado.
Messenger
Permite o envio de mensagens ou noticias de computador para computador, via NetBIOS.
Pode ser usado para revelar nomes de usurios vlidos para um potencial ataque de fora
bruta.
Network DDE
Antigo servio que usa a infra-estrutura NetBIOS. possui diversas falhas de segurana.
Print Spooler
Spool de impresso. Pode ser usado em um ataque DoS.
Remote Registry
Permite a modificao remota do registro, assim como a importao de polticas a partir de
um controlador de domnio. Caso possua o MS Exchange no pode ser parado.
Server
Funcionalidade bsica da rede Microsoft, responsvel pela funcionalidade NetBIOS /
SMB. Os compartilhamentos de rede, por exemplo, uma de suas funes.Em servidores
Internet, definitivamente no deve ser usado.
Task Scheduler (usado apenas no Windows NT ou no 2000)
Permite o agendamento de tarefas e pode ser usado para executar remotamente comandos.
No deve ser parado no Windows XP, pois o mesmo usa este servio para manutenes
internas do sistema.
Telnet
Servidor de TELNET. O TELNET no deve ser usado em nenhum sistema operacional,
nem mesmo em UNIX, quanto mais em NT / 2000 / XP. Aps a parada deste servio, devese ir ao painel de controle, adicionar e remover programas, Instalao do Windows, e
remover todos os componentes desnecessrios.
Configurao Internet Information Server
A primeira coisa que deve ser feita aps a instalao do IIS a parada ou remoo do site
web padro (Default Web Site). Para isto: Deve ser mudada a porta do site para qualquer

22

outra que no esteja sendo usada, como 8888 por exemplo, e que esteja sendo
convenientemente filtrada no firewall. Em Segurana (Security) deve se configurar o site
padro para ser somente acessado com autenticao integrada (desmarque qualquer outra
opo); Tambm deve ser configurado o site para no ser acessado por nenhum endereo IP,
nem mesmo 127.0.0.1, colocando Deny, e no configurando nenhum IP na lista; finalmente,
deve ser parado o site. Assim, estaremos com uma configurao quase pronta para receber o
novo site. Cria-se um novo site web, de preferncia em um disco isolado (partio lgica)
apenas para esta finalidade (ao instalar o Sistema Operacional, uma tima prtica installo em uma partio, e deixar outra para dados separada). Tenha certeza de criar um diretrio
que no participe de uma estrutura j existente, para ser o root do site web. Uma vez
configurado o site, na porta 80, configure-o tambm para funcionar apenas no endereo IP
que deve (e no "All unasigned"). Agora, devemos configurar as extenses que o servidor
ir interpretar. Devem ser removidas todas e quaisquer extenses que no esto em uso, e,
inclusive,
as
extenses
usadas
pelo
Index
Server.
Exemplo de extenses a remover: .htm, .idq, .htr, .idc, .printer. Percebe-se que a remoo
das extenses deve ser realizada para cada site criado (caso exista mais de um). Ainda sobre
o Index Server, deve ser desmarcado a opo "Index this resource" na tab "Home
Directory". Ainda nesta tab, especial ateno deve ser dada a opo "Write" que no deve
ser usada. Nas permisses de execuo, deixe "Scripts Only". Caso a permisso de
execuo seja necessria, o faa em um diretrio separado, e sem direito de leitura ou
escrita. Uma tima prtica tambm e usar o recurso de espao de memria separada.
Entretanto, algumas aplicaes no funcionaro. Neste caso, uma questo de tentativa e
erro.

FrontPage Extensions
As extenses de FrontPage so uma fonte maravilhosa para hackers e defacers. Deve-se
procurar evitar utiliz-las. Caso no seja possvel, uma boa medida baixar do site da
Microsoft a verso mais atual, e, no momento da instalao, ao ser perguntado sobre a
segurana, responda que deseja manter o nvel mais alto.
Firewall
Um quesito muito importante, para qualquer computador com servios Internet, estar
atrs de um Firewall corretamente configurado. Obviamente, como estamos falando de um
servidor Web, que geralmente usa a porta 80, apenas esta porta deve estar liberada,
nenhuma outra. Muitos utilizam o Terminal Service do Windows 2000 / XP para gerncia
remota. Se for o caso, deve ser liberado a porta 3389/tcp apenas para os IPs ou redes que
podem realizar tal gerncia. Apesar de no existirem ataques conhecidos que permitam
invadir um computador pelo Terminal Service, existem ataques DoS que podem tirar o
23

servidor do ar. Personal Firewalls devem ser evitados. Muitos deles so eficientes, mas
apenas para uso em estaes de trabalho. Em servidores de alto trfego, os Personal
Firewalls podem ter um impacto negativo muito grande na performance de rede do
servidor. Caso as medidas acima sejam implementadas, ser muito difcil para algum
invadir o servidor.
Gerncia de Processos
Um processo representa uma unidade de propriedade de recursos e de trabalho a ser
realizado. um dos meios que o sistema operacional dispes para organizar as muitas
tarefas que ele precisa realizar. No Windows NT, a parte do sistema operacional
responsvel pela criao, gerenciamento e excluso de processos implementada pelo
gerenciador de processos que fornece um grupo de servios nativos de processo que os
subsistemas de ambiente possam usar para emulas as estruturas de processos que lhes so
nicas. Esta meta evoluiu com o objetivo do NT de proporcionar vrios ambientes de
sistema operacional que podem ser executados no modo usurio. Os processos nativos do
NT tm como caractersticas que o diferenciam dos processos de outros sistemas
operacionais:
o

So implementados como objetos e so acessados usando servios de objeto;

Pode ter vrios threads sendo executados em seu espao de endereamento.

Tanto os objetos de processo quanto os objetos de thread tm capacidade


interna de sincronizao.

O gerenciador de processos do NT no mantm relacionamento pai/filho


nem nenhum outro tipo de relacionamento entre processos por ele criado.

Se abstrairmos, um processo no Windows NT compreende o seguinte:


o

Um programa executvel, que define cdigos e dados iniciais.

Um espao de endereamento privado, que um conjunto de endereos de


memria virtual que o processo pode usar.

Recursos do sistema, como semforos, portas de comunicao e arquivos,


que o sistema operacional aloca ao processo durante a execuo do
programa.

Pelo menos um thread (linha de execuo).

Estrutura dos Processos


24

No Windows NT, desenvolvedores que escrevem aplicaes em Win32, MS-DOS e


POSIX nunca vem os threads e processos nativos do NT. O subsistema Win32 e outros
subsistemas protegem os programadores desses threads e processos, criando ambientes
personalizados onde um programador do Win32 v apenas processos relacionados ao
Win32, um programador de POSIX v apenas processos relacionados ao POSIX e assim
por diante. Uma das principais tarefas de um subsistema de ambiente do Windows NT
emular a API que as aplicaes clientes do subsistema esto esperando (as APIS Win32 ou
POSIX, por exemplo). Uma outra importante funo implementar as estruturas de
processo exigidas por esses clientes. Os recursos necessrios a um ambiente tpico so:
o

Criar e terminar processos e linhas.

Registrar e manter relacionamentos entre processos.

Efetuar operaes (tanto locais quanto em rede) em nome de um processo


cliente.

Ler, gravar e manipular o espao de endereamento de um processo cliente.

Interromper um thread cliente, possivelmente alterando seu contexto no


modo usurio e reiniciando-a.

Capturar e lidar com excees geradas pelos processos clientes.

Impedindo Uso Inadequado


Para impedir o uso inadequado, o sistema de segurana do Windows NT (especificamente
seus mecanismos de proteo ao objeto) assegura que tais operaes sero sempre
cuidadosamente controladas. No nvel mais bsico, os subsistemas de ambiente do
Windows NT so simplesmente processos ordinrios. Uma vez que virtualmente todos os
processos do modo usurio so criados por subsistemas de ambiente, estes controlam as
aes de todos os processos usurios do sistema.
Espao de Endereamento
O NT utiliza, entre outros recursos, a implementao da Memria Virtual para manter
cada processo em seu espao de endereamento sem que haja interferncia entre os
processos. Toda vez que um processo usa um endereo de memria, o sistema de memria
virtual traduz o endereo para um endereo fsico. Ele tambm impede que os processos
acessem diretamente a memria ocupada por outros processos ou pelo sistema operacional.
Para executar o cdigo do sistema operacional ou para acessar a memria do sistema

25

operacional, um thread tem de estar sendo executado no modo irrestrito do processador


(modo kernel).
Coleo de Recursos
Cada processo est anexado um conjunto de diversos recursos do sistema. A Ficha de
Acesso descreve as informaes de segurana relacionadas ao processo. Tambm vemos
uma srie de estruturas de dados criadas pelo gerenciador de memria virtual (VM) para
indicar os endereos virtuais utilizados pelo processo. O processo no pode ler nem alterar
diretamente estas estruturas; o gerenciador de memria virtual cria-as e modifica-as
indiretamente quando o processo aloca memria. A tabela de objetos indica que o processo
est executando em um nico thread, est com um arquivo aberto e utilizando uma seo de
memria compartilhada.
Gerncia de Memria
Trabalhando com mecanismo de gerncia de memria virtual (VM Menager) o Windows
NT viabiliza uma forma flexvel e eficiente para operacionalizao de eventos neste
mecanismo. Usando tcnicas de paginao, o espao de endereamento virtual mapeado
no espao de endereamento fsico atravs da lgica do processador. Neste mecanismo, a
gerncia de memria implementa a tcnica de paginao, que responsvel por manter em
memria fsica somente parte da memria virtual em uso. Especificamente no Windows
NT, o tamanho da pgina definido em funo do tipo de processador, permitindo que a
variao seja de pginas de 4 a 64 Kbytes. Sendo assim tanto a memria virtual como a
memria fsica so divididas em blocos com o mesmo tamanho. O conjunto de frames que
um processo possui em determinado instante de tempo na memria principal e denominado
working set. Quando um programa execute, parte de seu cdigo e/ou dados esta no working
set, enquanto que o restante e deixado em disco. Embora algumas paginas estejam no
working set do processo e, consequentemente, na mem6ria principal, elas ainda esto
escritas em termos de endereos virtuais e, portanto, sues instrues precisam ser mapeadas
antes de serem executadas pelo processador. Cada pgina da mem6ria virtual "era, na tabela
de paginas, um registro denominado Page Table Entry (PTE). Todo PTE tem, entre outras
informaes, um bit que indica se a pagina associada aquela PTE esta ou no no working
set (bit de validade). O PTE tambm indica que uma pagina no se encontra no working set
do processo, mas pode ser recuperada com seu contedo intacto, atravs do flag de
transio (transition flag). Alem disso, o PTE possui flags que permitem implementar a
proteo ao nvel de pagina. Sempre que uma pagina e referenciada, o bit de validade da
entrada da tabela de paginas correspondente e verificado. Caso ele esteja ligado indicara
que esta e uma pagina valida, pode esta no working set. Desta forma o sistema poder

26

localizar a pagina na memria real, atravs das demais informaes contidas no PTE. Por
outro lado, se o bit de validade no estiver ligado, significara que esta e uma pagina novalida, no pertencendo ao working set do processo. Neste cave, podemos dizer que
ocorreu um page fault, que e a exceo gerada quando uma pagina referenciada no esta no
working set. Quando isto acontece, o sistema se encarregara de trazer a pagina pare o
working set, atualizar o PTE e executar novamente a referencia a pagina, que agora ser
valida. No caso da referncia a uma pgina vlida, o processador deve traduzir o endereo
virtual gerado pelo programa em um endereo fsico. A memria virtual ento dividida
em blocos de memria virtual denominados de pginas virtuais, enquanto a memria fsica
dividida em blocos de clulas denominados pginas fsicas. O mecanismo de mapeamento
atravs de uma tabela de pginas realiza ento o mapeamento de ambas as memrias.

Sistemas de Arquivos
CD-ROM File System (CDFS)
O sistema de arquivo CDFS foi desenvolvido pare o Windows NT pare implementar leitura
em dispositivos de CD-ROM.
File Allocation Table (FAT)
O sistema de arquivo FAT foi desenvolvido pare sistemas baseados em MS-DOS e
posteriormente utilizados no MS-Windows e OS/2. O FAT tem pouca preocupao com
desempenho e segurana, sendo que nomes de arquivos esto limitados a oito caracteres,
um ponto e mais trs caracteres de extenso.
High-Performance File System (HPFS)
Desenvolvido pare sistemas OS/2, o sistema de arquivo HPFS possui major compromisso
com desempenho e segurana que o sistema FAT. Nomes de arquivos nesse ambiente
podem ter no mximo 254 caracteres.
Windows NT File System (NTFS)
O sistema de arquivo NTFS foi projetado especialmente pare o Windows NT com o intuito
de oferecer alto grau de segurana e desempenho. A seguir destacamos suas principais
caractersticas: nomes de arquivos podem ter no mximo 255 caracteres, incluindo brancos;
nomes de arquivos FAT podem suportar ate 255 caracteres; parties NTFS dispensam o
uso de ferramentas de recuperao de erros; implementa proteo de arquivos e diretrios
mas no implementa encriptao; menor partio recomendada e de 50 Mbytes; - no pode

27

ser implementado em disquetes; reduz a fragmentao no disco, na medida em que tenta


sempre utilizar espaos contguos de disco pare a gravao de arquivos. O recurso de
nomes de arquivos longos (long file nameLFN) implementado no NTFS pode ser
estendido pare parties FAT. Aplicaes que no permitem visualizar nomes longos
podero ter acesso aos arquivos e diretrios atravs de um codinome (alias), criado pelo
Windows NT.
Windows XP
A denominao XP vem da palavra exPerience. O Windows XP foi idealizado com o
objetivo de unificar, em torno de um nico produto, seu mercado corporativo com seu
mercado de usurios domsticos. Na realidade, essa unificao feita atravs de duas
verses do Windows XP: o Windows XP Personal Edition, destinado ao mercado
domstico, que substitui o Windows 95, 98, Millenium, NT (verso workstation); e o
Windows XP Professional Edition, voltado ao mercado corporativo que substitui o NT nas
suas verses server.
As principais novidades introduzidas pelo Windows XP esto relacionadas com
mecanismos de proteo ao sistema de arquivos e conectividade Internet. Sob o ponto de
vista de proteo do sistema de arquivo, o Windows XP impede que arquivos antigos
substituam verses mais recentes. No caso de drivers de dispositivos, possvel restaurar a
verso anterior na eventualidade da instalao de um driver mais recente apresentar
problemas. O suporte proteo, na presena de mltiplos usurios, foi estendida em
relao aos mecanismos oferecidos pelo Windows 98 e pelo Windows Millenium
embutidos em seu prprio ncleo. Em relao conectividade em rede, quando conectado
Internet, o Windows XP oferece ao usurio algumas funcionalidades tpicas de firewall
embutidas em seu prprio ncleo. Alm disso, uma srie de ferramentas buscando
simplificar o uso do Windows por usurios leigos forma introduzidas, como por exemplo,
gravao de cdrom diretamente a partir do Windows Explorer, emprego de temas para tela
de fundo, atualizaes automticas, mecanismos para publicao de arquivos de imagens e
de texto na Internet, entre outros.
Entre as novidades do Windows XP, est ainda um mecanismo de proteo como pirataria
denominada de WPA (Windows Product Activation). Seu funcionamento baseado na
criao de um cdigo nico, vlido apenas para o computador no qual o Windows XP
instalado. Esse cdigo criado no momento da instalao e obtido atravs de
identificadores prprios nicos a cada computador, tais como nmero de srie da BIOS, do
disco rgido, o endereo fsico da placa de rede (endereo MAC), etc. Esse cdigo ento
informado Microsoft, que imediatamente gera e reenvia um cdigo de liberao para o

28

uso do Windows XP. Ambos os cdigos, o gerado na instalao e o cdigo de instalao,


so cadastrados na Microsoft. Sempre que houver uma modificao de hardware da
mquina, ou a tentativa de burlar o sistema de ativao do Windows XP, o usurio dever
repetir o procedimento de ativao do Windows XP ou seja, recontactar a Microsoft e gerar
uma nova chave de ativao. Esse procedimento criou, na comunidade de usurios, muita
controvrsia devido a rumores de que a Microsoft aproveitava-se dele para obter
informaes adicionais sobre a configurao da mquina, como por exemplo, os softwares
instalados. Essa polmica levou anlise das transaes realizadas, pelo mecanismo WPA
por consultores independentes que concluram que apenas o cdigo de ativao enviado
Microsoft.
O Windows XP foi desenvolvido com a preocupao de manter a compatibilidade com
vrias aplicaes j existentes para a famlia Windows, principalmente jogos e multimdia.
A Microsoft divulgou que todos os aplicativos existentes para Windows 98, Millenium e
Windows NT continuaro a funcionar normalmente no Windows XP. A mesma preocupao
de compatibilidade existe a nvel de hardware, assim sendo, o Windows XP dispe de uma
grande gama de drivers para os mais diversos perifricos. Alm disso, possvel instalar em
uma mquina Windows XP drivers existentes para outras verses da famlia Windows.
As diferenas entre as verses Windows XP Personal Edition e Windows XP Professional
Edition esto relacionados com desempenho e atividades de gerenciamento. A verso
Professional explora o multiprocessamento real oferecido pelas mquinas
multiprocessadoras, ao passo que a verso Personal otimizada para mquinas
monoprocessadoras.
Sob o ponto de vista do Sistema Operacional, o Windows XP um Sistema Operacional de
32 bits e herda em muito a arquitetura NT 5.0. As modificaes, segundo a Microsoft, esto
em otimizaes de algoritmos bsicos e nas estruturas de dados internas ao ncleo. Essas
melhorias fazem com que o Windows XP apresente um desempenho melhor que seus
antecessores. O Windows XP, assim como o Windows 2000 (NT 5.0), no fornece a
capacidade de realizar boot em modo DOS. A compatibilidade com aplicativos que rodam
sob DOS (como o Clipper) feita exatamente da mesma forma que no Windows 2000, ou
seja, atravs de um emulador DOS.

29

CONCLUSO

Atravs do assunto descrito neste trabalho, pode-se verificar que os sistemas operacionais
Linux e Windows, seja ele da verso 2000 ao XP, so sistemas operacionais que atendem a
maioria dos requisitos fundamentais para suprir as necessidade de diferentes classes de
usurios que possuam ou no um alto grau de conhecimento em informtica.
Cada Sistema Operacional estudado, possui caractersticas um pouco diferentes em relao
ao gerenciamento de memria, escalonamento, sistemas de arquivos e segurana. No
Windows percebemos, alguma semelhana entre suas verses, algumas melhoradas ou
adaptadas para a prxima verso que seria lanada, mas em geral, todos os Sistema
Operacionais criados seguiram uma linha de desenvolvimento que favorea o usurio, que
na verdade o maior beneficirio dessa tecnologia.

30

BIBLIOGRAFIA

JENNING, Roger. Usando Windows NT SERVER 4 3 Edio. Rio de Janeiro, 1997.

www.unicamp.br
www.ufrn.br
www.microsoft.com.br
www.babbo.com.br
www.boadica.com.br
www.lunixit.com.br

31

32