OSFile

Post on 13-May-2015

91 views 0 download

Transcript of OSFile

OSFilesystem plików na bazie Unixa

Cele

Dostarczenie API dostępnego z poziomu systemu operacyjnego dającego możliwość zarządzania wirtualnym systemem plików.

Założenia

● Cała struktura będzie znajdowała się w jednym pliku

● API będzie zbliżone do unixowego● Dane będą przechowywane w drzewiastej

strukturze● Pozwoli na przechowywanie danych i

metadanych plików

API - w systemie UNIX

fd = open(path, oflag, mode);liczba = read(fd, buf, count);

API w OSFile

fd = osf_open(path, mode);liczba = osf_read(fd, buf, count);osf_write(fd, buf, count);

/* prefix “osf_” *//* brak określonego trybu pracy i blokad */

API - w systemie UNIX

dirp = opendir(const char *filename);direntp = readdir(dirp);rewinddir(dirp);closedir();

API w OSFile

dirp = osf_opendir(const char *filename);direntp = osf_readdir(dirp);osf_closedir();

OSFile API - Inne

osf_chown( dirp, int id );int osf_chown(dirp);

osf_chmod( dirp, int id );int osf_chmod(dirp);

Struktura drzewa katalogów

Hard Links

V-node

Rozmieszczenie danych (dinode)

i-nodes

dinodes

Wiele systemów plików (unix)

Dysk

Co będzie wspierane

Implementuje Nie implementuje

Rozmiar znaków ma znaczenie. Brak vfs (virtual file system)

Drzewiasta struktura Brak twardych dowiązań (ang hard links)

Uprawnienia rwx, przydział do grupy i użytkownika (uid & gid)

Brak blokad plików

Opóźniony zapis (NV RAM) Brak trigerów

Uproszczona struktura vnode, in-core inode & on-disc inode

Biblografia

“Jądro systemu UNIX” - Vahalia - Nowe horyzonty