OSFile
-
Upload
sebastian-pozoga -
Category
Technology
-
view
91 -
download
0
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
https://github.com/SebastianPozoga/OSFile
Biblografia
“Jądro systemu UNIX” - Vahalia - Nowe horyzonty