Файлови системи
Contents
Файлова система
Под „файлова система” се разбира начинът на организация, съхранение и именуване на данните във външна памет и структурата на метаданните (служебната информация) за тях. Различните операционни системи осигуряват и разпознават една или повече файлови системи, например FAT, NTFS, ext2. за твърди дискове, UDF за оптични дискове и т.н., освен това чрез файловата система може да се осигурява достъп до отдалечени файлови сървъри или до виртуални файлове за обмен на потоци от данни и комуникация с периферни устройства.
Файловите системи предоставят дисковото пространство за отделните файлове на порции (allocation units), наричани още „клъстери” или "блокове" . Размерът на един клъстер се определя при форматирането на диска и зависи от типа на диска, размера на диска и възможностите на конкретната файлова система (от 512 байта до > 64KiB...). Клъстерът обикновено съдържа няколко физически сектора от диска. Драйверите на файловата система организират клъстерите във файлове и директории (които реално са също файлове, съдържащи списъци с файлове). Драйверите следят също така кои от клъстерите се използват в момента, кои са свободни и кои са отбелязани като повредени.
Задача. Запишете какви файлови системи се поддържат от MS Windows XP и по-новите версии?
Задача. Запишете какви файлови системи се поддържат от Линукс?
Задача. Избройте какви други файлови системи познавате.
Изисквания
- Ефективно управление на свободното пространство
- Каталог включващ всички файлове с цел осигуряване на бърз достъп до тях
- Осигуряване на основни функции
- триене
- преименуване
- преместване
FAT
Главната директория съдържа началния клъстер на всеки файл. Всяка поддиректория също е файл, специален файл, който съдържа информация за файловете в нея. Ако един файл заема по-голямо място от един клъстер, то клъстера се записва указател за следващия.
Използва се при ... , Все още се използва, защото
за FAT 16 всеки запис на файл съдържа:
- 1-8 Име на файл
- 9-11 Разширение
- 12 атрибути
- 13-22 резервирани
- 23-24 timestamp
- 25-26 Начало (адрес на клъстер)
- 29-32 Големина
NTFS
ext2
Всеки файл се представя със структура inode съдържащ:
- типа на файла
- права за достъп
- собственик
- timestamp
- размер
- ...
- 15 указателя към блоковете с данни на файла
- 12 съдържат директни пойнтера
- 1 индеректен
- 1 двойно индеректен
- 1 тройно индеректен
Ако данните на файла не се поберат в 12 блока за данни, то се използва индеректен блок, в който са записани адресите на блоковете с данни за останалата част от файла. Ако и това не е достатъчно ( 4Кib cluster size/ 4 = 1024 адреса * 4КiB = 4 MiB, т.е ако файла е по-голям от 4MiB), за адресиране се използва двойно индеректен пойнтер към блоковете с данни