SlideShare a Scribd company logo
1 of 19
Download to read offline
OSFile
system 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

More Related Content

More from Sebastian Pożoga (20)

GoLang & GoatCore
GoLang & GoatCore GoLang & GoatCore
GoLang & GoatCore
 
Go dla elektronika
Go dla elektronikaGo dla elektronika
Go dla elektronika
 
Angular2 - Co jest grane?!?!
Angular2 - Co jest grane?!?! Angular2 - Co jest grane?!?!
Angular2 - Co jest grane?!?!
 
Fosdem i inne konferencje
Fosdem i inne konferencjeFosdem i inne konferencje
Fosdem i inne konferencje
 
Angular2 - In Action
Angular2  - In ActionAngular2  - In Action
Angular2 - In Action
 
Hardgroup - Raspberry PI #1
Hardgroup - Raspberry PI #1Hardgroup - Raspberry PI #1
Hardgroup - Raspberry PI #1
 
IoT dla programistów
IoT dla programistówIoT dla programistów
IoT dla programistów
 
Sails.js - Overview
Sails.js - OverviewSails.js - Overview
Sails.js - Overview
 
3D Printing
3D Printing3D Printing
3D Printing
 
Overview of AngularJS
Overview of AngularJS Overview of AngularJS
Overview of AngularJS
 
Meet.php #gpio
Meet.php #gpioMeet.php #gpio
Meet.php #gpio
 
OSFile#2
OSFile#2OSFile#2
OSFile#2
 
Game jump frontend introduction #workshop1
Game jump  frontend introduction #workshop1Game jump  frontend introduction #workshop1
Game jump frontend introduction #workshop1
 
Game jump: frontend introduction #1
Game jump: frontend introduction #1Game jump: frontend introduction #1
Game jump: frontend introduction #1
 
The future of technologies
The future of technologiesThe future of technologies
The future of technologies
 
gameJUMP.pl#about
gameJUMP.pl#aboutgameJUMP.pl#about
gameJUMP.pl#about
 
Poznań 4.04.2013
Poznań 4.04.2013Poznań 4.04.2013
Poznań 4.04.2013
 
Programming style
Programming styleProgramming style
Programming style
 
Blender3 d
Blender3 dBlender3 d
Blender3 d
 
Events poznań 7.02.2013
Events poznań 7.02.2013Events poznań 7.02.2013
Events poznań 7.02.2013
 

OSFile