next up previous contents
Next: VFS Up: Niezależność od systemu plików Previous: Niezależność od systemu plików   Spis rzeczy

File System Switch

SVR3 z zaimplementowanym File System Switch (FSS) oferował środowisko obsługujące jednocześnie wiele różnych systemów plików. Tak jak wcześniejsze wersje UNIXa SVR3 zachowywał mapowanie pomiędzy deskryptorem pliku po stronie użytkownika a tablicą plików i in-core inode'ami. Różnica między tym systemem a wersjami zależnymi od systemu plików polegała głównie na nowej implementacji in-core inode'ów. Nowe inode'y posiadały pola wspólne dla wszystkich systemów plików (identyfikatory użytkownika i grupy, rozmiar pliku itp.) i dodatkowo możliwość związania z nimi danych specyficznych dla systemu plików. Dodatkowe pola to:

Zestaw operacji charakterystycznych dla danego systemu plików znajdował się w strukturze fstypsw. Tablice o tej samej nazwie przechowywała te struktury dla każdego obsługiwanego systemu plików.

W momencie otwierania pliku pole i_fstypp było ustawiane tak, aby wskazywało na element w tablicy fstypsw związane z odpowiednim systemem plików. Wywołanie funkcji odbywało się przez makra np.:
#define FS_READI(ip) (fstypsw[(ip)->i_fstyp].fs_readi)(ip)
Wszystkie systemy plików musiały przestrzegać nazewnictwa FSS i ilości argumentów przekazywanych do funkcji.

FSS był dużym krokiem naprzód w porównaniu do tradycyjnych obsługujących jeden system plików UNIXów. Jednak został bardzo szybko zastąpiony przez lepszy interfejs Sun VFS/vnode zaimplementowany w SVR4.


next up previous contents
Next: VFS Up: Niezależność od systemu plików Previous: Niezależność od systemu plików   Spis rzeczy
Elżbieta Krępska 2004-01-19