Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parGarland Duval Modifié depuis plus de 9 années
1
1.1 Fichiers et systèmes de fichiers Fichiers et Systèmes de fichiers
2
1.2 Fichiers et systèmes de fichiers interface de programmation système ouverture et fermeture : #include int fd = open("nom symbolique", options, mode); option = O_RDONLY, O_WRONLY ou O_RDWR O_CREAT, O_EXCL O_TRUNC, O_APPEND mode = droit d'accès au fichier si création int close (fd);
3
1.3 Fichiers et systèmes de fichiers interface de programmation système lecture et écriture : cr = read(fd, adresse, taille); cr = write(fd, adresse, taille); fd = descripteur du fichier rendu par open adresse = adresse de la zone mémoire où écrire les données taille = nombre de caractères à lire cr = nombre de caractères réellement lus par le système positionnement du pointeur de fichier lseek(fd, offset, whence); SEEK_SET La tête est placée à offset octets depuis le début du fichier. SEEK_CUR La tête de lecture/écriture est avancée de offset octets. SEEK_END La tête est placée à la fin du fichier plus offset octets. destruction d'un fichier unlink("nom symbolique"); reduction de la taille d'un fichier ftruncate(fd, longueur); truncate("nom", longueur);
4
1.4 Fichiers et systèmes de fichiers interface de programmation LIBC Interface bufferisée, permettant d'éviter des appels système à chaque opération #include FILE * fopen("nom fichier", mode) ouvre un fichier fclose (FILE *) ferme le fichier fread/fwrite(void *ptr, size_t size, size_t nmemb, FILE * fd); lit/écrit dans le fichier int getc(FILE *) lit un caractère dans le tampon. int putc(char c, FILE *) écrit un caractère dans le tampon. int fscanf(char *, lit un ensemble de variables suivant un format. int fprintf(char *, écrit un ensemble de variables suivant un format. int fseek(FILE *, long, int) effectue un déplacement dans le fichier. fflush(FILE *) vide le tampon dans le système.
5
1.5 Fichiers et systèmes de fichiers aspects système Le système gére les processus actifs par l'intermédiaire de structures de données –task_struct sous LINUX –U + PROC sur UNIX system V l'ouverture d'un fichier correspond à l'allocation d'une structure FILE, qui sera reférencée par un pointeur stocké dans la structure U cette structure FILE contient le pointeur de position sur appel à fork, les structures U + PROC (task_struct) sont dupliquées, mais pas la structure FILE –les processus père et fils partagent les fichiers ouverts AVANT le fork(), –mais ils accèdent indépendement aux fichiers ouverts après.
6
1.6 Fichiers et systèmes de fichiers stockage permanent : les disques 1 disque = 1 ensemble de blocs (secteurs) numérotés de 0 à n, et accessibles en lecture/écriture de façon indivisible : –1 lecture ou écriture disque opère sur 1 à s secteurs entiers –la taille d'un secteur est typiquement 512 octets (1024 dans certains cas)
7
1.7 Fichiers et systèmes de fichiers les objets d'un système de fichiers fichiers –contenant des données, des programmes, des librairies de fonctions… répertoires –entité logique utilisée pour grouper des références vers des fichiers et/ou répertoires –les répertoires permettent d'organiser les fichiers sous forme arborescente –la racine de cet arbre est un répertoire désigné par le caractère / / R1R2 F1F2F3F4R3 cette structure est appelée système de fichiers
8
1.8 Fichiers et systèmes de fichiers Structure FAT FAT = File Allocation Table le disque est divisé en 2 zones : –la table d'allocation, en début de disque –la zone des blocs de données (clusters sous Windows) –La table d'allocation contient autant d'entrées qu'il y a de cluster 1 répertoire = n bloc de données contenant des entrées structurées en : –le nom symbolique de l'objet (fichier ou répertoire) et son type, –les informations sur l'objet (taille en octets, dates, droits d'accès…) –le numéro du premier bloc de donnée (sur disque) de cet objet pour accéder aux données d'un fichier : –le numéro du premier bloc se trouve dans le répertoire (ex : 100) –le numéro du bloc suivant se trouve dans l'entrée 100 de la FAT (ex : 110) –le numéro du bloc suivant se trouve dans l'entrée 110 de la FAT….
9
1.9 Fichiers et systèmes de fichiers Structure INODE Chaque objet d'un système de fichier UNIX correspond une structure de donnée "inode" stockée sur disque un inode est repéré par un numéro unique (dans le système de fichier) l'inode contient toutes les informations qui décrivent l'objet : –type de l'objet : Répertoire, Fichier,... –propriétaire, groupe, –droits d'accès –dates de création et dernière modification –taille de l'objet en octet –nombre de liens sur l'objet –...
10
1.10 Fichiers et systèmes de fichiers Structure inode
11
1.11 Fichiers et systèmes de fichiers Exemple : structures sysv LINUX /* SystemV/Coherent inode data on disk */ struct sysv_inode { u16 i_mode; u16 i_nlink; u16 i_uid; u16 i_gid; u32 i_size; u8 i_data[3*(10+1+1+1)]; u8 i_gen; u32 i_atime;/* time of last access */ u32 i_mtime;/* time of last modification */ u32 i_ctime;/* time of creation */ }; /* SystemV/Coherent directory entry on disk */ #define SYSV_NAMELEN 14 /* max size of name in struct sysv_dir_entry */ struct sysv_dir_entry { sysv_ino_t inode; char name[SYSV_NAMELEN]; /* up to 14 characters, the rest are zeroes */ };
12
1.12 Fichiers et systèmes de fichiers lister les numéros d’inode alpha12.couveep$ ls -il total 5896 2090 -rwxr-xr-x 1 couveep frec 657 Jan 10 2000 Approve 2072 -rwxr--r-- 1 couveep frec 36 Jun 26 1996 colog 2073 -rwxr-xr-x 1 couveep frec 501 Feb 05 1997 escale 2074 -rw-r--r-- 1 couveep frec 2967138 Nov 21 1997 gsv22w32.exe 2071 -rwxr--r-- 1 couveep frec 85 Mar 05 1998 infoServer 2078 -rwxr-xr-x 1 couveep frec 95 Mar 17 1998 lanoffice 2077 -rwxr-xr-x 1 couveep frec 423 Feb 10 1998 wnc2checkb 2075 -rwxr-xr-x 1 couveep frec 646 Feb 10 1998 wnc2doc 2076 -rwxr-xr-x 1 couveep frec 1070 Feb 10 1998 wnc2waitb 2079 -rwxr-xr-x 1 couveep frec 9164 Mar 27 12:55 xd 2070 -rwxr--r-- 1 couveep frec 73 Apr 17 1997 xemacs
13
1.13 Fichiers et systèmes de fichiers Fichier de type répertoire alpha12.couveep$ xd. 00000000: 08152E00 00000000 00000000 00000000................ 00000010: 00022E2E 00000000 00000000 00000000................ 00000020: 08167865 6D616373 00000000 00000000..xemacs........ 00000030: 0817696E 666F5365 72766572 00000000..infoServer.... 00000040: 0818636F 6C6F6700 00000000 00000000..colog......... 00000050: 08196573 63616C65 00000000 00000000..escale........ 00000060: 081A6773 76323277 33322E65 78650000..gsv22w32.exe.. 00000070: 081B776E 6332646F 63000000 00000000..wnc2doc....... 00000080: 081C776E 63327761 69746200 00000000..wnc2waitb..... 00000090: 081D776E 63326368 65636B62 00000000..wnc2checkb.... 000000A0: 081E6C61 6E6F6666 69636500 00000000..lanoffice..... 000000B0: 081F7864 00000000 00000000 00000000..xd............ 000000C0: 082A4170 70726F76 65000000 00000000.*Approve.......
14
1.14 Fichiers et systèmes de fichiers Lien sur un fichier alpha12.couveep$ ln xd hexadump alpha12.couveep$ ls -il total 5920 2090 -rwxr-xr-x 1 couveep frec 657 Jan 10 2000 Approve 2072 -rwxr--r-- 1 couveep frec 36 Jun 26 1996 colog 2073 -rwxr-xr-x 1 couveep frec 501 Feb 05 1997 escale 2074 -rw-r--r-- 1 couveep frec 2967138 Nov 21 1997 gsv22w32.exe 2079 -rwxr-xr-x 2 couveep frec 9164 Mar 27 12:55 hexadump 2071 -rwxr--r-- 1 couveep frec 85 Mar 05 1998 infoServer 2078 -rwxr-xr-x 1 couveep frec 95 Mar 17 1998 lanoffice 2077 -rwxr-xr-x 1 couveep frec 423 Feb 10 1998 wnc2checkb 2075 -rwxr-xr-x 1 couveep frec 646 Feb 10 1998 wnc2doc 2076 -rwxr-xr-x 1 couveep frec 1070 Feb 10 1998 wnc2waitb 2079 -rwxr-xr-x 2 couveep frec 9164 Mar 27 12:55 xd 2070 -rwxr--r-- 1 couveep frec 73 Apr 17 1997 xemacs
15
1.15 Fichiers et systèmes de fichiers Contenu du répertoire alpha12.couveep$ xd -c. 00000000: 08 15 2E 00 00 00 00 00 00 00 00 00 00 00 00 00................ 00000010: 00 02 2E 2E 00 00 00 00 00 00 00 00 00 00 00 00................ 00000020: 08 16 78 65 6D 61 63 73 00 00 00 00 00 00 00 00..xemacs........ 00000030: 08 17 69 6E 66 6F 53 65 72 76 65 72 00 00 00 00..infoServer.... 00000040: 08 18 63 6F 6C 6F 67 00 00 00 00 00 00 00 00 00..colog......... 00000050: 08 19 65 73 63 61 6C 65 00 00 00 00 00 00 00 00..escale........ 00000060: 08 1A 67 73 76 32 32 77 33 32 2E 65 78 65 00 00..gsv22w32.exe.. 00000070: 08 1B 77 6E 63 32 64 6F 63 00 00 00 00 00 00 00..wnc2doc....... 00000080: 08 1C 77 6E 63 32 77 61 69 74 62 00 00 00 00 00..wnc2waitb..... 00000090: 08 1D 77 6E 63 32 63 68 65 63 6B 62 00 00 00 00..wnc2checkb.... 000000A0: 08 1E 6C 61 6E 6F 66 66 69 63 65 00 00 00 00 00..lanoffice..... 000000B0: 08 1F 78 64 00 00 00 00 00 00 00 00 00 00 00 00..xd............ 000000C0: 08 2A 41 70 70 72 6F 76 65 00 00 00 00 00 00 00.*Approve....... 000000D0: 08 1F 68 65 78 61 64 75 6D 70 00 00 00 00 00 00..hexadump......
16
1.16 Fichiers et systèmes de fichiers Création d’un système de fichiers alpha12.couveep$ man mkfs mkfs Command Purpose Makes a file system. Syntax mkfs [ -b Boot ] [ -l Label ] [ -i i-Nodes ] [ -o Options ] [ -p Prototype ] [-s Size ] [ - v VolumeLabel ] [ -V VfsName ] Device Description The mkfs command makes a new file system on a specified device. The mkfs command initializes the volume label, file system label, and startup block. dev Device name -v vol Volume ID -s size File system size -b boot Program to be installed in the startup block -V vfs Definition of the virtual file system -b Boot Names the program to be installed in block 0 of the new file system. -i i-Nodes Specifies the initial number of i-nodes on the file system. -l Label Specifies the file system label for the new file system. -o Options Specifies a comma-separated list of virtual file system implementation-specific options.
17
1.17 Fichiers et systèmes de fichiers Sous Windows
18
1.18 Fichiers et systèmes de fichiers Le même sous UNIX...
19
1.19 Fichiers et systèmes de fichiers Le lien symbolique alpha12.couveep$ ln -s /tmp/toto tata alpha12.couveep$ ls -il total 5896 2090 -rwxr-xr-x 1 couveep frec 657 Jan 10 2000 Approve 2072 -rwxr--r-- 1 couveep frec 36 Jun 26 1996 colog 2073 -rwxr-xr-x 1 couveep frec 501 Feb 05 1997 escale 2074 -rw-r--r-- 1 couveep frec 2967138 Nov 21 1997 gsv22w32.exe 2071 -rwxr--r-- 1 couveep frec 85 Mar 05 1998 infoServer 2078 -rwxr-xr-x 1 couveep frec 95 Mar 17 1998 lanoffice 2091 lrwxrwxrwx 1 couveep frec 9 Mar 27 14:12 tata -> /tmp/toto 2077 -rwxr-xr-x 1 couveep frec 423 Feb 10 1998 wnc2checkb 2075 -rwxr-xr-x 1 couveep frec 646 Feb 10 1998 wnc2doc 2076 -rwxr-xr-x 1 couveep frec 1070 Feb 10 1998 wnc2waitb 2079 -rwxr-xr-x 1 couveep frec 9164 Mar 27 12:55 xd 2070 -rwxr--r-- 1 couveep frec 73 Apr 17 1997 xemacs alpha12.couveep$ ls -il /tmp/toto 62 -rw-r--r-- 1 couveep frec 5 Mar 27 14:12 /tmp/toto alpha12.couveep$ xd -b tata 00000000: 74 6F 74 6F 0A titi.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.