File e Directory. M. Guarracino - File e Directory 1
|
|
- Albano Cavallaro
- 9 anni fa
- Visualizzazioni
Transcript
1 File e Directory M. Guarracino - File e Directory 1
2 File e Directory Abbiamo visto come si possono utilizzare funzioni di I/O per i file: open, read, write, lseek e close Vogliamo ora analizzare ulteriori caratteristiche del filesystem e proprietà dei file La struttura che contiene gli attributi dei file è stat Esamineremo ciascun membro di stat e le funzioni che operano su tali attributi; analizzeremo quindi le funzioni che operano su file e directory M. Guarracino - File e Directory 2
3 File e Directory (cont.) La gran parte dei file che risiedono in un filesystem sono file di dati regolari, ma ci sono anche altri tipi di file: file speciali a caratteri file speciali a blocchi FIFO socket link simbolici Il kernel di Unix non fa distinzione tra file di testo e binari Come possiamo ottenere quest informazione? M. Guarracino - File e Directory 3
4 Funzioni stat fstat lstat #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int int stat stat (const char *file_name, struct stat *buf); int int fstat (int (int filedes, struct stat *buf); int int lstat (const char *file_name, struct stat *buf); Queste funzioni ritornano informazioni sul file Non è necessario avere permessi di lettura sul file, per accedere a queste informazioni I permessi necessari sono di ricerca su tutte le directory nominate nel path M. Guarracino - File e Directory 4
5 Funzioni stat fstat lstat #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int int stat stat (const char *file_name, struct stat *buf); int int fstat (int (int filedes, struct stat *buf); int int lstat (const char *file_name, struct stat *buf); stat fstat lstat ritorna informazioni sul file file_name ritorna informazioni sul file aperto sul descrittore fildes ritorna informazioni sul link simbolico, non sul file puntato da esso M. Guarracino - File e Directory 5
6 La struttura stat struct stat { dev_t st_dev; /* device */ ino_t st_ino; /* inode */ mode_t st_mode; /* file type & protection */ nlink_t st_nlink; /* number of hard links */ uid_t st_uid; /* user ID of owner */ gid_t st_gid; /* group ID of owner */ dev_t st_rdev; /* device type (if inode device) */ off_t st_size; /* total size, in bytes */ unsigned long st_blksize; /* blocksize for filesystem I/O */ unsigned long st_blocks; /* number of blocks allocated */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last modification */ }; time_t st_ctime; /* time of last change */ M. Guarracino - File e Directory 6
7 Tipi di file struct stat { dev_t st_dev; /* device */ ino_t st_ino; /* inode */ mode_t st_mode; /* file type & protection */ nlink_t st_nlink; /* number of hard links */ uid_t st_uid; /* user ID of owner */ gid_t st_gid; /* group ID of owner */ dev_t st_rdev; /* device type (if inode device) */ off_t st_size; /* total size, in bytes */ unsigned long st_blksize; /* blocksize for filesystem I/O */ unsigned long st_blocks; /* number of blocks allocated */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last modification */ }; time_t st_ctime; /* time of last change */ M. Guarracino - File e Directory 7
8 Tipi di file (cont.) L'informazione sul tipo di file si trova nel membro st_mode della struttura stat Per determinare il tipo di file si utilizzano le seguenti macro, definite in <sys/stat.h> S_ISLNK( ) S_ISREG( ) S_ISDIR( ) symbolic link regular file directory S_ISCHR( ) character device S_ISBLK( ) block device S_ISFIFO( ) FIFO* S_ISSOCK( ) socket* M. Guarracino - File e Directory 8 *Non POSIX
9 #include <sys/types.h> #include <sys/stat.h> #include "ourhdr.h" Esempio int main(int argc, char *argv[]) { int i; struct stat buf; char *ptr; #ifdef #endif } for (i = 1; i < argc; i++) { printf("%s: ", argv[i]); if (lstat(argv[i], &buf) < 0) { } S_ISSOCK } exit(0); err_ret("lstat error"); continue; if (S_ISREG(buf.st_mode)) ptr = "regular"; else if (S_ISSOCK(buf.st_mode)) ptr = "socket"; else ptr = "** unknown mode **"; printf("%s\n", ptr); M. Guarracino - File e Directory 9
10 Permessi di accesso ai file Come si è visto, st_mode contiene l'informazione relativa al tipo di file (regular file, directory,...) Il valore di st_mode codifica anche i bit di permesso di accesso ai file. S_IRUSR owner read S_IWUSR owner write S_IXUSR owner execute S_IRGRP group read S_IWGRP group write S_IXGRP group execute S_IROTH others read S_IWOTH others write S_IXOTH others execute M. Guarracino - File e Directory 10
11 Permessi e creazione dei file #include <sys/types.h> #include <sys/stat.h> mode_t umask(mode_t mask); La funzione umask viene utilizzata da open e creat per assegnare i permessi ad un file creato Ad esempio, se il valore di default di umask viene inizializzato a 022, un nuovo file creato con permessi 666 avrà 666 & ~ 022 = 644 = r w - r - - r - - La funzione ritorna il valore precedente della maschera di creazione (mode creation mask) dei file. M. Guarracino - File e Directory 11
12 Esempio #include #include #include #include <sys/types.h> <sys/stat.h> <fcntl.h> "ourhdr.h" int main(void) { umask(0); if (creat("foo", S_IRUSR S_IWUSR S_IRGRP S_IWGRP S_IROTH S_IWOTH) < 0) err_sys("creat error for foo"); umask(s_irgrp S_IWGRP S_IROTH S_IWOTH); if (creat("bar", S_IRUSR S_IWUSR S_IRGRP S_IWGRP S_IROTH S_IWOTH) < 0) err_sys("creat error for bar"); exit(0); } M. Guarracino - File e Directory 12
13 Funzioni chmod fchmod #include <sys/types.h> #include <sys/stat.h> int int chmod (const char *path, mode_t mode); int int fchmod (int fildes, mode_t mode); Queste funzioni permettono di cambiare i permessi di accesso ad un file M. Guarracino - File e Directory 13
14 #include #include #include int main(void) { struct stat <sys/types.h> <sys/stat.h> "ourhdr.h" statbuf; Esempio /* set absolute mode to "rw-r--r--" */ if (chmod("bar", S_IRUSR S_IWUSR S_IRGRP S_IROTH) < 0) err_sys("chmod error for bar"); /* turn on set-group-id and turn off group-execute */ if (stat("foo", &statbuf) < 0) err_sys("stat error for foo"); if (chmod("foo", (statbuf.st_mode & ~S_IXGRP) S_ISGID) < 0) err_sys("chmod error for foo"); exit(0); } M. Guarracino - File e Directory 14
15 User ID e Group ID struct stat { dev_t st_dev; /* device */ ino_t st_ino; /* inode */ mode_t st_mode; /* file type & protection */ nlink_t st_nlink; /* number of hard links */ uid_t st_uid; /* user ID of owner */ gid_t st_gid; /* group ID of owner */ dev_t st_rdev; /* device type (if inode device) */ off_t st_size; /* total size, in bytes */ unsigned long st_blksize; /* blocksize for filesystem I/O */ unsigned long st_blocks; /* number of blocks allocated */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last modification */ }; time_t st_ctime; /* time of last change */ M. Guarracino - File e Directory 15
16 Funzioni chown fchown lchown #include <sys/types.h> #include <unistd.h> int int chown (const char *path, uid_t owner, gid_t group); int int fchown (int fd, fd, uid_t owner, gid_t group); int int lchown (const char *path, uid_t owner, gid_t group); Tali funzioni permettono di cambiare lo user ID ed il group ID di un file Solo il superutente può modificarne il proprietario Un utente può solo modificarne il gruppo, con uno tra quelli supplementari a cui appartiene M. Guarracino - File e Directory 16
17 Set UID e Set GID A ciascun processo vengono associati i seguenti identificativi: real user ID e real group ID identificano l'utente effective user ID, effective group ID, e supplementary group ID determinano i permessi di accesso ai file saved set-user-id e saved set-group-id contengono copia dell effective user ID e effective group ID di un programma in esecuzione M. Guarracino - File e Directory 17
18 Set UID e Set GID Ogni file ha un proprietario ed un gruppo che lo possiede Tali informazioni si trovano in st_uid e st_gid di stat Quando si lancia un programma, questo viene eseguito con i permessi di chi lo manda in esecuzione, non di chi lo possiede Si può inizializzare un flag in st_mode in modo che, quando un determinato file di programma viene eseguito, l'effective user ID del processo sia quello di chi possiede il file. Tale flag è detto set-user-id flag. M. Guarracino - File e Directory 18
19 Esempio [mariog]$ ls -la /usr/bin/passwd -r-s--x--x 3 root sys Dec /usr/bin/passwd [mariog]$ passwd (Ctrl Z) [1]+ Stopped passwd [mariog]$ ps -efa grep passwd root :32:52 pts/2 0:00 passwd mariog :33:02 pts/2 0:00 grep passwd [mariog]$ M. Guarracino - File e Directory 19
20 Set UID e Set GID Analogamente è possibile mandare in esecuzione un processo con un effective group ID uguale a quello del file di programma Il relativo flag è detto set-group-id flag Se il set-group-id è applicato ad una directory, i file creati in quella directory ereditano il group ID dalla directory, non dall'effective group ID del processo che li ha creati S_ISUID S_ISGID set UID bit set GID bit S_ISVTX sticky bit M. Guarracino - File e Directory 20
21 Esempio [mariog]$ uname -a SunOS 5.6 Generic_ sun4u sparc SUNW,Ultra-4 [mariog]$ umask 0 [mariog]$ touch prova [mariog]$ ls -la prova -rw-rw-rw- 1 mariog math 0 Dec 5 09:24 prova [mariog]$ chmod 7744 prova [mariog]$ ls -la prova -rwsr-lr-- 1 mariog math 0 Dec 5 09:24 prova [mariog]$ M. Guarracino - File e Directory 21
22 Esempio [mariog]$ uname -a Linux deneb #1 Tue Aug 22 16:49:06 EDT 2000 i686 [mariog]$ umask 022 [mariog]$ touch prova [mariog]$ ls -la prova -rw-r--r-- 1 mariog users 0 Dec 5 09:14 prova [mariog]$ chmod 7744 prova [mariog]$ ls -la prova -rwsr-sr-t 1 mariog users 0 Dec 5 09:14 prova [mariog]$ M. Guarracino - File e Directory 22
23 Grandezza dei file struct stat { dev_t st_dev; /* device */ ino_t st_ino; /* inode */ mode_t st_mode; /* file type & protection */ nlink_t st_nlink; /* number of hard links */ uid_t st_uid; /* user ID of owner */ gid_t st_gid; /* group ID of owner */ dev_t st_rdev; /* device type (if inode device) */ off_t st_size; /* total size, in bytes */ unsigned long st_blksize; /* blocksize for filesystem I/O */ unsigned long st_blocks; /* number of blocks allocated */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last modification */ }; time_t st_ctime; /* time of last change */ M. Guarracino - File e Directory 23
24 Grandezza dei file Il membro st_size di stat contiene la grandezza in byte del file. Ha senso solo per file regolari, directory e link simbolici Se presenti, st_blksize e st_blocks si riferiscono rispettivamente al migliore fattore di blocco per eseguire operazioni di I/O sul file e al numero di blocchi da 512 byte allocati per il file La libreria standard del C utilizza tale fattore di blocco per eseguire le operazioni su file M. Guarracino - File e Directory 24
25 Troncamento #include <unistd.h> int inttruncate (const char *path, off_t length); int int ftruncate (int fd, fd, off_t length); Queste funzioni troncano un file esistente a length byte Se il file ha meno di length byte, il comportamento della funzione dipende dall'implementazione Per troncare un file è preferibile copiarne solo la parte desiderata M. Guarracino - File e Directory 25
26 Filesystem M. Guarracino - File e Directory 26
27 Filesystem M. Guarracino - File e Directory 27
28 Link hard e simbolici struct stat { dev_t st_dev; /* device */ ino_t st_ino; /* inode */ mode_t st_mode; /* file type & protection */ nlink_t st_nlink; /* number of hard links */ uid_t st_uid; /* user ID of owner */ gid_t st_gid; /* group ID of owner */ dev_t st_rdev; /* device type (if inode device) */ off_t st_size; /* total size, in bytes */ unsigned long st_blksize; /* blocksize for filesystem I/O */ unsigned long st_blocks; /* number of blocks allocated */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last modification */ }; time_t st_ctime; /* time of last change */ M. Guarracino - File e Directory 28
29 Link hard e simbolici E' possibile che due directory puntino allo stesso i-node (hard link). Ciascun i-node ha un contatore che contiene il numero di directory che puntano all'i-node. Solo quando il contatore è 0, i blocchi associati al file possono essere rilasciati Un link simbolico è un file in cui è memorizzato il nome di un file, a cui punta il link M. Guarracino - File e Directory 29
30 Esempio lrwxrwxrwx 1 mariog user 17 Mar 20 22:42 zzz -> /users/mariog/tmp zzz è un file in cui i 17 byte di dati contengono /users/mariog/tmp (non viene memorizzato il carattere di terminazione) Non è possibile che una directory punti ad un i-node al di fuori del filesystem a cui appartiene M. Guarracino - File e Directory 30
31 Funzioni link E' possibile far puntare più directory all'i-node di un file La maniera per creare un hard link ad un file esistente è quella di usare la funzione link Solo il superutente può creare gli hard link #include <unistd.h> int intlink (const char *oldpath, const char *newpath); Alcune implementazioni richiedono che oldpath e newpath risiedano nello stesso filesystem. M. Guarracino - File e Directory 31
32 Funzioni unlink Per rimuovere un elemento dalla tabella della directory si utilizza la funzione unlink #include <unistd.h> int intunlink (const char *pathname); La funzione decrementa il numero di link del file puntato da pathname. Il file risulta ancora accessibile, se il numero di link è non nullo. M. Guarracino - File e Directory 32
33 Funzioni unlink Quando il numero di link del file è 0, il contenuto del file può essere cancellato Ciò non accade se un processo ha aperto il file Quando il file viene chiuso, il kernel conta il numero di processi che hanno aperto il file: se questo è zero ed il numero di link del file è zero, allora il file è cancellato Tale proprietà viene utilizzata per creare file accessibili solo da un determinato processo. M. Guarracino - File e Directory 33
34 Link Simbolici I link simbolici sono servono per aggirare il fatto che 1. un hard link non può essere fatto tra filesystem differenti 2. solo il superutente può creare un link tra directory Non ci sono limitazioni di filesystem per i link simbolici e qualsiasi utente può crearli. Essi sono normalmente utilizzati per spostare un file o un intero sottoalbero in un'altra posizione nel filesystem. M. Guarracino - File e Directory 34
35 Esempio temp [mariog]$ mkdir temp [mariog]$ touch temp/a test a [mariog]$ ln -s../temp temp/test [mariog]$ ls -l temp total 0 -rw-rw-r-- 1 mariog user 44 Mar 19 18:30 a lrwxrwxrwx 1 mariog user 7 Mar 19 18:31 test ->../temp [mariog]$ M. Guarracino - File e Directory 35
36 Funzioni symlink readlink #include <unistd.h> int int symlink (const char *oldpath, const char *newpath); int int readlink (const char *path, char *buf, size_t bufsiz); symlink viene utilizzata per creare un link simbolico. Non è necessario che oldpath esista Per leggere un link simbolico, è necessario utilizzare readlink, che apre il link, legge il contenuto e lo chiude Il contenuto del link è posto in buf, senza carattere di terminazione M. Guarracino - File e Directory 36
37 Sommario Abbiamo visto in dettaglio la struttura stat Abbiamo analizzato gli attributi dei file Unix e le funzioni che ci permettono di eseguire operazioni su di essi M. Guarracino - File e Directory 37
Gestione di File e Directory
Gestione di File e Directory Duplicazione di file descriptor Un file descriptor puo' essere duplicato utilizzando: int dup (int filedes); int dup2(int filedes, int filedes2); dup restituisce un file descriptor
DettagliFile e Directory. M. Guarracino - File e Directory 1
File e Directory M. Guarracino - File e Directory 1 Date dei file Ogni volta che accediamo ai dati contenuti in un file, il sistema memorizza la data di ultimo accesso La stessa cosa accade quando modifichiamo
DettagliLaboratorio di Sistemi Operativi
II Semestre - Marzo/Giugno 2008 Matricole congr. 0 mod 3 File & Directory #include #include stat,fstat e lstat int stat (const char *pathname, struct stat *buf); int fstat (int
DettagliLaboratorio di Sistemi Operativi primavera 2009
primavera 2009 stat,fstat e lstat File & Directory (1) int stat (const char *pathname, struct stat *buf); int fstat (int fd, struct stat *buf); int lstat (const char *pathname,
DettagliLaboratorio di Sistemi Operativi Marzo-Giugno 2008 Matr. Congr. 0 mod 3
Marzo-Giugno 2008 Matr. Congr. 0 mod 3 File & Directory (2) #include #include umask mode_t umask (mode_t cmask); Descrizione: setta la maschera di creazione per l accesso ad
Dettagli1. File normale: contiene dati 2. Directory: contiene nomi di altri file ed informazioni sugli stessi
File Tipi di file 2 1. File normale: contiene dati 2. Directory: contiene nomi di altri file ed informazioni sugli stessi 3. File speciali di caratteri: es. un terminale, /dev/tty 4. File speciali a blocchi:
DettagliFile I/O. M. R. Guarracino: File I/O 1
File I/O M. R. Guarracino: File I/O 1 File I/O Gran parte delle operazioni su file in ambiente UNIX possono essere eseguite utilizzando solo cinque funzioni: open read write lseek close M. R. Guarracino:
DettagliScrivere alla fine di un file Vi sono due modi per scrivere alla fine di un file:
Scrivere alla fine di un file Vi sono due modi per scrivere alla fine di un file: usare lseek per spostarsi alla fine del file e poi scrivere: lseek(filedes, (off_t)0, SEEK_END); write(filedes, buf, BUFSIZE);
Dettagli&& (nessun altro processo ha il file aperto) && (il fd e chiuso) Cancella il file;
CREAZIONE ritorna fd o 1 Pseudocodice dell operazione: If(file esiste) If(Write permission) Tronca la lunghezza a 0 e lascia il file aperto in scrittura; Else Exit(-1); Else Alloca un nuovo INODE con link=1
DettagliProgram m azione di Sistem a 2a
Program m azione di Sistem a 2a Lucidi per il corso di Laboratorio di Sistemi Operativi tenuto da Paolo Baldan presso l'università Ca' Foscari di Venezia, anno accademico 2004/ 2005. Parte di questo materiale
DettagliLaboratorio di Sistemi Operativi primavera 2009
primavera 2009 dimensione di file La dimensione dei files (in bytes) è in st_size (della struttura stat) File & Directory (2) La dimensione del blocco utilizzato nelle operazioni di I/O è contenuto in
DettagliIl sistema operativo LINUX Il file system. Indice. Blocchi logici. Indice. Super block. G. Di Natale, S. Di Carlo
Il sistema operativo LINUX Il file system Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica Blocchi logici Il file system è
DettagliTipi di file. File. Proprietà dei file. Link simbolici. Set-user-ID e set-group-id. Identificatori e processi
Tipi di file 2 File 1. File normale: contiene dati 2. Directory: contiene nomi di altri file ed informazioni sugli stessi 3. File speciali di caratteri: es. un terminale, /dev/tty 4. File speciali a blocchi:
DettagliLink e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A. 2005-2006
Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione Corso di Sistemi Operativi A. A. 2005-2006 Link e permessi Link Un riferimento ad un file è detto link Ogni file può avere un numero
DettagliChiamate di sistema per la Gestione dei processi in POSIX. E.Mumolo, DEEI mumolo@units.it
Chiamate di sistema per la Gestione dei processi in POSIX E.Mumolo, DEEI mumolo@units.it Process id ed altri identificatori pid_t getpid(); // Process id del processo chiamante pid_t getppid(); // Process
DettagliCapitolo 3 -- Stevens
File & Directory Capitolo 3 -- Stevens stat, fstat e lstat #include #include int stat (const char *pathname, struct stat *buf); int fstat (int fd, struct stat *buf); int lstat
DettagliScrivere alla fine di un file Vi sono due modi per scrivere alla fine di un file:
Scrivere alla fine di un file Vi sono due modi per scrivere alla fine di un file: usare lseek per spostarsi alla fine del file e poi scrivere: lseek(filedes, (off_t)0, SEEK_END); write(filedes, buf, BUFSIZE);
DettagliGestione dei file: filosofia. carica in memoria l i-node del file read / write. close cose rilascia le strutture dati di memoria del file
File system 1 Gestione dei file: filosofia open carica in memoria l i-node del file read / write accedono al file tramite il suo i-node close cose rilascia le strutture dati di memoria del file 2 Gestione
DettagliInput-Output di basso livello
Input-Output di basso livello File in UNIX Il kernel di UNIX vede tutti i file come flussi non formattati di byte; il compito di interpretare ogni struttura logica interna ad un file e lasciato alle applicazioni.
DettagliSistemi Operativi. II Semestre - Marzo/Giugno 2012 Matricole congr. 0 mod 3. File & Directory
II Semestre - Marzo/Giugno 2012 Matricole congr. 0 mod 3 File & Directory #include Leggere Directory DIR *opendir(const char *pathname); ritorna NULL su errore struct dirent *readdir(dir *dp);
DettagliSistemi Operativi. II Semestre - Marzo/Giugno 2011 Matricole congr. 0 mod 3. File & Directory. Leggere Directory
II Semestre - Marzo/Giugno 2011 Matricole congr. 0 mod 3 File & Directory Leggere Directory DIR *opendir(const char *pathname); ritorna NULL su errore struct dirent *readdir(dir *dp); ritorna
DettagliScrivere alla fine di un file Vi sono due modi per scrivere alla fine di un file:
Scrivere alla fine di un file Vi sono due modi per scrivere alla fine di un file: usare lseek per spostarsi alla fine del file e poi scrivere: lseek(filedes, (off_t)0, SEEK_END); write(filedes, buf, BUFSIZE);
DettagliDigressione: man 2...
Syscall File I/O Digressione: man 2... Le funzioni della libreria standard UNIX associate alle system call di Linux sono documentate nella sezione 2 di man e.g.: man 2 open Ogni manpage di system call
DettagliCapitolo 3 -- Stevens
I/O non bufferizzato (1) Capitolo 3 -- Stevens System Call open close read write lseek 1.2 sono degli interi non negativi file descriptor il kernel assegna un file descriptor ad ogni file aperto le funzioni
DettagliCorso di Sistemi Operativi A.A CHIAMATE DI SISTEMA PER FILE E SEMAFORI. Fabio Buttussi
Corso di Sistemi Operativi A.A. 2008-2009 - CHIAMATE DI SISTEMA PER FILE E SEMAFORI Fabio Buttussi System call per l accesso a file Nome open close read write lseek creat remove unlink stat Significato
DettagliCorso di Laboratorio di Sistemi Operativi A.A
Corso di Laboratorio di Sistemi Operativi A.A. 2016 2017 Lezione 14 Ivan Scagnetto ivan.scagnetto@uniud.it Nicola Gigante gigante.nicola@spes.uniud.it Dipartimento di Scienze Matematiche, Informatiche
DettagliInter-process communication
Primitive di Comunicazione 1 Inter-process communication Nell'attività del sistema si rende necessario la cooperazione tra processi per realizzare le diverse funzionalità offerte all'utente. La cooperazione
DettagliComandi. Sistema Operativo
Introduzione Programmazione di sistema in UNIX File comandi utente Shell Comandi Sistema Operativo Programmi in C Servizi di sistema (primitive, system call) solo per driver fork exec wait exit char I/O
DettagliLab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix-
Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix- 1 Sommario Esercizi sulla gestione dei processi Creazione di un nuovo processo: fork Sincronizzazione tra processi: wait 2 -
DettagliFiles e Directories. Franco Maria Nardini
Files e Directories Franco Maria Nardini stat(2) Famiglia di system call Ritornano gli attributi estesi del file riferito in caso di link simbolico, lstat(2) ritorna attributi del link stesso le altre,
DettagliCREAZIONE DI UN FILE
#include #include CREAZIONE DI UN FILE fd = creat(filename, mode); int fd, mode; char *filename; La primitiva creat crea un file, se non ne esiste uno col nome specificato, oppure
DettagliSistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory
FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File
DettagliLaboratorio di Sistemi Operativi
Le FIFO pipe vs fifo la pipe può essere usata solo tra processi "imparentati" (che hanno un antenato comune che ha creato la pipe) la fifo consente di scambiare dati tra processi qualsiasi 2 1 FIFO (named
DettagliProgrammazione di sistema in UNIX. Immagine di un processo in UNIX. Area dati. File comandi utente
Programmazione di sistema in UNIX File comandi utente Shell Gestione processi Comandi Sistema Operativo Servizi di sistema (primitive, system call) fork exec wait exit char I/O block I/O open create close
DettagliIntroduzione ai Device Drivers in Linux. E.Mumolo, DEEI mumolo@units.it
Introduzione ai Device Drivers in Linux E.Mumolo, DEEI mumolo@units.it 1 Device Drivers Moduli software che gestiscono le periferiche attraverso il file system Tutte le periferiche sono viste come file
DettagliGestione dei file: filosofia. carica in memoria l i-node del file read / write. close cose rilascia le strutture dati di memoria del file
File system 1 Gestione dei file: filosofia open carica in memoria l i-node del file read / write accedono al file tramite il suo i-node close cose rilascia le strutture dati di memoria del file 2 Caratteristiche
DettagliStruttura del Micro Filesystem (µfs)
Struttura del Micro Filesystem (µfs) Il Micro Filesystem deve essere organizzato all'interno di un unico file regolare Linux (dev_ufs) ed può basato sul filesystem FAT-32 con la gestione dei permessi in
DettagliModulo 5: Programmazione di sistema --- Parte C: System call per la gestione dei file
1 Modulo 5: --- Parte C: System call per la gestione dei file Laboratorio di Sistemi Operativi I Anno Accademico 2006-2007 Francesco Pedullà (Tecnologie Informatiche) Massimo Verola (Informatica) Copyright
DettagliCORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3
UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Ingegneria Corso di Laurea in Ingegneria Elettronica-Informatica-Telecomunicazioni a.a. 2001-2002 CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3 1 Trasferimento
DettagliI/O su Socket TCP: read()
I/O su Socket TCP: read() I socket TCP, una volta che la connessione TCP sia stata instaurata, sono accedibili come se fossero dei file, mediante un descrittore di file (un intero) ottenuto tramite una
DettagliSistemi Operativi. Organizzazione logica ed implementazione di un File System
Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Organizzazione logica ed implementazione di un File
DettagliFilesystem-centrismo
Filesystem Filesystem-centrismo i sistemi UNIX sono filesystem-centrici : tutte le risorse hw/sw di sistema sono mappate all'interno del filesystem ed indirizzate come tali esempi: disco ide /dev/hda console
DettagliInter-Process Communication
Inter-Process Communication (IPC) IPCS 1 1. Code di messaggi 2. Semafori 3. Memoria condivisa send receive 2? 3 p1 p3 p2 CODE DI MESSAGGI Modello di Comunicazione Code di Messaggi Il processo ricevente
DettagliCORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3. 1 strace : visualizzazione delle system call invocate da un processo
UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica a.a. 2005-2006 CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3 1 strace : visualizzazione delle system call
DettagliChiamate di sistema per la Inter Process Communication (IPC) in POSIX. E.Mumolo, DEEI mumolo@units.it
Chiamate di sistema per la Inter Process Communication (IPC) in POSIX E.Mumolo, DEEI mumolo@units.it Pipe Cos'è un pipe? E' un canale di comunicazione che unisce due processi Caratteristiche: La più vecchia
DettagliPer operare su un file abbiamo bisogno di aprirlo, scriverlo, leggerlo, chiuderlo:
I/O (Input/Output) System Call di I/O 2 Per operare su un file abbiamo bisogno di aprirlo, scriverlo, leggerlo, chiuderlo: open (e creat) write read close lseek 1 File descriptors 3 File descriptor (fd)
DettagliIPC System V. Code di messaggi
IPC System V Code di messaggi Panoramica coda di messaggi una lista concatenata di messaggi, FIFO semaforo un contatore condiviso, atomicamente modificabile memoria condivisa uno spazio di memoria accessibile
DettagliLab. di Sistemi Operativi - Esercitazione n 9- -Thread-
Lab. di Sistemi Operativi - Esercitazione n 9- -Thread- 1 Sommario Esercizi su: Comunicazione tra processi: la funzione pipe() Condivisione dati e codice tra due o più processi: concetto di Thread 2 -
DettagliDigressione: man (2)...
Syscall File I/O Digressione: man (2)... Le funzioni della libreria standard UNIX associate alle system call di Linux sono documentate nella sezione 2 di man e.g.: man 2 open Ogni manpage di system call
DettagliInterfaccia del file system
Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory Montaggio di un file system Condivisione di file Protezione 9.1 File E un insieme di informazioni correlate e
DettagliFiles, File I/O, File Sharing. Franco Maria Nardini
Files, File I/O, File Sharing Franco Maria Nardini UNIX file types UNIX non richiede una struttura interna del file. Dal punto di vista del sistema operativo c e un solo tipo di file. Struttura e interpretazione
Dettagli1. Standard input 2. Standard output 3. Standard error
System Call di I/O 2 Per operare su un file abbiamo bisogno di aprirlo, scriverlo, leggerlo, chiuderlo: open (e creat) write read close lseek I/O (Input/Output) File descriptors 3 Standard file 4 File
DettagliChiamate di sistema. Gestione sistematica di errori Chiamate che lavorano su file
Chiamate di sistema Gestione sistematica di errori Chiamate che lavorano su file 1 Chiamate di sistema: errori Le chiamate di sistema possono fallire in caso di fallimento ritornano un valore diverso da
Dettaglicostruttori e distruttori
costruttori e distruttori Costruttore E un metodo che ha lo stesso nome della classe a cui appartiene: serve per inizializzare un oggetto all atto della sua creazione Ce ne possono essere uno, più di uno,
DettagliDrivers. Introduzione Tipologie Struttura Interazione con il kernel
Drivers Introduzione Tipologie Struttura Interazione con il kernel Driver Un driver è un modulo del sistema operativo Esterno al kernel Dedicato alla gestione di una specifica periferica Come altre funzionalità
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 22 Martedì 7-1-2014 1 System Call per l'uso dei segnali Un processo che
DettagliIntroduzione al Linguaggio C
Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C
DettagliLaboratorio di Sistemi Operativi
Laboratorio di Sistemi Operativi LAB9 System call gestione file 2002/2003 Pagani Trentini Slide 1 Agenda Linux creat ; open ; close ; read ; write ; lseek ; (f)stat; mkdir ; rmdir ; link (cenni) ; unlink
DettagliSISTEMI OPERATIVI. Linguaggio C e Linux. Diffusione dei linguaggi di programmazione IEEE Giorgio Giacinto 2016.
SISTEMI OPERATIVI Linguaggio C e Linux Diffusione dei linguaggi di programmazione IEEE 2016 2 Diffusione dei linguaggi di programmazione IEEE 2015 e 2014 2015 2014 3 Diffusione dei linguaggi di programmazione
DettagliStruttura del sistema operativo GNU/Linux
Struttura del sistema operativo GNU/Linux http://www.glugto.org/ Cos'è un filesystem Cosa vuol dire FHS Composizione albero di directory Concetto di Mount Utente root Permessi su files e directory GNU/Linux
DettagliCognome: Nome: Matricola: Sicurezza dei sistemi informatici e delle reti 18 febbraio 2014
Tempo a disposizione: 70 minuti. Libri e appunti chiusi. Vietato comunicare con chiunque. Vietato l'uso di smartphone, calcolatrici e affini. 1. Protocolli crittografici. 1.1. Fornisci un esempio di protocollo
DettagliCapitolo 11 -- Silberschatz
Implementazione del File System Capitolo 11 -- Silberschatz Implementazione del File System File system: Definizione dell aspetto del sistema agli occhi dell utente Algoritmi e strutture dati che permettono
DettagliGli Extended file system di Linux (Ext2/Ext3/Ext4)
Gli Extended file system di Linux (Ext2/Ext3/Ext4) Gli extended file systems sono i file system di default di Linux Ext3, Ext4 sono le versioni migliorate di Ext2 (dimensioni file, prestazioni...) e ne
DettagliLinux - La Shell Bash
DEI DEI -- Politecnico di di Bari Bari Linux - La Shell Bash Gestione file e directory Directory di sistema Percorsi relativi e assoluti I comandi: pwd, ls, cd, cp, rm, mv, mkdir, rmdir, stat, touch Esercizi
DettagliModulo 8 System call per la gestione dei file
1 Modulo 8 Laboratorio di Sistemi Operativi I Anno Accademico 2008-2009 Copyright 2005-2007 Francesco Pedullà, Massimo Verola Copyright 2001-2005 Renzo Davoli, Alberto Montresor (Universitá di Bologna)
DettagliIl Software. Il software del PC. Il BIOS
Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:
DettagliSezione 2: chiamate di sistema
a2» 2013.11.11 --- Copyright Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net Sezione 2: chiamate di sistema os16: _Exit(2)..........................................1402 os16: _exit(2)........................................
DettagliIntroduzione alla. Alessandra Giordani agiordani@disi.unitn.it Lunedì 27 febbraio 2012 http://disi.unitn.it/~agiordani/ 1
Introduzione alla Shell di UNIX Alessandra Giordani agiordani@disi.unitn.it Lunedì 27 febbraio 2012 http://disi.unitn.it/~agiordani/ 1 Composizione di un sistema informativo: Hardware (CPU, periferiche,
DettagliStrutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)
Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliIl File System. Il file system
Il File System Il file system Parte di SO che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa Realizza i concetti astratti di file:
DettagliProgrammazione multiprocesso
DTI / ISIN / Titolo principale della presentazione 1 Programmazione multiprocesso Amos Brocco, Ricercatore, DTI / ISIN 20 febbraio 2012 2 Processi Cos'è un processo? Un programma in esecuzione Spazio di
DettagliModello di Programma in UNIX
Modello di Programma in UNIX Spazio di Indirizzamento per ogni singolo PROCESSO (Modello ad ambiente locale) Aree Dati Stack Heap Dati non inizializzati Dati dinamici Processo riferisce dati codice Dati
DettagliIl file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa
Il File System 1 Il file system E quella componente del SO che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa Realizza i concetti astratti
DettagliCorso ForTIC C2 LEZIONE n. 3
Corso ForTIC C2 LEZIONE n. 3 I due Desktop più diffusi KDE e GNOME Azioni concesse ad un utente NON privilegiato Sintassi generale dei comandi Muoversi all'interno del file system utilizzando i comandi
DettagliSistemi Operativi. Esercitazione 10. Corso di Laurea Triennale in Ingegneria Informatica. daniel.cesarini@for.unipi.it
Sistemi Operativi Corso di Laurea Triennale in Ingegneria Informatica Esercitazione 10 Virtual Filesystem mount, umount I/O, Unix I/O, Standard I/O Pipe e Fifo daniel.cesarini@for.unipi.it 1 Domande sulle
Dettagliprincipali componenti di un calcolatore La memoria secondaria La memoria secondaria Unita disco consolle CPU stampante
principali componenti di un calcolatore LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica macchina di Von Neumann Sistemi Operativi : memoria secondariae file system Marco Lapegna Dipartimento
DettagliProgrammazione di sistema in Linux: gestione dei file. E. Mumolo
Programmazione di sistema in Linux: gestione dei file E. Mumolo Struttura di Linux System Call per il file system System Call per i processi Hardware: dischi, CPU, monitor, tastiera, schede di rete, porte
DettagliI puntatori e l allocazione dinamica di memoria
I puntatori e l allocazione dinamica di memoria L allocazione delle variabili Allocazione e rilascio espliciti di memoria Le funzioni malloc e free 2 2006 Politecnico di Torino 1 Allocare = collocare in
DettagliMatlab: Gestione avanzata dei file
Matlab: Gestione avanzata dei file Informatica B File 2 Contenitori di informazione permanenti Sono memorizzati su memoria di massa Possono continuare ad esistere indipendentemente dalla vita del programma
DettagliVariabili e tipi di dato
Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per
DettagliUtenti e gruppi. Ogni utilizzatore di UNIX ha associato: Nomeutente nome alfanumerici UID identità numerica
Utenti e gruppi Utenti e gruppi Ogni utilizzatore di UNIX ha associato: Un identità univoca Nomeutente nome alfanumerici UID identità numerica Uno o più gruppi Nomegruppo nome alfanumerico GID identità
DettagliSistemi Operativi: Programmazione di Sistema
Corso di Sistemi Operativi: Programmazione di Sistema Corso di Laurea in Informatica, Università di Firenze Anno accademico 2011/2012 Prof. Luca Ferrari e-mail: ferrari@dsi.unifi.it telefono: 055 4237454
DettagliGestione dei File in C
Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte
DettagliRecord locking con la system call fcntl
Record locking con la system call fcntl Il record locking è un metodo per disciplinare la cooperazione tra processi. Permette ad un processo di poter accedere ad un file in modo esclusivo. È utile quindi
DettagliFunzioni matlab per la gestione dei file. Informatica B Prof. Morzenti
Funzioni matlab per la gestione dei file Informatica B Prof. Morzenti File Contenitori di informazione permanenti Sono memorizzati su memoria di massa Possono continuare a esistere indipendentemente dalla
DettagliCAP.8: Il file system
Struttura interna del sistema operativo Linux CAP.8: Il file system Primitive per la gestione dei file 28/10/2013 File System Il gestore del file system è quel componente del Sistema Operativo che realizza
DettagliLaboratorio di Programmazione
Laboratorio di Programmazione Federico Spizzo Dipartimento di Fisica / Edificio C Stanza 006 Tel: 0532 974231 E-mail: federico.spizzo@unife.it Gianluigi Cibinetto Dipartimento di Fisica / Edificio C Stanza
DettagliEsempio di domande sul file system
Esempio di domande sul file system Si supponga che un file system usi blocchi di 4 Kbyte, e che un puntatore ad un blocco occupi 4 byte. Se l INODE di un file utilizza 12 blocchi, un blocco indiretto ed
DettagliI.S. Sobrero. Dipartimento di Informatica. Utilizzo. install.linux@home. 16/02/2007 install.linux@home Marco Marchisotti
I.S. Sobrero Dipartimento di Informatica Utilizzo install.linux@home 1 La shell La shell di Linux è a linea di comando. Appare obsoleta e difficile da usare, ma in realtà è molto più potente e versatile
DettagliChiamate di sistema. Gestione sistematica di errori Chiamate che lavorano su file
Chiamate di sistema Gestione sistematica di errori Chiamate che lavorano su file 1 Chiamate di sistema: errori Le chiamate di sistema possono fallire in caso di fallimento ritornano un valore diverso da
DettagliIl Sistema Operativo: il File System
Il Sistema Operativo: il File System Il File System è quella parte del S.O. che si occupa di gestire e strutturare le informazioni memorizzate su supporti permanenti (memoria secondaria) I file vengono
DettagliI file di dati. Unità didattica D1 1
I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità
DettagliDirectory. Le directory unix sono file.
Le directory unix sono file. Directory Molte system call per i file ordinari possono essere utilizzate per le directory. E.g. open, read, fstat, close. Tuttavia le directory non possono essere create con
DettagliCalcolatori Elettronici Parte X: l'assemblatore as88
Anno Accademico 2013/2014 Calcolatori Elettronici Parte X: l'assemblatore as88 Prof. Riccardo Torlone Università Roma Tre L'assemblatore as88 Disponibile presso: CD-ROM allegato al libro di testo del corso
DettagliPOSIX - Gestione dei Segnali. E.Mumolo, DEEI mumolo@units.it
POSIX - Gestione dei Segnali E.Mumolo, DEEI mumolo@units.it Segnali in POSIX Segnali in Posix Modalità di notifiche relative a vari eventi asincroni I signal interrompono un processo e possono o meno essere
DettagliSistemi Operativi II
Sistemi Operativi II Massimo Bernaschi Istituto per le Applicazioni del Calcolo Mauro Picone Consiglio Nazionale delle Ricerche Viale del Policlinico, 137-00161 Rome - Italy http://www.iac.cnr.it/ e-mail:
DettagliLaboratorio di Sistemi Operativi
II Semestre - Marzo/Giugno 2008 matricole congr. 0 mod 3 I/O non bufferizzato System Call open close read write lseek 2 1 file descriptor sono degli interi non negativi il kernel assegna un file descriptor
DettagliPermessi, utenti e gruppi
Permessi, utenti e gruppi Daniele Venzano 9 novembre 2003 Indice 1 Introduzione 1 2 Concetti generali 2 2.1 Esempio..................................... 2 3 File importanti 2 3.1 /etc/group...................................
Dettagli