Вы находитесь на странице: 1из 63

5.

Sistema de Ficheiros

Introduo
Problema

Como armazenar grandes quantidades de informao e de forma permanente, num suporte que o permita: disquete, disco, CD, etc. ?

Soluo

sobrepor organizao fsica do "meio" (sectores, ...) uma organizao em "peas" de informao lgica: ficheiros

da responsabilidade do SO criar esta organizao lgica

Introduo
Sistema

de Ficheiros (File System)

A forma como o SO organiza o suporte fsico em ficheiros

formatao do disco, localizao dos ficheiros no disco, ...

Proporciona os mecanismos para o "utilizadores" (programas) lidarem com eles


acesso: criao, leitura/escrita proteco buffering ...

Ficheiros Nome
Nome

- forma de identificao do ficheiro


ex: comandos > cp um_ficheiro outro_ficheiro

O primeiro aspecto visvel de utilizao de um ficheiro

Dimenso
MS/DOS tamanho fixo 8+3 (extenso) Linux tamanho varivel (limite de 255 caracteres)

Extenso formal ou informalmente indicia a natureza (ou contedo) do ficheiro Case sensitive distinguir letras maisculas e minsculas

Unix: case sensitive Windows : case insensitive (por razes de compatibilidade com verses anteriores e MS/DOS)

Ficheiros Extenso
Extenso

Windows
Extenses tm significado formal no SO ex: ficheiro.exe um executvel Pode-se relacionar uma extenso com uma aplicao (registry) Permite invocar uma aplicao (isto executar um programa) abrindo um ficheiro com a extenso correspondente ex: ficheiro.doc => executar programa winword.exe (passando o ficheiro como argumento)

Unix

As extenses so convencionais (tratadas pelo utilizador) e, eventualmente, foradas pelos programas que tratam determinado tipo de ficheiros ex: compilador .c .o;

Ficheiros Extenso
Extenses

alguns exemplos

.c .cpp .h .java
ficheiros fonte c/c++, java (texto); objecto; livrarias compiladas; (binrio); ficheiros com texto marcado para internet (texto); imagens;contedos multimdia; (binrio); aplicaes microsoft windows; (binrio) contentor de outros ficheiros, comprimidos; (binrio);
6

.o .obj .lib

.htm .html .xml

.bmp .jpeg .mp3 .mpg

.doc .xls .mdb .ppt

.zip .Z

Ficheiros Contedo
Contedo

fsico

Classificao pelo contedo fsico do ficheiro, independentemente do contedo funcional

Ficheiros de texto
Contedo fsico: Sequncia de caracteres ASCII, incluindo alguns caracteres especiais: 10 (Line feeder), 13 (Carriage return) Contedo visvel directamente: ex: > cat /etc/passwd O contedo funcional pode ser o mais diverso: ex: fonte c; script shell; dados xml

Ficheiros Contedo
Contedo

fsico

Ficheiros binrios
Contedo fsico no interpretvel como um conjunto de caracteres ASCII No visvel directamente; ex: > cat /bin/cat; reset Tratveis apenas por programas (ou os prprios ficheiros so programas)

Ficheiros Contedo

Exemplo: registo de dados em formato de texto e formato binrio


Resultado: ficheiro com 2 bytes cdigo do caractere '3' e cdigo do caractere '7'

/* escrever o nmero 37 num ficheiro, em formato de texto */ #include <stdio.h> int main() { int i = 37; FILE *fp = fopen ( "teste.txt", "w"); fprintf ( fp, "%d", i ); fclose(fp); }

/* escrever o nmero 37 num ficheiro, em formato binrio */ #include <stdio.h> int main() { int i = 37; FILE *fp = fopen ( "teste.txt", "w"); fwrite ( &i, sizeof(i), 1 , fp ); fclose(fp); }

Resultado: ficheiro com 4 bytes representando o nmero 37 em binrio


(numa mquina com inteiros de 32 bits)

Ficheiros Acesso
Ficheiros

de acesso sequencial

Localizar lendo o ficheiro, desde o incio at posio pretendida Ex: dado um ficheiro de texto com vrios nmeros inteiros, um em cada linha para obter o 13 nmero:
#include <stdio.h> main() { int i, n; FILE *fp = fopen("teste.txt", "r"; for ( i=1; i<= 13; i++) fscanf(fp, "%d", &n); }
10

Ficheiros Acesso
Ficheiros

de acesso directo

Possibilidade de localizar uma posio ("seek"), com base numa chave ou outra indicao Ex: dado um ficheiro de texto com vrios nmeros inteiros obter o 13 nmero:
#include <stdio.h> main() { int n; FILE *fp = fopen("teste.txt", "rb" ); fseek ( fp, (long) 12 * sizeof(int) , SEEK-SET ); fread ( &n, sizeof(int), 1, fp); }
11

Ficheiros Atributos
Atributos
Caractersticas do ficheiro (alm do nome e contedo) que o SO gere, para efeitos de controlo e administrao

Alguns

atributos significativos ( maior utilidade)

Dono (Owner) utilizador dono / criador do ficheiro


controlo de acessos, quotas, etc. controlo de acessos gesto, procura por "tempo"; suporte do make gesto / quantificao do espao livre/ocupado gesto do acesso
12

Proteco permisses de acesso ao ficheiro

Datas data de criao: outras datas de acesso / alterao

Dimenso dimenso actual do ficheiro

Flags extra hidden, system, etc.

Ficheiros Operaes
Operaes

de manipulao de um ficheiro

create criao do ficheiro (vazio)


ex: cat > novo_ficheiro ; fopen(..., "w" ); rm antigo.txt; remove(...); fopen (... , "r");

delete remover um ficheiro

open abrir um ficheiro para determinada operao

close fechar um ficheiro depois de concludo um conjunto de operaes

ex: fclose(...); ex: cat teste ; fgets (...);


13

read ler o contedo de um ficheiro

Ficheiros Operaes
Operaes

de manipulao de um ficheiro

write escrever (alterar) o contedo de um ficheiro


cat > teste ; fprintf (...); cat >> teste ; fopen(..., "w+"); fseek (...) chmod ; chmod (...); stat (...); mv .... ; rename (...);

append acrescentar ao contedo anterior

seek posicionamento para acesso directo

get/set attributes obter / alterar atributos

rename alterar o nome de um ficheiro

14

Directrios
rvore

de directrios e ficheiros

Directrios (ns) contm uma lista de outros directrios ou ficheiros (folhas)


Nome do ficheiro nome nico na rvore de ficheiros caminho desde o directrio principal (raiz) at directrio onde o ficheiro se encontra Ou nome relativo caminho a partir de um directrio intermdio ("corrente")

Link representao do mesmo ficheiro em mais que um directrio


soft referncia simblica para um ficheiro real definido noutro directrio hard representao do mesmo ficheiro em mais que um directrio

15

Discos e parties
Disco:

organizao tpica

A formatao de baixo nvel divide o disco em sectores (blocos) Em cima dessa formatao, o disco dividido em parties (uma ou mais por disco) Cada partio pode ter um sistema de ficheiros diferente

Master

Boot Record e Parties

O sector 0 do disco contm o MBR e a tabela de parties MBR programa de boot ("arranque") do disco Tabela de parties lista das parties existentes no disco Tabela de parties

Disco

MBR

Partio 1

Partio 2
16

Discos e parties

Partio: organizao tpica

Boot block

Programa de arranque do sistema operativo instalado na partio


Informao caracterstica do sistema de ficheiros instalado Informao relativa aos blocos do disco livres/ocupados com ficheiros Elementos de controlo e gesto prprios de cada sistema de ficheiros Unix: i-nodes MS/DOS: FAT

Super-block

Tabelas / estruturas de colocao


Directrios e ficheiros

Sectores ocupados com os ficheiros e directrios armazenados no disco

Boot block Super block Tab. colocao

Directrios e ficheiros

17

Implementao do Sistema de Ficheiros


Colocao

contgua

Armazenamento de cada ficheiro num conjunto de bloco contguos

Vantagens:
Implementao simples para cada ficheiro, basta o SO saber o bloco inicial e final (ou n de blocos) Eficiente em termos de leitura sempre bloco contguos

a a a b b b b b b c c d d d d e e

f
N de blocos 3 6 2 4 2 5 18

Partio Tabela de colocao

Ficheiro a b c d e f

Incio 0 3 9 11 15 17

Implementao do Sistema de Ficheiros

Desvantagem:

Fragmentao resultante da remoo / criao de novos ficheiros, que s pode ser eliminada com compactao Ex: removeu-se a,c e e; um ficheiro d que ocupa 4 blocos s pode ser colocado aps uma compactao...
f f f f

a a a b b b b b b c c d d d d e e f

b b b b b b

d d d d

Este sistema til em CD-ROMs, pois


conhece-se partida a dimenso de cada ficheiro no so feitas remoes de ficheiros aps a gravao

19

Implementao do Sistema de Ficheiros


Lista

ligada de blocos

Mantm-se uma lista ligada dos blocos ocupados por cada ficheiro; Em cada bloco, para alm dos dados, guarda-se tambm um apontador para o bloco seguinte do mesmo ficheiro

Vantagens:
Todos os blocos podem ser ocupados (a fragmentao no problemtica) Ao SO basta saber a localizao do 1 bloco.

20

Implementao do Sistema de Ficheiros

Desvantagens:
Acesso sequencial para chegar a um bloco preciso passar pelos anteriores Em ficheiros que ocupem muitos blocos espalhados pela partio o acesso aos ltimos blocos demasiado lento Ex: para aceder ao ltimo bloco de um ficheiro com 1000 blocos ser necessrio que sejam lidos os 999 blocos anteriores O tamanho real de cada bloco diminudo pelo espao ocupado pelo apontador

21

Implementao do Sistema de Ficheiros


FAT

File Allocation Table

Manter em memria uma tabela com uma representao da lista ligada de blocos. Em cada posio da tabela indica-se o bloco seguinte do ficheiro.

Vantagens
Tal como no modelo anterior, a fragmentao no problemtica Cada bloco utilizado integralmente para armazenamento de dados (ao contrrio do esquema anterior) Facilita o acesso directo para obter um bloco basta percorrer a FAT (mais rpido, pois percorre-se a memria e no o disco)

Desvantagem

A dimenso da FAT pode ser demasiado grande Ex: 20GB de disco , blocos de 1KB indexados com 4 Bytes A FAT ter uma dimenso de 80MBytes

22

Implementao do Sistema de Ficheiros

Exemplo: FAT
10 11 12 13 14 15 16 17 18 19 20 ...

...

No directrio basta guardar o bloco de incio de cada ficheiro

Ficheiro a b c

1 bloco 12 11 17

10 11 12 13 14 15 16 17 18 19 20

0 representa bloco livre 1 representa ltimo bloco do ficheiro


23

... 18 13 10 14 -1 0 0 20 -1 0 -1 ...

Implementao do Sistema de Ficheiros


I-Nodes

associar a cada ficheiro uma estrutura de dados contendo a localizao em disco e os atributos do ficheiro

O i-node contm um nmero limitado de blocos do ficheiro Para ficheiros de maior dimenso so atribudos ao i-node outros blocos que contm tabelas com ns de bloco extra O i-node contm todas as caractersticas do ficheiro, excepto o nome que figura no (ou nos) directrios onde o i-node includo Vantagens
A fragmentao no problemtica Para aceder a um ficheiro basta ter o respectivo i-node em memria (no necessrio dispor de toda uma tabela de alocao) Facilita a partilha de ficheiros atravs de hard links

24

Implementao do Sistema de Ficheiros

...

Exemplo:
10 11 12 13 14 15 16 17 18 19 20 ...

I-node de a
Atributos de a 12 10 18 outros blocos: -

I-node de b
Atributos de b 11 13 14 15 16 17 19 outros blocos: Blocos extra 20 21 25

Implementao do Sistema de Ficheiros


Implementao Directrio

dos directrios

Um directrio basicamente uma lista de nomes, a cada um dos quais se associam os respectivos atributos e localizao em disco O directrio um ficheiro especial

Situaes tpicas:
O directrio contm os atributos do ficheiro e a localizao do primeiro bloco em disco - a partir do primeiro bloco localizam-se os restantes (ex: lista ligada, FAT,..) O directrio contm o nome do ficheiro e o endereo de uma estrutura que contm os atributos do ficheiro e sua localizao do em disco (ex: i-nodes)

Questes de implementao:
Lidar com nomes de dimenso varivel (fragmentao e compactao nos directrios) Procurar ficheiros em directrios grandes (utilizao de hash-tables e estruturas em rvore)

26

Implementao do Sistema de Ficheiros


Ficheiros

partilhados

Possibilidade de um mesmo ficheiro figurar em mais que um directrio

Hard link (ligao real)


Incluir o mesmo ficheiro em mais que um directrio Replicar em cada directrio os atributos e localizao no disco Implementao simples com i-nodes basta replicar o n de i-node Implementao complexa se os atributos estiverem contidos no directrio as alteraes tm que ser replicadas em cada ligao

Soft link (ligao simblica)


Incluir num directrio o nome de outro ficheiro que contm o caminho para o ficheiro original Atravs do caminho acede-se entrada de directrio do ficheiro original e, por essa via, aos seus atributos e localizao em disco

27

Questes de Implementao
Dimenso

do bloco

(Qual ser a melhor dimenso para os blocos ?)

Eficcia de leitura relao entre o tempo de leitura e a informao efectivamente obtida do disco

Aumenta com a dimenso do bloco menor overhead de posicionamento em cada leitura menor nmero de leituras necessrias para obter os dados

Eficcia de ocupao relao entre o espao fsico ocupado e o respectivo aproveitamento em termos de dados

Diminui com o aumento da dimenso do bloco desperdcio devido ao ajuste da dimenso do ficheiro para um nmero fixo de blocos exemplo: um ficheiro de dimenso 1 byte desperdia o resto da dimenso do bloco
28

Questes de Implementao

Variao da eficcia com a dimenso do bloco

Eficcia de armazenamento Eficcia de leitura

Dimenso do bloco

29

Questes de Implementao
Controlo

da lista de blocos livres

estrutura de dados de controlo dos blocos de disco no ocupados por ficheiros

Lista ligada
Lista ligada com o nmero de cada um dos blocos livres Criao de um ficheiro: Obter os primeiros blocos da lista (at dimenso do ficheiro) e de seguida retir-los da lista Remoo de um ficheiro: Acrescentar os respectivos blocos lista Mtodo simples, mas poder levar a disperso dos ficheiros por vrios blocos no contguos A dimenso da lista poder ser bastante grande se o disco estiver pouco ocupado

30

Questes de Implementao

Bitmap
Sequncia com um nmero de bits igual ao nmero de blocos Bit a 0 significa bloco livre Bit a 1 significa bloco ocupado Dimenso fixa Quase sempre uma dimenso menor que na soluo com lista (excepto quando disco est quase cheio) Facilita a procura de blocos contguos / prximos Basta procurar 0's contguos / prximos no bitmap

31

Questes de Implementao
Backup Salvaguarda de segurana

Backup incremental apenas as alteraes desde o backup anterior Com base no dispositivo fsico backup completo (imagem) de um disco Com base na organizao backup de parte dos ficheiros

Evitam-se geralmente backups de: Programas (pois podem-se reinstalar) Ficheiros que modelizam dispositivos (bloco, caractere)

Consistncia Mecanismos de verificao e recuperao da consistncia do sistema de ficheiros

32

Questes de Implementao
Caching

Manter em memria blocos mais recentes / maior probabilidade de uso futuro

Leitura

antecipada

Leitura e caching, por antecipao, de vrios blocos

Armazenamento

contguo

Tentar colocar o ficheiro em blocos de disco contguos Reduz-se o tempo de overhead relativo ao posicionamento no disco

33

Sistema ISO 9660 CD-Roms


Caractersticas

importantes:

Sistema baseado em colocao contgua Encontra-se normalizado de modo a que todos os SOs possam ler um CD do mesmo modo Blocos com dimenso fixa (2352 Bytes / Bloco):
2048 de informao til 304 para cdigo de correco de erros e outros fins

Limite de 8 nveis de directrios Limite de 31 caracteres para os nomes de ficheiros Devido s limitaes, alguns SOs definem extenses norma, para efeitos de compatibilidade
34

ISO 9660 CD-Roms


Formato

de uma partio ISO 9660

16 blocos iniciais de contedo livre


Pode ser usado para boot, auto-arranque, etc.

Descritor de volume primrio (1 bloco)


Informao sobre o disco (identificao, n de blocos, etc.) Localizao do directrio principal (raz)

Descritores de volume suplementares (opcionais)

A mesma informao do primrio, mas numa linguagem com smbolos diferentes (Japons, Chins, etc.)

Directrio principal e restantes directrios (Table Of Contents) Dados os ficheiros propriamente ditos
sodaD )COT( soirtceriD .lov ed serotircseD seratnemelpus ed rotircseD )oirmirp( emulov

socolb 61 sodinifed on

35

ISO 9660 CD-Roms


Directrios Sequncia de registos com dimenso varivel (um registo por ficheiro ou sub-directrio) Cada registo contm os seguintes campos: Dimenso (1 byte)

Dimenso total do registo (dimenso varivel, em bytes) Bloco inicial e nmero de blocos (localizao contgua !)

Localizao e Tamanho (8 + 8 bytes)

Flags de controlo
Distinguir ficheiro / directrio, ficheiros escondidos, etc. Marcao da ltima entrada de um directrio

1 1

8 Localizao

8 Dimenso

7 Data/hora

1 2

4 # CD

Varivel Nome Sistema

Comprimento dos atributos extra Comprimento do registo

Flags

Comprimento Interleave do nome

No definido

36

ISO 9660 CD-Roms


Directrios

Data/hora (7 bytes)

Data e hora da gravao do ficheiro no CD Utilizados em ficheiros que violem a colocao contgua (a norma prev excepes colocao contgua) Nmero do CD em que o ficheiro se encontra - um directrio pode indicar um ficheiro localizado noutro CD) Nome do ficheiro, com a dimenso (varivel) indicada Utilizado para implementao de extenses norma base.

Interleave (1 byte)

#CD (4 bytes)

Dimenso e Nome (1 byte + n bytes para o nome)

Sistema / Campos livres (comprimento varivel)

37

ISO 9660 CD-Roms


Extenses

norma Rock Ridge (Unix)


Atributos Posix (permisses, dono, grupo, etc.) Links simblicos Nome alternativo (para ter nomes mais longos) Aumento de nveis de directrios Selos temporais (criao, acesso, modificao)

Joliet (Microsoft)
Nomes mais compridos (64 caracteres Unicode-16) Aumento de nveis de directrios Directrios com extenses

38

MS-DOS e Windows 98 FATs


Caractersticas

importantes

Sistema baseado em FAT


DOS: FAT-12 e FAT-16 Windows 95 e 98: FAT-32

Case-insensitive Dimenso dos nomes


DOS: 8 (nome) + 3 (extenso) caracteres ASCII O ficheiro guardado com letras maisculas Windows: 260 caracteres Unicode (2 bytes)

39

MS-DOS e Windows 98 FATs


Mxima

dimenso do espao indexvel em disco


FAT-12 2MB 4MB FAT-16 X X FAT-32 X X 0.5K 1K

Bloco (bytes)

2K
4K 8K 16K 32K

8MB
16MB X X X

128MB
256MB 512MB 1GB 2GB

X
1TB 2TB 2TB 2TB

40

MS-DOS e Windows 98 FATs


DOS

Directrios

Os directrios so ficheiros compostos por vrios registos um registo por cada ficheiro existente no directrio Cada registo tem o seguinte formato:
8 Nome 3 1 10 2 2 2 4 Dimenso

Reservados Extenso Atributos Hora Data Localizao (N do 1 Bloco)

41

MS-DOS e Windows 98 FATs


DOS

Directrios
Nome do ficheiro e extenso - dimenses fixas flags: hide, system file, read-only,... Data e hora da ltima modificao do ficheiro Bloco inicial de localizao do ficheiro => entrada na FAT; Dimenso real do ficheiro (em bytes)

Nome e Extenso (8 bytes + 3 bytes)


Atributos (1 byte)

Data/hora (2 + 2 bytes)

Localizao

Dimenso do ficheiro (4 bytes)

42

MS-DOS e Windows 98 FATs


Windows

98 Directrios

Aproveitam-se os 10 bytes no utilizados pelo DOS


Introduzem-se mais campos para datas/horas e compatibilidade de nomes com Windows NT Mais 2 bytes para obter os bits mais significativos do bloco de disco onde comea o ficheiro
NT 8 Nome 3 1 1 5 2 2 Data/hora (modificao) 2

4 Dimenso

Extenso Atributos

Data/hora (criao) Data (acesso)

N do 1 Bloco (16 msb)

N do 1 Bloco (16 lsb)

43

MS-DOS e Windows 98 FATs


Nomes

compridos

A seguir a um registo com o formato anterior, podem-se seguir um conjunto de registos com o seguinte formato:
1 10 5 caracteres 1 1 1 0 12 6 caracteres 2 0 4 2 caract.

N Sequncia

Atributos

Checksum

Deste modo o Windows consegue suportar nomes compridos Para o DOS, entradas com este formato so ignoradas, pois contm um valor de atributo invlido para o DOS
44

MS-DOS e Windows 98 FATs


Nomes

compridos

Exemplo: Ficheiro chamado Relatorio do Trabalho Final


66 2 1

l T R r e a l b a a t l o h r o i o F i d n o a

RE L AT O~ 1 DOC

O DOS s consegue l a primeira entrada O Windows 98 utiliza todas as que se seguem at encontrar um nmero de sequncia com um desfasamento de 64 unidades

45

Linux ext2
Caractersticas

importantes

Sistema de ficheiros nativo do Linux


Semelhante ao sistema BFF (Berkeley Fast File system) Tal como todos os sistemas de ficheiros Unix

Sistema de ficheiros baseado em I-Nodes

Nomes de ficheiros at 255 caracteres Case-sensitive

46

Linux ext2
Estrutura

de uma partio

Cada partio dividida em vrios grupos de blocos, tirando-se partido da arquitectura fsica do disco Cada ficheiro reside preferencialmente num nico grupo de blocos Deste modo acelera-se a leitura/escrita no disco
Boot Grupo de blocos #1 Grupo de blocos #2 Grupo de blocos #3 ...

Super-bloco

Descritor

Bitmap blocos

Bitmap I-nodes

I-Nodes

Dados

47

Linux ext2
Estrutura

dos I-Nodes

Permisses N de links UID GID Dimenso Selos temporais Localizao dos 1s 12 blocos Indirectos Duplamente indirectos Triplamente indirectos

Dimenso de 128 bytes Os ltimos 3 campos so tambm endereos de blocos do disco:


Indirectos endereo de um bloco do disco que contm mais endereos de blocos da localizao do ficheiro Duplamente indirectos endereo de uma tabela de blocos indirectos Triplamente indirectos endereo de uma tabela de blocos duplamente indirectos (O objectivo permitir que um ficheiro esteja localizado em mais de 12 blocos)

48

Linux ext2
Estrutura

dos directrios

Deslocamento p/ a prxima entrada 1 ficheiro Nome (max. 255) 2 ficheiro ...

N de I-Node

Tipo de Ficheiro

N caracteres

22

10

Manual.txt

34

Trabalhos

...

49

Windows 2000 NTFS


Caractersticas

importantes

Sistema de ficheiros nativo dos SOs Windows NT, 2000 e XP Implementao mais complexa, que combina ideias mais prximas dos I-Nodes e da colocao contgua Nomes de ficheiros at 255 caracteres Unicode-16 ( semelhana do Win 98) Case-insensitive
NOTA: Tanto os Windows 95/98 como o DOS, no conseguem ler parties NTFS
50

Windows 2000 NTFS


MFT

(Master File Table)

Constituda por um conjunto de registos de dimenso fixa


1KByte por registo

A MFT um ficheiro localizado em qualquer posio do disco (no obrigatoriamente nos sectores iniciais, se algum deles estiver danificado) Cada registo descreve um ficheiro, com os seus atributos e localizao em disco Conceptualmente, os atributos podem ser
Curtos datas, nome do ficheiro, ID do ficheiro, ... Longos contedo (dados) do ficheiro Um ficheiro pode ter mais do que um contedo pode-se utilizar um contedo adicional para suportar a preview do ficheiro

51

Windows 2000 NTFS


MFT

(Master File Table)


o prprio contedo pode ficar no registo MTF se for suficientemente pequeno

Atributos (curtos) tm o valor no registo MTF

Para outros atributos (longos) o registo MTF indica a sua localizao no disco

Tipicamente o contedo est nesta situao Se a descrio da sua localizao no couber num nico registo MFT, usam-se outros registos MFT de extenso

Ficheiros grandes podem ter vrios registos MTF

52

Windows 2000 NTFS


1 KByte

MFT

Estrutura

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

Master File Table Cpia (mirror) da Master File Table Log (permite recuperaes) Volume (Info. sobre a partio) Definio dos atributos Directrio raz Bitmap (Ocupao dos blocos) Boot Loader Lista de blocos danificados Descritores de segurana Converso maisculas-minsculas Outros dados (quotas de utilizao, etc.) Reservado Reservado Reservado Reservado 1 ficheiro 2 ficheiro ...

Os 1s 16 registos so reservados ao sistema Cada um destes descreve os atributos de um ficheiro especial

Ficheiros Especiais (Metadata)

53

Windows 2000 NTFS


MFT

Estrutura

Contedo de alguns registos MFT reservados


Registo 0 - $Mft Descreve o prprio ficheiro MFT, designadamente quais os blocos de disco onde encontra (a localizao do primeiro bloco do MFT indicada no Master Boot Record) Registo 1 - $MftMirr uma cpia do registo 0, mantido por razes de segurana do sistema de ficheiros Registo 2 - $LogFile Ficheiro de log das operaes de modificao mais recentes, para recuperao em caso de crash

54

Windows 2000 NTFS


MFT

Estrutura

Contedo de alguns registos MFT reservados


Registo 3 - $Volume Descrio da partio NTFS (Dimenso, N de blocos, ...) Registo 5 - $ Directrio principal (raz) Registo 6 - $Bitmap Bitmap que controla a utilizao dos blocos no disco. Este bitmap mantido num ficheiro descrito por este registo Registo 8 - $BadClus Lista de blocos danificados na partio em causa

55

Windows 2000 NTFS


MFT

Estrutura

Contedo de alguns registos MFT reservados


Registo 3 - $Volume Descrio da partio NTFS (Dimenso, N de blocos, ...) Registo 5 - $ Directrio principal (raz) Registo 6 - $Bitmap Bitmap que controla a utilizao dos blocos no disco. Este bitmap mantido num ficheiro descrito por este registo Registo 8 - $BadClus Lista de blocos danificados na partio em causa

56

Windows 2000 NTFS


Registos

MFT Estrutura

Estrutura para ficheiros


A estrutura bsica de uma entrada MFT a seguinte:
Header Nome Header Dados

Header Atributos

Info. "Standard"

Nome do ficheiro

20

64

80

Header MFT

Dimenso do ficheiro (blocos)


20 a 23 64 e 65 80 a 82

Neste exemplo supem-se que o ficheiro ocupa os blocos 20,21,22,23,64,65,80,81 e 82 da partio

57

Windows 2000 NTFS


Registos

MFT Estrutura

Alguns atributos standard


Informao standard Dono do ficheiro, n de links, read-only, etc. Nome do ficheiro Nome do ficheiro, em unicode. Repetido para manter compatibilidade com o DOS (se no couber na frmula 8+3) Attribute list Localizao de outros registos MTF, se necessrio Object ID 64 bits, formando um object-ID do ficheiro o ID de cada ficheiro nico (no sistema de ficheiros)
58

Windows 2000 NTFS


Registos

MFT Estrutura

Alguns atributos standard


Dados (1+) Atributo que designa uma sequncia de bytes Normalmente, apenas um atributo, cujo valor indica a localizao do contedo do ficheiro em disco. Podem ser mais no caso de suporte para preview Para ficheiros pequenos (algumas centenas de bytes que sobram no 1K do registo) o atributo pode ter o prprio contedo do ficheiro Muitas vezes, para ficheiros de dimenso mdia, ter a lista de todos os blocos de disco que o contedo do ficheiro ocupa
59

Windows 2000 NTFS


Registos

MFT Estrutura

Ficheiros longos
Quando um ficheiro demasiado comprido e os seus blocos no so contguos pode ser necessrio mais do que um registo MFT
... continuao 177 ... dados 20 : 4 64 : 2 80 : 1

MTF base -> Reg 100

MTF extended -> Reg 177 ... 100 : 2

120 : 3

....

60

Windows 2000 NTFS


Registos

MFT Estrutura

Estrutura para directrios


Aos directrios correspondem registos MFT em cujo contedo existe uma lista de descries de ficheiros
Header Dir Header Atributos

Atributos "Standard"

Header MFT

Descries de ficheiros: Comprimento do nome Nome ndice para o registo MFT

Se o directrio for demasiado grande (muitos ficheiros) ento os descritores de ficheiros passam a estar organizados segundo uma rvore
61

Windows 2000 NTFS


Compresso

O NTFS contm mecanismos nativos de suporte compresso O algoritmo de compresso corre sobre grupos de 16 blocos

Se a compresso for bem sucedida (resultam 15 ou menos blocos), a localizao do ficheiro fica descrita em duas partes: Uma parte com o(s) grupo(s) representando os blocos resultantes Grupo(s) simblico(s) representando os blocos dispensados (para se saber que o conjunto de blocos foi comprimido)

62

Windows 2000 NTFS


Compresso

Exemplo:
Ficheiro original com 40 blocos. Por hiptese conseguiram-se as seguintes compactaes: blocos 1-16 compactados para 10 blocos (que no puderam ficar num nico bloco contguo) blocos 17-32 compactados para 13 blocos blocos 33-40 compactados para 5 blocos

MTF ->

...

dados

20 : 5

40 : 5

0:6

64 : 13

0:3

80 : 5

0:3

...

Os blocos "poupados" so representados pelos grupos simblicos comeados no bloco 0 (um bloco que no pode ser usado)

63

Вам также может понравиться