Linux obsługuje wiele systemów plików (na przykład: ext3, NTFS, FAT32 itp.).
Poniższy diagram pokazuje, jak Linux pozwala procesowi na dostęp do plików:
Załóżmy zatem, że w procesie zwanym read()
wywołaniem systemowym do odczytu pliku nastąpi przejście do warstwy VFS, a warstwa VFS zdecyduje, do którego sterownika systemu plików uzyskać dostęp na podstawie systemu plików partycji, do której plik czytać rezyduje na.
Linux oferuje wiele wywołań systemowych dostępu do plików (na przykład: read()
, write()
, rename()
, itd.).
Teraz read()
i write()
i rename()
praca na wszystkich systemach plików, który obsługuje Linux.
Istnieją jednak określone funkcje, które istnieją tylko w niektórych systemach plików, a nie w innych. Na przykład: w systemie plików NTFS można ustawić bit archiwizacji dla pliku, ale nie można tego zrobić w systemie plików ext3.
Teraz moje pytanie brzmi: czy Linux ma wywołania systemowe, aby uzyskać dostęp do wszystkich funkcji obsługiwanych systemów plików? na przykład: czy Linux ma wywołanie systemowe do ustawienia bitu archiwum dla pliku w systemie plików NTFS?
źródło
statx
, jest teraz obsługiwane w bibliotece C oraz w najnowszej wersji coreutils, która została wydana kilka dni temu.