230 likes | 331 Views
Ф изическа о рганизация на ф айловат а система в UNIX System V (s5fs). гл. ас. Моника Филипова ФМИ, Катедра Изчислителни системи. Разпределение на дисковото пространство. boot блок - програма за зареждане на ОС суперблок - общи параметри на ФС
E N D
Физическа организацияна файловата система в UNIX System V (s5fs) гл. ас. Моника ФилиповаФМИ, Катедра Изчислителни системи
Разпределениенадисковото пространство • boot блок - програма за зареждане на ОС • суперблок - общи параметри на ФС • индексна област - индескните описатели (i-nodes) на всички файлове на диска • данни - блокове с данни на файлове и каталози, косвени блокове, блокове от списъка на свободните блокове и свободни блокове
Индексeн описател • mode - тип на файла и код на защита • nlink - брой на твърдите връзки • uid– идентификатор на собственик • gid - идентификатор на потребтелска група • size - размер в брой байта • atime - дата и време на последен достъп • mtime - дата и време на последно изменение • ctime - дата и време на последно изменение на i-node • addr- 13адреса на дискови блокове (данни на файла / адреси на блокове)
Код на защита – в младшите 12 бита на mode • Определя правата на различните потребители за достъп до файла. • Класове потребители • администратор (root) • собственик - потребител, чийто идентификатор е в полето uid на i-node • група - потребители, които не са собственик на файла, но принадлежат на групата в полето gid на i-node • други – потребители, които не са в първите класове собственик група други Set UID |SetGID |Sticky | r | w | x | r | w | x | r | w | x
Типове достъп • Правоr • Да четем от файла или каталога. (cat text, ls -l dir) • Правоw • Да отворим файл за писане. • За каталог - да създавамеили унищожаваме файлове в него. (cp text dir, rm dir/text) • Правоx • Да извикваме файл за изпълнение. • За каталог - търсененафайлове в него и позициониране в каталога.(cat dir/text, cd dir) • Sticky bit за каталог – допълнителна защита при унищожа-ване на файлове в каталога.
Суперблок struct filsys { ushort s_isize;/*size in blocks of i-list*/ daddr_t s_fsize;/*size in blocks of entire volume*/ short s_nfree;/*number of addresses in s_free*/ daddr_t s_free[NICFREE];/*free block list*/ short s_ninode; /*number of i-nodes in s_inode */ ushort s_inode[NICNODE];/*free i-node list*/ ... }
Списък на свободните блокове • Масивът s_free в суперблока съдържа номера на свободни блокове. • Полето s_nfree съдържа брой свободни блокове, чиито номера са записани в масива s_free. • Масивът s_free продължава в списък от блокове в областта за данни, съдържащи всички номера на свободни блокове.
Алгоритъм alloc за разпределяне на блок Ако s_nfree не е 0, то се разпределя блок, чийто номер е вs_free[s_nfree--]. Ако s_nfree е 0, то се попълва масивът s_free, като се прочитапървият блок от списъка, чийто адрес е в s_free[0]. Разпределя се току що освободеният блок. Алгоритъм free за освобождаване на блок Ако масивът s_free не е пълен, то номерът на освобождаванияблок се записва в s_free[++s_nfree]. Ако масивът s_free е пълен, то съдържанието му се копира восвобождавания блок, а неговият адрес се записва в s_free[0] и в s_nfree се записва 0.
При нарастване и унищожаване на файлове, списъкът се манипулира по принципа на стека.
Списък на свободнитеиндексни описатели • Масивът s_inode в суперблока съдържа номера на свободни индексни описатели. • Полето s_ninode съдържа брой свободни i-node, чиито номера са записани в масива s_inode. • Този масив не съдържа номерата на всички свободни i-node, но не продължава в свързан списък от блокове. • Свободен i-node на диска е отбелязан - битовете за тип на файла в полето mode са 0. • Масивът играе ролята на кеш памет.
Каталози • Записите са с фиксирана дължина 16 байта. struct direct { ushort d_ino; char d_name[DIRSIZE];}; • Във всеки каталог има двата стандартни записа. • Номер 0 в полето d_ino означава свободен запис. • Преобразуване на име на файл в i-node - /home/ivan/letter
Твърди връзки (hard link) • Твърдите връзки са няколко записа в каталози, които съдържат един и същи номер на i-node. • Съдържание на каталозите преди и след създаване на твърда връзка към файла p.c (i-node 120) с: $ ln /home/ivan/p.c /home/mary/copy.c
Символни връзки (symbolic link) • Символна връзка е тип файл, който сочи към друг файл (съдържаниетому еимето на другия файл). • Съдържание на каталозите след създаване на символна връзка към p.c с командата: $ ln -s /home/ivan/p.c /home/mary/copy.c
Физическа организацияна файловата система в LINUX (ext2/ext3) гл. ас. Моника ФилиповаФМИ, Катедра Изчислителни системи
Разпределение на дисковото пространство • boot блок - програма за зареждане на ОС • групи блокове - всяка група съдържа част от ФС и копие на глобални системни структури
Битови карти • Описват свободните ресурси в групата- блокове и индексни описатели (block bitmap и i-node bitmap). • Значение 0 означава свободен, а 1 използван блокили i-node. • Всяка битова карта заема един блок. • Размерът на групата е 8*b блока, където b е размер на блок в брой байта.
Индексен описател • Индексната област във всяка група съдържа част от индексните описатели на файловата система. • Индексните описатели се адресират в рамките на файловата система. • i-node е с размер 128 байта • адресните полета са 12+1+1+1 по 4 байта • нови атрибути на файл: • размер на файла в брой блокове по 512 байта(i_blocks) • още едно поле за дата и време (i_dtime) • флагове: immutable, append only, synchronous write, secure deletion, undelete
Описатели на групи (Group descriptors) • Всяка група е описана в един запис: • адрес на битовата карта на блоковете • адрес на битовата карта на i-nodes • адрес на първи блок на индексната област • брой свободни блокове в групата • брой свободни i-nodes в групата • брой каталози в групата • Описателите на всички групи са събрани на диска в област Group descriptors, която има копие във всяка група.
Каталози • Записите в каталога са с променлива дължина и съдържат: • номер на i-node (4 байта) • дължина на записа (2 байта) • дължина на името (2 байта) • име на файла, съхранявано в толкова байта колкото са необходими (до 255 байта) • Всеки запис в каталога е подравнен на границата на 4 байта. В края името на файла може да е допълнено с няколко символа ‘\0’. • Изтриване на запис от каталог е по-сложно.
Съдържание на каталог, преди и след като файл с име oldfile е изтрит от каталога.
Суперблок • общ брой блокове - размер на файловата система • общ брой индексни описатели • брой блокове резервирани за администратора • общ брой свободни блокове • общ брой свободни индексни описатели • размер на блок • брой блокове в група • брой i-nodes в група
Новото в LINUX в сравнение с UNIX • Използвани са битови карти при управление на ресурсите - блокове и индексни описатели • При разпределянето се отчита съседството. • Разделяне на дисковото пространство на групи блокове • Системните структури са близко до обектите, които описват. • Постига се по-висока степен на локалност на файловете. • Няколко копия на системните структури, съдържа-щи информация критична за ФС • Бързи символни връзки (само i-node, без блок) • По-надеждна и по-ефективна ФС