Sistemas Operacionais

Propaganda
Falaremos sobre sistemas operacionais e seus respectivos sistemas de arquivos, mas antes
teremos que conhecer alguns elementos importantes.
Unidade de disco
A unidade de disco será o local aonde ficará locado os sistemas de arquivos. Uma unidade de
disco constitui-se de um ou mais pratos sobrepostos, cobertos por uma camada magnética.
Existe uma cabeça de leitura-gravação para cada superfície. Cada superfície é dividida em anéis
concêntricos (as trilhas) e uma trilha é dividida em setores, onde um setor tem, normalmente,
512 bytes.
Demonstra os discos magnéticos com seus setores, trilhas e cilindros.
As trilhas são numeradas de fora para dentro. Um conjunto de trilhas com o mesmo raio forma o
cilindro. As cabeças de leitura-gravação são movimentadas conjuntamente, posicionando-se no
mesmo cilindro.
Essa geometria básica fornece um modelo para localização do setor, chamado CHS (cylinder,
head, sector). O número do cilindro, juntamente com o numero da cabeça, fornece a localização
da trilha. Identificando-se a trilha, pode-se localizar um determinado setor. Esse esquema é
tridimensional, sendo necessário conhecer sempre os três parâmetros para localização do setor.
O padrão LBA (logical block address) é mais simples. Os setores são identificados
seqüencialmente (linearmente), começando da trilha mais externa. Se houver mais de um prato,
cada superfície é numerada (a partir de zero) -- o setor zero é o primeiro setor na trilha zero,
cabeça (superfície) zero. Essa é uma identificação unidimensional. Cabe à controladora no disco
transformar esse número lógico de setor com a sua localização física no disco (mapeando
cilindro, cabeça e setor correspondente).
Apesar dos HD's virem fisicamente formatados já de fábrica, é preciso particioná-los e formatálos logicamente para serem usados por um sistema operacional.
Uma partição é uma divisão de um disco rígido (SCSI ou ATA). Cada partição pode conter um
sistema de arquivos diferente. Consequentemente, vários sistemas operacionais podem ser
instalados na mesma unidade de disco.
Sistema de arquivos
É uma organização de dados e metadados em um dispositivo de armazenamento.
São arquivos gerenciados pelo sistema operacional, aonde eles são estruturados, nomeados,
acessados, utilizados, protegidos e implementados.
O Sistema de Arquivos é a parte do Sistema Operacional mais visível para o usuário. O tempo
todo, usuários manipulam arquivos contendo textos, planilhas, desenhos, jogos, etc. Cabe ao
Sistema Operacional o suporte para a manipulação destes arquivos.
Conceito de Arquivos
Segundo o Dicionário Houaiss, podemos definir Arquivos como: “conjunto de dados
digitalizados que pode ser gravado em um dispositivo de armazenamento e tratado como ente
único [Arquivos podem conter representações de documentos, figuras estáticas ou em
movimentos, sons e quaisquer outros elementos capazes de serem digitalizados.”
Todo arquivo possui um nome e algumas propriedades, como tipo, tempo de criação, tamanho,
nome do proprietário entre outras e ficam armazenados em diretório (ou pastas), que são
utilizados para organizar estes arquivos.
Formatação
Existem dois tipos de formatação: a formatação física e a formatação lógica. Formatação física
significa dividir a superfície do disco em vários setores, trilhas e cilindros. Esta é feita somente
uma vez na fábrica, qualquer tentativa de formatar fisicamente o HD não terá resultados, ou irá
inutilizá-lo. Esta opção existe apenas em HD's muito antigos como os de padrão de codificação
MFM e RLL. Já a formatação lógica acontece através do comando FORMAT do MS-DOS, do
Fdisk, e outros programas formatadores. Na formatação lógica, nenhum dado do HD é apagado,
apenas é rescrito a Tabela de Alocação de Arquivos (FAT - File Allocation Table). Como o
sistema operacional se orienta através desta tabela, reconhecerá o disco como estando vazio. Até
serem rescritos porém, os dados antigos continuam lá, e podem ser recuperados através de
programas específicos. O comando format /u quando usado em um disquete acarreta em uma
formatação física, onde são remarcados todos os setores. Porém, quando usado em um HD tem
um efeito exatamente igual ao comando FORMAT, a única diferença neste caso, é que não é
salva uma imagem antiga da FAT, mas todos os dados continuam lá, tanto que se você antes de
usar este comando fizer uma imagem da FAT usando um utilitário como o Image do Norton,
poderá recuperar todos os dados do seu HD.
Formatação lógica.
Esse tipo é o mais conhecido e utilizado por grande parte dos usuários de computador. O meio
de armazenamento é estruturado via software, de forma que possa abrigar futuramente
informações requisitadas pelo usuário. Ao realizar-se uma formatação lógica, é criado o
chamado sistema de arquivos, de acordo com formato estipulado pelo sistema operacional
utilizado. Em contradição à formatação física realizada na fábrica, podem-se realizar inúmeras
formatações lógicas sempre que necessário, e sem que com isso o meio de armazenamento seja
prejudicado (ao contrário do que muitos usuários acreditam).
Uma formatação lógica ainda pode ser dividida em 2 segmentos:
■Rápida: Somente o índice (tabela de alocação) que referencia os arquivos é apagado, fazendo
com que o sistema operacional entenda que o dispositivo encontra-se vazio. Se o meio de
armazenamento possuir erros lógicos em sua estrutura, essa formatação não irá garantir que os
mesmos sejam corrigidos. Outra característica interessante é que, caso uma formatação rápida
tenha sido realizada por acidente, os dados ainda poderão ser recuperados.
■Completa: Além de apagar o índice mencionado, o sistema operacional varrerá o meio de
armazenamento em busca de erros lógicos, corrigindo-os (dentro do possível). Durante a
varredura, o sistema aproveitará também para excluir os dados antigos que se encontram nos
setores pesquisados. Por percorrer todo o dispositivo, pode demorar muito tempo para ser
concluído (dependendo do tamanho do meio, bem como dos erros contidos no
dispositivo).Nesse tipo de formatação ainda pode-se enquadrar as chamadas “formatações de
baixo nível” (low level format), geralmente disponibilizadas por fabricantes de meios de
armazenamento, em especial de discos rígidos. Trata-se de uma forma que busca
minuciosamente erros na superfície do dispositivo, justamente pelo fato de ter sido elaborada
exclusivamente para os produtos da empresa fabricante (podendo-se inclusive isolar erros
físicos contidos na superfície do meio). Comumente são encontrados nesse quesito ferramentas
exclusivas, como o “zero fill”, o qual consiste em uma formatação que preenche cada setor do
dispositivo com zeros (preza pela confidencialidade, pois assegura que os antigos dados não
sejam acessíveis por outras pessoas).
Opção para alternar entre uma formatação rápida ou completa no Windows Vista
Existem vários tipos de sistema de arquivos:
•FAT: utilizado pelo MS-DOS, Windows 3.x e Windows 95 mas, perfeitamente reconhecido
por todos os sistemas atuais (Windows XP e Linux). Este sistema não suporta os discos rígidos
com mais de 2 Go. O tamanho dos clusters é bem grande, resultando em uma perda de espaço
do disco.
•FAT32: É uma evolução do Fat, reconhecido por todos os sistemas exceto pelo MS-DOS,
Windows 3.x, Windows 95 Primeira Edição, Windows NT 3.5 e 4. Os discos podem ter até 2
TB (1 Terabyte vale 1024 GB). Os clusters são menores.
•NTFS: utilizado pelo Windows NT, 2000 e XP. Linux reconhece este sistema
experimentalmente porém, é melhor se limitar à leitura, sem gravação, para evitar a perda de
dados. Este sistema não é possível para discos inferiores à 400 MB por que ele requer muito
espaço para a estrutura do sistema. O tamanho dos clusters não depende do tamanho do disco
(ou da partição) e você pode escolhê-lo à vontade. Em resumo, este sistema repara,
automaticamente, os setores defeituosos. Por outro lado, os direitos administrativos são
suportados.
•Linux Ext2 (Ext2FS): utilizado pelo sistema Linux, não é reconhecido pelo MS-DOS e todos
os sistemas do Windows. Os discos podem ter até 2 GB e os nomes dos arquivos até 255
caracteres. Os direitos administrativos são suportados.
•Linux Ext3 (Ext3FS): utilizado pelo sistema Linux, não é reconhecido pelo MS-DOS e todos
os sistemas do Windows. Os discos podem ter até 4 TB. Esta é uma melhoria do Ext2FS ao qual
foi adicionada ao registro dos arquivos, para corrigir qualquer corrupção, rapidamente.
•Reiser (ReiserFS): utilizado pelo Linux, este sistema é registrado a fim de corrigir as
corrupções e não é reconhecido pelo MS-Dos e pelo Windows.
•Linux Swap: utilizado pelo sistema Linux e não é reconhecido pelo MS-DOS e todos os
sistemas do Windows. Este sistema serve para gerenciar o arquivo de troca do Linux (o Swap).
•Não formatado: É uma partição virgem, sem qualquer sistema de arquivos.
Saiba que existem algumas soluções, criticadas por alguns, para poder ler os sistemas originais
do Windows :
•Ext2 / Ext3 : Explore2fs
•Reiser : rfstool
Em sistemas GNU/Linux, ou Unix-like de uma maneira geral, quando se desejar acessar um
sistema de arquivos seja uma partição, um disquete, um CD-ROM ou diferentes dispostivos tais
como zip drive, pen-drives dentre outros, é necessário, inicialmente, montar o sistema de
arquivos antes de começar a usá-lo.
Atualmente, a maioria dos sistemas provêem mecanismos de automontagem, onde o sistema faz
automaticamente a montagem para o usuário. Entretanto, algumas vezes temos que fazer esse
processo manualmente, o que é feito utilizando-se o comando mount.
O comando mount é utilizado para montar um dispositivo na hierarquia do sistema de arquivos
O comando mount é usado para incluir o sistema de arquivos, de um dispositivo qualquer, à
grande árvore de arquivos.
Pronto?
Já temos uma unidade de disco particionada ou não , formatada com um ou mais sistemas
operacionais, com seus respectivos sistemas de arquivos. Mas quem faz o meio do caminho
entre a Bios e o sistema escolhido?
BIOS
Em computação Basic Input/Output System (Sistema Básico de Entrada/Saída). O termo é
incorretamente conhecido como Basic Integrated Operating System (Sistema Operacional
Básico Integrado) ou Built In Operating System (Sistema Operacional Interno). O BIOS é um
programa de computador pré-gravado em memória permanente (firmware) executado por um
computador quando ligado. Ele é responsável pelo suporte básico de acesso ao hardware, bem
como por iniciar a carga do sistema operacional.
Existe um setor no disco também chamado de “Setor de Boot Mestre” (MBR), onde é
encontrada a tabela de partição do disco que dará boot.
A MBR é lida pelo BIOS, que interpreta a tabela de partição e em seguida carrega um programa
chamado “Bootstrap”, que é o responsável pelo carregamento do Sistema Operacional, no setor
de boot da partição que dará o boot.
O MBR e a tabela de partição ocupam apenas um setor de uma trilha, o restante dos setores
desta trilha não são ocupados, permanecendo vazios e inutilizáveis, servindo como área de
proteção do MBR. É na verdade, uma área do HD reservada para gravação das instruções
iniciais do computador.Também conhecida por trilha zero.
Disquetes, Zip-disks e CDs-ROM não possuem MBR nem tabela de partição. Estes são
exclusivos dos discos rígidos.
Enfim, já temos tudo que precisamos para ter nosso sistema operacional e seu sistema de
arquivos funcionando. Veremos a seguir as principais chamadas de sistemas (system call)
Chamadas de Sistema
Podemos definir o conjunto das Chamadas de Sistema como sendo a interface entre o Sistema
Operacional e seus programas aplicativos. Vale ressaltar que as Chamadas de Sistemas exibidas
aqui se referem especificamente ao sistema POSIX (Interface Portável entre Sistemas
Operacionais), sistema de normalização criado por volta de 1985 pela IEEE, e tem como
objetivo garantir a portabilidade do código-fonte de um programa a partir de um sistema
operacional que atenda as normas POSIX para outro sistema POSIX. Como a verdadeira
mecânica de uma chamada de sistema depende muito da máquina e freqüentemente deve ser
expressa em código assembler, uma biblioteca de procedimentos pode ser fornecida para tornar
possível fazer chamadas de sistema a partir de programas em C, por exemplo. Para exemplificar
melhor uma chamada de sistema, examinaremos brevemente um READ. Ele possui três
parâmetros: o primeiro especifica o arquivo, o segundo o buffer no disco e o terceiro o número
de bytes a ler. Uma chamada READ de um programa em C pode se parecer com: Count = read
(file, buffer, nbytes); A chamada de sistema (e o procedimento de biblioteca) retorna o número
de bytes realmente lido em count. Caso a chamada de sistema não possa ser executada, seja
devido a um parâmetro inválido, seja devido a um erro de disco, count é definido como -1 e o
número do erro será colocado em uma variável global que poderá ser lida pelo aplicativo que
dará um determinado tratamento para o erro. Exemplos de chamadas de sistemas: (mkdir, rmdir,
mount, umount, chmod, time, kill, etc)
Nos sistemas POSIX e similares, as chamadas de sistema mais usadas são close, execve, fork,
wait, kill, open, read, write e ioctl. Os sistemas operacionais atuais tem centenas de chamadas de
sistema. Por exemplo, o Linux tem quase 300 chamadas de sistema diferentes. O FreeBSD tem
praticamente o mesmo número (quase 330).
Existem várias chamadas de sistema, as principais chamadas de sistema são para:
•
Gerenciamento de processos;
•
Sinalização;
•
Gerenciamento de arquivos;
•
Gerenciamento de diretórios;
•
Proteção;
•
Gerenciamento de tempo.
O sistema operacional suporta diversas operações sobre arquivos. As operações básicas são:
Criação do Arquivo;
Destruição do Arquivo;
Leitura do conteúdo;
Alteração do conteúdo;
Escrita de novos dados ao final do arquivo;
Execução do programa contido no arquivo;
Troca de nome do arquivo;
Alteração na lista de usuários que podem acessar o arquivo.
Xi... apagei aquele arquivo importante e limpei a lixeira e agora? Perdi tudo?
Não, mesmo quando apagamos um arquivo do sistema e depois da lixeira, ainda é possível
recuperá-lo.
Uma exclusão nada mais é que remover a estrutura de diretórios do arquivo, apenas isto. O
espaço de dados alocado pelo arquivo continua lá no HD, porém invisível/inultilizável pelo
usuário comum.
No momento da exclusão, o espaço que pertencia a um arquivo é marcado para substituição, ou
seja, ele é identificado como espaço livre, e quando necessário o HD irá substituir todo ou parte
deste espaço por dados de um novo arquivo.
Uma partição excluída é apenas interpretada como um “espaço não-alocado” no disco rígido,
independente do seu antigo sistema de arquivos.
Em relação a alteração na lista de usuários que podem acessar o arquivo, é a prova de violação?
Não, mesmo quando o sistema operacional provê um mecanismo de autorização de usuários
para alguns determinados arquivos. Você poderá acessá-lo diretamente do HD, lendo byte a
byte nos setores do disco. Para ter segurança total sobre o arquivo é necessário criptografá-lo.
Tudo no seu devido lugar. Porém como vivemos em um mundo cada vez mais globalizado. Os
computadores e seus diversos sistemas cada vez estão mais unidos ora por redes locais ou pela
internet; tem a necessidade de se comunicarem seja para simples troca de arquivos entre
usuários ou pelo acesso remoto de arquivos.
Para atender as diferenças nos sistemas de arquivos de Windows, de Mac VOS e Unix, foi
desenvolvido um sistema de arquivos virtual (abreviado como VFS, do inglês Virtual File
System), é uma camada de abstração em cima de um sistema de arquivos mais concreto. O
propósito de um VFS é permitir que as aplicações clientes tenham acesso a diversos tipos de
sistemas de arquivos concretos de uma maneira uniforme.
Um VFS especifica uma interface (ou um contrato) entre o kernel e um sistema de arquivos em
concreto. Portanto, é fácil agregar novos sistemas de arquivos ao kernel simplesmente
satisfazendo o contrato. Os termos do contrato podem voltar-se incompatíveis de uma versão a
outra, o que requereria que sistemas de arquivos concretos fossem recompilados, e
possivelmente modificados antes da recompilação, para lhes permitir trabalhar com um novo
lançamento do sistema operacional; ou o provedor do sistema operacional possa realizar
somente mudanças retrocompatíveis ao contrato, de modo que um sistema de arquivos concreto
construído para um lançamento dado do sistema operativo trabalhe com as versões futuras do
mesmo sistema operacional.
Sistemas de Arquivos são gravados no disco rígido(HD). Um sistema de Arquivos Virtual
(VFS), ao invés do Real é gravado na memória.
Graças ao VFS você pode publicar seus ítens da maneira que quiser, sem têr que mover ou
mudar algo físicamente na estrutura de pastas e arquivos do seu HD. As pessoas vão vêr o que
você quiser que elas vejam. Você pode ocultar arquivos, renomea-los, move-los para outra
pasta, etc. Isso é o que as pessoas verão, mais na realidade, nada mudou em seus HD.
Muitos ja são familiares à esse tipo de estrutura de arquivos, devido ao uso de outros softwares,
como qualquer programa de gravação de CDs como o NERO, ao montar um CD de DADOS
para gravação, cria-se um sistema de arquivos virtual na estrutura do CD à ser gravado, ou seja,
é uma espécie de VFS.
Referências:
 http://pt.kioskea.net/
 http://www.instrutor.com/aulas/sistemas_operacionais/sistema_arquivos.php
 http://www.ibm.com/developerworks/br/library/l-linux-filesystem/
 http://www.patentesonline.com.br/sistema-de-arquivo-virtual-2572.html
 http://pt.wikipedia.org/wiki/Sistema_de_arquivos_virtual
 http://pt.wikilingue.com/es/Sistema_de_arquivos_virtual
 http://www.rejetto.com/wiki/index.php/HFS:_O_Sistema_de_Arquivos_Virtual
 http://fernandopaiva.objectis.net/comandos/aprendendo-o-comando-mount
 http://www.uniriotec.br/~morganna/guia/mount.html
 http://www.faatesp.edu.br/publicacoes/A11%20-%20Chamadas%20de%20Sistema.pdf
 http://pt.wikipedia.org/wiki/Chamada_de_sistema
 http://www.dinx.com.br/2009/10/formatacao-o-que-e-como-funciona-e-quais-sao-ostipos-existentes/
 SO Projeto e Implementação 2 ed_Tanenbaum(pt-br).pdf
 http://infohelp.org/danilo-salles/file-shredder-excluindo-arquivos-permanentemente/
 http://www.epidemiclinux.org/wiki/index.php?title=O_b%C3%A1sico_sobre_permiss%
C3%B5es_de_arquivos
Download