Файлови системи

From Ilianko

Файлова система

Под „файлова система” се разбира начинът на организация, съхранение и именуване на данните във външна памет и структурата на метаданните (служебната информация) за тях. Различните операционни системи осигуряват и разпознават една или повече файлови системи, например 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

Всеки файл се представя със структура inode съдържащ:

  • типа на файла
  • права за достъп
  • собственик
  • timestamp
  • размер
  • ...
  • 15 указателя към блоковете с данни на файла
    • 12 съдържат директни пойнтера
    • 1 индеректен
    • 1 двойно индеректен
    • 1 тройно индеректен

Ако данните на файла не се поберат в 12 блока за данни, то се използва индеректен блок, в който са записани адресите на блоковете с данни за останалата част от файла. Ако и това не е достатъчно ( 4Кib cluster size/ 4 = 1024 адреса * 4КiB = 4 MiB, т.е ако файла е по-голям от 4MiB), за адресиране се използва двойно индеректен пойнтер към блоковете с данни