Файловете на компютъра се създават и поставят въз основа на системни принципи. Благодарение на тяхното внедряване, потребителят получава възможност за удобен достъп до необходимата информация, без да мисли за сложни алгоритми за достъп до нея. Как са организирани файловите системи? Кои са най-популярните днес? Какви са разликите между удобните за компютър файлови системи? А тези, използвани в мобилните устройства – смартфони или таблети?

Файлови системи: Определение

Според общата дефиниция файловата система е набор от алгоритми и стандарти, използвани за организиране на ефективен достъп на потребител на компютър до данни, намиращи се на компютъра. Някои експерти го смятат за част от други ИТ експерти, като признават факта, че той е пряко свързан с операционната система, смятат, че файловата система е независим компонент от управлението на компютърни данни.

Как са били използвани компютрите преди изобретяването на файловата система? Компютърната наука, като научна дисциплина, регистрира факта, че дълго време управлението на данните се извършва чрез структуриране в рамките на алгоритми, вградени в специфични програми. По този начин един от критериите за файлова система е да има стандарти, които са еднакви за повечето програми, които имат достъп до данни.

Как работят файловите системи

Файловата система е преди всичко механизъм, който включва използването на компютърни хардуерни ресурси. По правило говорим за магнитни или лазерни носители - твърди дискове, CD, DVD, флашки, дискети, които все още не са остарели. За да разберем как работи съответната система, нека дефинираме какво представлява самият файл.

Според общоприетата дефиниция сред IT експертите, това е област от данни с фиксиран размер, изразена в основни единици информация - байтове. Файлът се намира на дисков носител, обикновено под формата на няколко взаимосвързани блока, които имат специфичен „адрес“ за достъп. Файловата система определя същите тези координати и от своя страна ги „докладва“ на операционната система. Което ясно предава съответните данни на потребителя. Данните се осъществяват, за да бъдат прочетени, модифицирани или създадени нови. Специфичният алгоритъм за работа с файлови „координати“ може да варира. Зависи от вида на компютъра, операционната система, спецификата на съхраняваните данни и други условия. Защото има различни видовефайлови системи. Всеки от тях е оптимизиран за използване на конкретна операционна система или за работа с определени типове данни.

Адаптирането на дисков носител за използване чрез алгоритми на конкретна файлова система се нарича форматиране. Съответните хардуерни елементи на диска - клъстери - са подготвени за последващо записване на файлове в тях, както и четенето им в съответствие със стандартите, заложени в конкретна система за управление на данни. Как да променя файловата система? В повечето случаи това може да стане само чрез преформатиране на носителя за съхранение. По правило файловете се изтриват. Има обаче вариант, при който с помощта на специални програми все още е възможно, въпреки че това обикновено изисква много време, да промените системата за управление на данни, оставяйки последната недокосната.

Файловите системи не работят без грешки. Възможно е да има някои неуспехи в организацията на работа с блокове от данни. Но в повечето случаи те не са критични. По правило няма проблеми с това как да коригирате файловата система или да премахнете грешки. В Windows OS, по-специално, има вградени софтуерни решения, достъпен за всеки потребител. Като например програмата Check Disk.

Разновидности

Какви видове файлови системи са най-често срещаните? Може би, на първо място, тези, използвани от най-популярната PC OS в света - Windows. Основен файл Windows системи- това са FAT, FAT32, NTFS и техните различни модификации. Заедно с компютрите, смартфоните и таблетите придобиха популярност. Повечето от тях, ако говорим за глобалния пазар и не вземаме предвид разликите в технологичните платформи, се управляват от Android и iOS OS. Тези операционни системи използват свои собствени алгоритми за работа с данни, които са различни от тези, които характеризират файловите системи на Windows.

Стандарти, отворени за всички

Обърнете внимание, че напоследък има известна унификация на стандартите на световния пазар на електроника по отношение на операционните системи, работещи с различни видове данни. Това може да се види в два аспекта. Първо, на различни устройстваДва различни типа ОС обаче често използват една и съща файлова система, която е еднакво съвместима с всяка ОС. Второ, съвременните версии на операционната система, като правило, са в състояние да разпознават не само типичните си файлови системи, но и тези, които традиционно се използват в други операционни системи - както чрез вградени алгоритми, така и чрез софтуер на трети страни. Например модерните версии на Linux като цяло разпознават маркираните файлови системи за Windows без проблеми.

Структура на файловата система

Въпреки факта, че има доста голям брой типове файлови системи, те обикновено работят по много сходни принципи (очертахме общата схема по-горе) и в рамките на подобни структурни елементи или обекти. Нека ги разгледаме. Кои са основните обекти на файловата система?

Един от ключовите е - Това е изолирана област с данни, в която могат да се поставят файлове. Структурата на директорията е йерархична. Какво означава? Една или повече директории могат да се намират в друга. Което от своя страна е част от „превъзходното“. Най-важното е основната директория. Ако говорим за принципите, на които работи файловата система на Windows - 7, 8, XP или друга версия - основната директория е логическо устройство, обозначено с буква - обикновено C, D, E (но можете да конфигурирате всяко, което е на английска азбука). Що се отнася например до операционната система Linux, основната директория там е магнитният носител като цяло. В тази и други операционни системи, базирани на нейните принципи - като Android - не се използват логически устройства. Възможно ли е да съхранявате файлове без директории? да Но това не е много удобно. Всъщност комфортът при използване на компютър е една от причините за въвеждане на принципа на разпределяне на данни в директории във файловите системи. Между другото, те могат да бъдат наречени по различен начин. В Windows директориите се наричат ​​папки, в Linux те са основно същите. Но традиционното име за директории в тази операционна система, използвано от много години, е „директории“. Както в предишните Windows и Linux OS - DOS, Unix.

Сред IT специалистите няма ясно мнение дали даден файл трябва да се счита за структурен елемент на съответната система. Тези, които смятат, че това не е съвсем правилно, аргументират своята гледна точка, като казват, че системата може лесно да съществува без файлове. Въпреки че това е безполезно явление от практическа гледна точка. Дори и да няма записани файлове на диска, съответната система може все още да присъства. Обикновено магнитните носители, продавани в магазините, не съдържат никакви файлове. Но те вече имат съответна система. Друго мнение е, че файловете трябва да се считат за неразделна част от системите, от които се управляват. Защо? Но тъй като, според експертите, алгоритмите за тяхното използване са адаптирани предимно за работа с файлове в рамките на определени стандарти. Въпросните системи не са предназначени за друго.

Друг елемент, присъстващ в повечето файлови системи, е област с данни, съдържаща информация за разположението на конкретен файл на определено място. Тоест можете да поставите пряк път на едно място на диска, но също така е възможно да осигурите достъп до желаната област с данни, която се намира в друга част на носителя. Можете да считате, че преките пътища са пълноценни обекти на файловата система, ако сте съгласни, че файловете също са такива.

По един или друг начин няма да е грешка да се каже, че и трите типа данни - файлове, преки пътища и директории - са елементи на съответните им системи. Поне тази теза ще отговаря на една от общите гледни точки. Най-важният аспект, който характеризира как работи файловата система, е принципът на именуване на файлове и директории.

Имена на файлове и директории на различни системи

Ако се съгласим, че файловете все още са компоненти на съответстващите им системи, тогава си струва да разгледаме основната им структура. Кое е първото нещо, което трябва да се отбележи? За да улеснят достъпа до тях, повечето съвременни системи за управление на данни предоставят двустепенна структура за именуване на файлове. Първото ниво е името. Второто е разширяване. Да вземем за пример музикалния файл Dance.mp3. Танцът е името. Mp3 - разширение. Първият има за цел да разкрие на потребителя същността на съдържанието на файла (и програмата да бъде ръководство за бърз достъп). Второто показва типа на файла. Ако е Mp3, тогава е лесно да се досетите, че говорим за музика. Файловете с разширение Doc по правило са документи, Jpg са снимки, Html са уеб страници.

Директориите от своя страна имат едностепенна структура. Те имат само име, без разширение. Ако говорим за разликите между различните видове системи за управление на данни, тогава първото нещо, на което трябва да обърнете внимание, са принципите на именуване на файлове и директории, внедрени в тях. По отношение на Windows OS спецификата е следната. В най-популярната операционна система в света файловете могат да бъдат именувани на всеки език. Максималната дължина обаче е ограничена. Точният интервал зависи от използваната система за управление на данни. Обикновено тези стойности варират от 200-260 знака.

Общо правило за всички операционни системи и съответните им системи за управление на данни е, че файлове с еднакви имена не могат да се намират в една и съща директория. В Linux има известна „либерализация“ на това правило. В една и съща директория може да има файлове с еднакви букви, но в различен регистър. Например Dance.mp3 и DANCE.mp3. Това не е възможно при Windows OS. Същите правила са установени и по отношение на поставянето на директории в други.

Адресиране на файлове и директории

Адресирането на файлове и директории е най-важният елемент на съответната система. В Windows персонализираният му формат може да изглежда така: C:/Documents/Music/ - това е достъп до директорията Music. Ако се интересуваме от конкретен файл, тогава адресът може да изглежда така: C:/Documents/Music/Dance.mp3. Защо "по поръчка"? Факт е, че на ниво хардуерно и софтуерно взаимодействие между компютърните компоненти структурата на достъпа до файлове е много по-сложна. Файловата система определя местоположението на файловите блокове и взаимодейства с операционната система в до голяма степен скрити операции. Въпреки това е изключително рядко за потребител на компютър да се наложи да използва други формати на „адреси“. Почти винаги файловете се осъществяват в посочения стандарт.

Сравнение на файлови системи за Windows

Изучихме общите принципи на функциониране на файловите системи. Нека сега разгледаме характеристиките на най-често срещаните им видове. Най-често използваните файлови системи в Windows са FAT, FAT32, NTFS и exFAT. Първият от тази серия се счита за остарял. В същото време дълго време той беше един вид флагман на индустрията, но с разрастването на компютърната технология неговите възможности вече не отговаряха на нуждите на потребителите и нуждите от ресурси на софтуера.

Файловата система, предназначена да замени FAT, е FAT32. Според много ИТ експерти сега той е най-популярен, ако говорим за пазара на персонални компютри Windows контрол. Най-често се използва при съхраняване на файлове на твърди дискове и флашки. Също така може да се отбележи, че тази система за управление на данни се използва доста редовно в модули памет на различни цифрови устройства - телефони, фотоапарати. Основното предимство на FAT32, което се подчертава от ИТ експертите, е, че въпреки факта, че тази файлова система е създадена от Microsoft, повечето съвременни операционни системи, включително тези, инсталирани на определен тип цифрово оборудване, могат да работят с данни в рамките на рамка на вградените в нея алгоритми.

Системата FAT32 има и редица недостатъци. На първо място, можем да отбележим ограничението за размера на един взет файл - той не може да бъде повече от 4 GB. Освен това системата FAT32 не може да има вградена използвайки Windowsпосочете логически диск, чийто размер ще бъде по-голям от 32 GB. Но това може да стане чрез инсталиране на допълнителен специализиран софтуер.

Друга популярна система за управление на файлове, разработена от Microsoft, е NTFS. Според някои ИТ експерти той превъзхожда FAT32 по повечето параметри. Но тази теза е вярна, когато говорим за компютър с Windows. NTFS не е толкова гъвкав като FAT32. Особеностите на нейното функциониране правят използването на тази файлова система не винаги удобно, особено на мобилни устройства. Едно от ключовите предимства на NFTS е надеждността. Например в случаите, когато харддискАко захранването внезапно спре, вероятността файловете да бъдат повредени е сведена до минимум благодарение на алгоритмите за дублиране на данни, предоставени в NTFS.

Една от най-новите файлови системи на Microsoft е exFAT. Най-добре е адаптиран за флашки. Основните принципи на работа са същите като при FAT32, но има и значителни модернизации в някои аспекти: например, няма ограничения за размера на един файл. В същото време системата exFAT, както отбелязват много ИТ експерти, е сред тези, които имат ниска гъвкавост. На компютри, различни от Windows, обработката на файлове може да е трудно при използване на exFAT. Освен това, дори в някои версии на самия Windows, като например XP, данните на дискове, форматирани с помощта на exFAT алгоритми, може да не са четими. Ще трябва да инсталирате допълнителен драйвер.

Обърнете внимание, че поради използването на доста широк набор от файлови системи в операционната система Windows, потребителят може периодично да изпита затруднения по отношение на съвместимостта на различни устройства с компютъра. В някои случаи, например, е необходимо да инсталирате драйвера на файловата система WPD (Windows Portable Devices - технология, използвана при работа с преносими устройства). Понякога потребителят може да не го има под ръка, в резултат на което външният носител на операционната система може да не го разпознае. WPD файловата система може да изисква допълнителна софтуерна адаптация към операционната среда на определен компютър. В някои случаи потребителят ще бъде принуден да се свърже с ИТ специалисти, за да разреши проблема.

Как да определите коя файлова система - exFAT или NTFS, или може би FAT32 - е оптимална за използване в конкретни случаи? Препоръките на IT специалистите като цяло са следните. Могат да се използват два основни подхода. Според първия трябва да се разграничат типичните файлови системи твърди дискове, както и тези, които са по-добре адаптирани към флашки. FAT и FAT32, според много експерти, са по-подходящи за флаш устройства, NTFS - за твърди дискове (поради технологичните характеристики на работа с данни).

При втория подход размерът на носача има значение. Ако говорим за използване на сравнително малък обем диск или флаш устройство, можете да го форматирате в системата FAT32. Ако дискът е по-голям, можете да опитате exFAT. Но само ако носителят не е предназначен за използване на други компютри, особено на тези, които нямат най-новите версии на Windows. Ако говорим за големи твърди дискове, включително външни, тогава е препоръчително да ги форматирате в NTFS. Това са приблизително критериите, по които може да се избере оптималната файлова система - exFAT или NTFS, FAT32. Тоест, трябва да използвате един от тях, като вземете предвид размера на носителя, неговия тип, както и версията на операционната система, на която основно се използва устройството.

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

Друга популярна хардуерна и софтуерна платформа на световния компютърен пазар е Macintosh на Apple. Компютрите от тази линия работят под контрол операционна система Mac OS. Какви са характеристиките на организирането на работа с файлове в Mac компютри? Повечето съвременни компютри на Apple използват файловата система Mac OS Extended. Преди в Компютри Mac работаданните се управляват в съответствие със стандартите HFS.

Основното, което може да се отбележи по отношение на неговите характеристики е, че диск, управляван от файловата система Mac OS Extended, може да побере много големи файлове - можем да говорим за няколко милиона терабайта.

Файлова система в устройства с Android

Най-популярната операционна система за мобилни устройства - форма на електронна технология, която не отстъпва по популярност на компютрите - е Android. Как се управляват файлове на устройства от съответния тип? Нека отбележим на първо място, че тази операционна система всъщност е „мобилна“ адаптация на операционната система Linux, която благодарение на отворения код може да бъде модифицирана с перспективата за използване на широк спектър от устройства. Следователно управлението на файлове в мобилните устройства е под Android управлениеизвършва се като цяло според същите принципи като в Linux. Отбелязахме някои от тях по-горе. По-специално, управлението на файлове в Linux се извършва без разделяне на носителя на логически устройства, както се случва в Windows. Какво друго интересно съдържа файлът? Android система?

Основната директория в Android обикновено е област с данни, наречена /mnt. Съответно адресът на необходимия файл може да изглежда така: /mnt/sd/photo.jpg. Освен това има още една функция на системата за управление на данни, която е внедрена в тази мобилна ОС. Факт е, че флаш паметта на устройството обикновено се класифицира в няколко раздела, като например System или Data. Въпреки това, първоначално посоченият размер на всеки от тях не може да бъде променен. Приблизителна аналогия по отношение на този технологичен аспект може да се намери, като се помни, че не можете (освен ако не използвате специален софтуер) да промените размера на логическите устройства в Windows. Трябва да се поправи.

Друг интересна функцияорганизиране на работа с файлове в Android - съответната операционна система, като правило, записва нови данни в определена област на диска - Data. Работата, например, със секцията System не се извършва. Следователно, когато потребителят активира функцията за нулиране софтуерни настройкисмартфон или таблет до „фабрично“ ниво, тогава на практика това означава, че тези файлове, записани в областта за данни, просто се изтриват. Разделът System по правило остава непроменен. Освен това потребителят, без да разполага със специализиран софтуер, не може да прави корекции на съдържанието в Системата. Процедурата, свързана с актуализиране на системната област за съхранение в устройство с Android, се нарича мигане. Това не е форматиране, въпреки че и двете операции често се извършват едновременно. По правило мигането се използва за инсталиране на мобилно устройствоПовече ▼ нова версия Android OS.

По този начин основните принципи, на които работи файловата система на Android, са липсата на логически устройства, както и стриктното разграничаване на достъпа до системни и потребителски данни. Не може да се каже, че този подход е коренно различен от този, приложен в Windows, но според много ИТ експерти в операционната система на Microsoft потребителите имат малко по-голяма свобода при работа с файлове. Въпреки това, както смятат някои експерти, това не може да се счита за явно предимство на Windows. „Либералният“ режим по отношение на управлението на файлове се използва, разбира се, не само от потребителите, но и от компютърни вируси, на които Windows е много податлив (за разлика от Linux и неговата „мобилна“ реализация под формата на Android). Това според експертите е една от причините да има толкова малко вируси за устройства с Android - от чисто технологична гледна точка те не могат да функционират пълноценно в операционна среда, която работи на принципите на строг контрол на достъпа до файлове.

Способността на ОС да "екранира" сложността на реалния хардуер се проявява много ясно в една от основните подсистеми на ОС - файлова система. Операционната система виртуализира отделен набор от данни, съхранени на външно устройство като файл - проста неструктурирана последователност от байтове със символно име. За по-лесна работа с данни файловете са групирани в каталози, които от своя страна образуват групи - директории от по-високо ниво. Потребителят може да използва операционната система, за да извършва действия с файлове и директории като търсене по име, изтриване, показване на съдържание на външно устройство (например на дисплей), промяна и запазване на съдържание.

За представяне на голям брой набори от данни, разпръснати на случаен принцип в цилиндри и дискови повърхности различни видове, под формата на добре позната и удобна йерархична структура от файлове и директории, операционната система трябва да реши много проблеми. Файловата система на ОС преобразува символичните имена на файловете, с които работи потребителят или програмистът на приложения, във физически адреси на данни на диска, организира споделен достъп до файловете и ги защитава от неоторизиран достъп.

Когато изпълнява своите функции, файловата система тясно взаимодейства с подсистемата за управление на външни устройства, която по искане на файловата система прехвърля данни между дискове и RAM.

Подсистемата за управление на външното устройство, наричана още подсистема за вход/изход, действа като интерфейс към всички устройства, свързани към компютъра. Обхватът на тези устройства е много широк. Гамата от произвеждани твърди дискове, флопи и оптични устройства, принтери, скенери, монитори, плотери, модеми, мрежови адаптери и по-специални входно/изходни устройства, като аналогово-цифрови преобразуватели, може да наброява стотици модели. Тези модели могат да се различават значително по набора и последователността на командите, използвани за обмен на информация с процесора и паметта на компютъра, скоростта на работа, кодирането на предаваните данни, възможността за споделяне и много други подробности.

Програма, която контролира специфичен моделвъншно устройство и като се вземат предвид всички негови характеристики, обикновено се нарича шофьортова устройство (от английското устройство - да управлява, да ръководи). Драйверът може да контролира единичен модел устройство, като модем ZyXEL U-1496E, или група устройства от определен тип, като всякакви модеми, съвместими с Hayes. За потребителя е много важно операционната система да включва възможно най-много различни драйвери, тъй като това гарантира възможността за свързване на голям брой външни устройства от различни производители към компютъра. Успехът на операционната система на пазара до голяма степен зависи от наличието на подходящи драйвери (например липсата на много необходими драйвери за външни устройства беше една от причините за ниската популярност на OS/2).



Създаването на драйвери за устройства се извършва както от разработчици на конкретна ОС, така и от специалисти от компании, които произвеждат външни устройства. Операционната система трябва да поддържа добре дефиниран интерфейс между драйверите и останалата част от операционната система, така че разработчиците на I/O устройства да могат да предоставят драйвери за операционната система със своите устройства.

Приложните програмисти могат да използват интерфейса на драйвера, когато разработват своите програми, но това не е много удобно - такъв интерфейс обикновено представлява операции на ниско ниво, обременени с голям брой подробности.

Поддържането на унифициран интерфейс за приложно програмиране на високо ниво към хетерогенни I/O устройства е една от най-важните задачи на ОС. От появата на UNIX този унифициран интерфейс в повечето операционни системи се основава на концепцията за достъп до файлове. Тази концепция е, че комуникацията с всяко външно устройство изглежда като обмен с файл, който има име и е неструктурирана последователност от байтове. Файлът може да бъде или истински файл на диск, или буквено-цифров терминал, печатащо устройство или мрежов адаптер. Тук отново имаме работа с способността на операционната система да замени реалния хардуер с удобни за потребителя и програмиста абстракции.

Задачи на ОС за управление на файлове и устройства

При обмен на данни с външни компютърни устройства входно-изходната подсистема (Input-Output Subsystem) на мултипрограмна ОС трябва да решава редица общи задачи, от които най-важните са следните:

Организация на паралелна работа на входно/изходни устройства и процесор;

Координиране на обменни курсове и кеширане на данни;

Разделяне на устройства и данни между процесите;

Осигуряване на удобен логически интерфейс между устройствата и останалата част от системата;

Поддръжка на широк набор от драйвери с възможност за лесно добавяне на нов драйвер към системата;

Поддържа множество файлови системи;

Поддържа синхронни и асинхронни I/O операции.

Една от основните задачи на операционната система е да осигури удобство на потребителя при работа с данни, съхранявани на дискове. За да направи това, операционната система заменя физическата структура на съхранените данни с някакъв удобен за потребителя логически модел. Модел на логическа файлова системасе материализира във формата дърво на директориите, показани от помощни програми като Norton Commander или Windows Explorer, в символни съставни имена на файлове, във файлови команди. Основният елемент на този модел е файл, която, подобно на файловата система като цяло, може да се характеризира както с логическа, така и с физическа структура.

Файле наименована област от външна памет, в която може да се записва и от която може да се чете. Файловете се съхраняват в зависима от мощността памет, обикновено магнитни дискове. Въпреки това, няма правила без изключения. Едно от тези изключения е така нареченият електронен диск, когато в RAM се създава структура, която имитира файлова система.

Основни цели на използване на файла:

Дългосрочно и надеждно съхранение на информация. Устойчивостта се постига чрез използването на устройства за съхранение, които не зависят от мощността, а високата надеждност се определя от средствата за защита на достъпа до файлове и общата организация на програмния код на операционната система, при която хардуерните повреди най-често не унищожават съхраняваната информация във файлове.

Споделяне на информация. Файловете предоставят естествен и лесен начин за споделяне на информация между приложения и потребители, като имат символично име, което може да се чете от човека, и последователност в съхранената информация и местоположението на файла. Потребителят трябва да разполага с удобни инструменти за работа с файлове, включително директории, които комбинират файлове в групи, инструменти за търсене на файлове по характеристики, набор от команди за създаване, промяна и изтриване на файлове. Файлът може да бъде създаден от един потребител и след това да се използва от напълно различен потребител, а създателят на файла или администраторът може да определи правата за достъп на други потребители. Тези цели се изпълняват в операционната система от файловата система.

Файлова система(FS) е част от операционната система, включително:

Колекцията от всички файлове на диска;

Набори от структури от данни, използвани за управление на файлове, като файлови директории, файлови дескриптори, таблици за разпределение на свободно и използвано дисково пространство;

Набор от системни софтуерни инструменти, които изпълняват различни операции върху файлове, като създаване, унищожаване, четене, писане, именуване и търсене на файлове.

Файловата система позволява на програмите да се справят с набор от доста прости операции за извършване на действия върху някакъв абстрактен обект, който представлява файл. По този начин програмистите не трябва да се занимават с подробности за действителното местоположение на данните на диска, буферирането на данни и други проблеми на ниско ниво при прехвърляне на данни от дългосрочно съхранение. Файловата система поема всички тези функции. Файловата система разпределя дискова памет, поддържа именуване на файлове, картографира имената на файлове към съответните адреси във външна памет, осигурява достъп до данни и поддържа разделяне на файлове, защита и възстановяване.

По този начин файловата система играе ролята на междинен слой, който отсява цялата сложност на физическата организация на дългосрочното съхранение на данни и създава по-опростен логически модел за това съхранение за програмите, както и им предоставя набор от лесни за използване команди за манипулиране на файлове.

Проблемите, решавани от FS, зависят от начина, по който е организиран изчислителният процес като цяло. Най-простият тип е файлова система в еднопотребителски и еднопрограмни операционни системи, които включват например MS-DOS. Основните функции в такъв FS са насочени към решаване на следните задачи:

Наименуване на файлове;

Софтуерен интерфейс за приложения;

Картографиране на логическия модел на файловата система към физическата организация на хранилището за данни;

Устойчивост на файловата система на прекъсване на захранването, хардуерни и софтуерни грешки.

Задачите на FS стават по-сложни в еднопотребителски многопрограмни операционни системи, които, въпреки че са предназначени за работата на един потребител, му дават възможност да изпълнява няколко процеса едновременно. Една от първите операционни системи от този тип е OS/2. Към изброените по-горе задачи се добавя нова задача за споделяне на файл от множество процеси. Файлът в този случай е споделен ресурс, което означава, че файловата система трябва да реши целия набор от проблеми, свързани с такива ресурси. По-специално, FS трябва да предоставя средства за блокиране на файл и неговите части, предотвратяване на състезания, премахване на задънени блокировки, съгласуване на копия и т.н.

В многопотребителските системи се появява друга задача: защита на файловете на един потребител от неоторизиран достъп от друг потребител. Функциите на FS, която работи като част от мрежова ОС, стават още по-сложни.

Файловите системи поддържат няколко функционално различни типове файлове, които обикновено включват обикновени файлове, файлове с директории, специални файлове, наименувани канали, карти с памет и други.

Редовни файлове, или просто файлове, съдържат произволна информация, която е въведена в тях от потребителя или която се генерира в резултат на работата на системни и потребителски програми. Повечето съвременни операционни системи (например UNIX, Windows, OS/2) не ограничават или контролират съдържанието и структурата на обикновен файл по никакъв начин. Съдържанието на обикновен файл се определя от приложението, което работи с него. Например, текстов редакторсъздава текстови файлове, състоящи се от низове от знаци, представени в някакъв код. Това могат да бъдат документи, изходни кодове на програми и др. Текстови файловемогат да бъдат прочетени на екрана и отпечатани на принтер. Двоичните файлове не използват кодове на символи и често имат сложни вътрешни структури, като например изпълним програмен код или архивен файл. Всички операционни системи трябва да могат да разпознават поне един тип файл - техните собствени изпълними файлове.

Каталози- това е специален тип файлове, които съдържат системна справочна информация за набор от файлове, групирани по потребители според някакъв неофициален критерий (например файлове, съдържащи документи на един и същи договор, или файлове, които съставляват един софтуерен пакет, са комбинирани в един група). В много операционни системи една директория може да съдържа всякакъв тип файл, включително други директории, създавайки дървовидна структура, която е лесна за търсене. Директориите установяват съпоставяне между имената на файловете и файловите характеристики, които се използват от файловата система за управление на файлове. Такива характеристики включват по-специално информация (или указател към друга структура, съдържаща тези данни) за типа на файла и неговото местоположение на диска, правата за достъп до файла и датите на неговото създаване и промяна. Във всички останали отношения директориите се третират от файловата система като обикновени файлове.

Специални файловеса фиктивни файлове, свързани с I/O устройства, които се използват за унифициране на механизма за достъп до файлове и външни устройства. Специалните файлове позволяват на потребителя да извършва I/O операции, като използва нормални команди за запис във файл или четене от файл. Тези команди се обработват първо от програмите на файловата система, а след това на някакъв етап от изпълнението на заявката се преобразуват от операционната система в команди за управление на съответното устройство.

Съвременните файлови системи поддържат други типове файлове, като символни връзки, наименувани канали и карти с памет файлове.

Потребителите имат достъп до файлове чрез символични имена. Човешката памет обаче ограничава броя на имената на обекти, които потребителят може да посочи по име. Йерархичната организация на пространството от имена ни позволява значително да разширим тези граници. Ето защо повечето файлови системи имат йерархична структура, в която нивата се създават, като се позволява на директория от по-ниско ниво да се съдържа в директория от по-високо ниво (Фигура 2.16).

Фигура 2.16. Йерархия на файловите системи (a – едностепенна структура, b – дървовидна структура, c – мрежова структура)

Графиката, описваща йерархията на директорията, може да бъде дърво или мрежа. Директориите образуват дърво, ако файлът може да бъде включен само в една директория (Фигура 2.16, b), и мрежа - ако файлът може да бъде включен в няколко директории наведнъж (Фигура 2.16, c). Например в MS-DOS и Windows директориите образуват дървовидна структура, докато в UNIX те образуват мрежова структура. В дървовидна структура всеки файл е лист. Извиква се директорията от най-високо ниво главна директория, или root.

С тази организация потребителят е освободен от запомнянето на имената на всички файлове; той трябва само да има груба представа към коя група може да бъде приписан даден файл, за да го намери чрез последователно преглеждане на директории. Йерархичната структура е удобна за работа с много потребители: всеки потребител с неговите файлове е локализиран в собствена директория или поддърво от директории, като в същото време всички файлове в системата са логически свързани.

Специален случай на йерархична структура е организация на едно ниво, когато всички файлове са включени в една директория (Фигура 2.16, а).

Всички типове файлове имат символични имена. Йерархично организираните файлови системи обикновено използват три типа имена на файлове: прости, съставни и относителни.

Просто или кратко символично имеидентифицира файл в същата директория. Прости имена се присвояват на файлове от потребители и програмисти и те трябва да вземат предвид ограниченията на ОС както за набора от знаци, така и за дължината на името. До сравнително скоро тези граници бяха много тесни. Така в популярната файлова система FAT дължината на имената беше ограничена до схема 8.3 (8 знака - самото име, 3 знака - разширението на името), а във файловата система s5, поддържана от много версии на UNIX OS, простото символно име не може да съдържа повече от 14 знака. Въпреки това е много по-удобно за потребителя да работи с дълги имена, защото те ви позволяват да дадете на файловете лесни за запомняне имена, които ясно показват какво се съдържа във файла. Следователно съвременните файлови системи, както и подобрените версии на вече съществуващи файлови системи, са склонни да поддържат дълги, прости символни имена на файлове. Например във файловите системи NTFS и FAT32, включени в операционната система Windows NT, името на файла може да съдържа до 255 знака.

В йерархичните файлови системи е разрешено различните файлове да имат еднакви прости символни имена, при условие че принадлежат към различни директории. Тоест тук работи схемата „много файлове - едно просто име“. За уникално идентифициране на файл в такива системи се използва така нареченото пълно име.

Пълно имее верига от прости символни имена на всички директории, през които минава пътя от корена до дадения файл. По този начин пълното име е съставно име, в което простите имена са разделени едно от друго с разделителя, приет в ОС. Често като разделител се използва наклонена черта напред или назад и е обичайно да не се посочва името на основната директория. На фигура 2.16, b два файла имат просто име main.exe, но съставните им имена /depart/main.exe и /user/anna/main.exe са различни.

В дървовидната файлова система има едно към едно съответствие между файл и пълното му име: един файл - едно пълно име. Във файлови системи, които имат мрежова структура, един файл може да бъде включен в няколко директории и следователно да има няколко пълни имена; тук е валидно съответствието “един файл - много пълни имена”. И в двата случая файлът се идентифицира уникално с пълното си име.

Файлът може да бъде идентифициран и чрез относително име . Родствено имефайл се дефинира чрез понятието „текуща директория“. За всеки потребител във всеки даден момент една от директориите на файловата система е текущата директория и тази директория се избира от самия потребител по команда на OS. Файловата система улавя името на текущата директория, така че след това да може да го използва като допълнение към относителните имена, за да формира пълното име на файл. Когато използва относителни имена, потребителят идентифицира файла чрез веригата от имена на директории, през които минава пътят от текущата директория до дадения файл. Например, ако текущата директория е /user, тогава относителното име на файла /user/anna/main.exe е anna/main.exe.

Някои операционни системи ви позволяват да присвоите няколко прости имена на един и същ файл, които могат да се тълкуват като псевдоними. В този случай, точно както в система с мрежова структура, се установява съответствието „един файл - много пълни имена“, тъй като всяко просто име на файл съответства на поне едно пълно име.

И въпреки че пълното име уникално идентифицира файла, за операционната система е по-лесно да работи с файла, ако има съответствие едно към едно между файловете и техните имена. За тази цел той присвоява уникално име на файла, така че да е валидна връзката „един файл - едно уникално име“. Уникалното име съществува заедно с едно или повече символични имена, присвоени на файла от потребители или приложения. Уникалното име е цифров идентификатор и е предназначено само за операционната система. Пример за такова уникално име на файл е номерът на inode в UNIX система.

Понятието „файл“ включва не само данните и името, които съхранява, но и неговите атрибути. Атрибути- Това е информация, описваща свойствата на файла. Примери за възможни файлови атрибути:

Тип файл (обикновен файл, директория, специален файл и др.);

Собственик на файла;

Създател на файлове;

Парола за достъп до файла;

Информация за разрешените операции за достъп до файлове;

Време на създаване, последен достъп и последна модификация;

Текущ размер на файла;

Максимален размер на файла;

Знак само за четене;

Знак „Скрит файл“;

Знак " системен файл»;

Подпишете „архивен файл“;

Знак "двоичен/знак";

Знакът е „временен“ (премахва се след приключване на процеса);

Блокиращ знак;

Дължина на записа на файла;

Указател към ключовото поле в записа;

Дължина на ключа.

Наборът от файлови атрибути се определя от спецификата на файловата система: различните типове файлови системи могат да използват различни набори от атрибути за характеризиране на файлове. Например, във файлови системи, които поддържат плоски файлове, няма нужда да използвате последните три атрибута в списъка, които са свързани с файловата структура. В еднопотребителска операционна система наборът от атрибути няма да има характеристики, свързани с потребителите и сигурността, като собственик на файла, създател на файла, парола за достъп до файла, информация за оторизиран достъп до файла.

Потребителят може да има достъп до атрибути, като използва средствата, предоставени за тази цел от файловата система. Обикновено можете да четете стойностите на всеки атрибут, но променяте само някои. Например потребител може да промени разрешенията на файл (при условие, че има необходимите разрешения за това), но не може да промени датата на създаване или текущия размер на файла.

Стойностите на файловите атрибути могат да се съдържат директно в директории, както се прави във файловата система MS-DOS (Фигура 2.17a). Фигурата показва структурата на запис в директория, съдържащ просто символно име и файлови атрибути. Тук буквите показват характеристиките на файла: R - само за четене, A - архивиран, H - скрит, S - системен.

Фигура 2.17. Структура на директория: a - MS-DOS структура на запис на директория (32 байта), b - UNIX OS структура на запис на директория

Друга възможност е да поставите атрибути в специални таблици, когато каталозите съдържат само връзки към тези таблици. Този подход е реализиран например във файловата система ufs на операционната система UNIX. В тази файлова система структурата на директорията е много проста. Записът за всеки файл съдържа кратко символно име на файл и указател към дескриптора на файловия индекс, това е името в ufs за таблицата, в която са концентрирани стойностите на атрибутите на файла (Фигура 2.17, b).

И в двете версии директориите осигуряват връзка между имената на файловете и самите файлове. Подходът за разделяне на името на файла от неговите атрибути обаче прави системата по-гъвкава. Например, един файл може лесно да бъде включен в няколко директории наведнъж. Записите за този файл в различни директории може да имат различни прости имена, но полето за връзка ще има същия номер на inode.

Представата на потребителя за файлова система като йерархично организиран набор от информационни обекти няма много общо с реда, в който файловете се съхраняват на диска. Файл, който има изображение на солиден, непрекъснат набор от байтове, всъщност много често е разпръснат на „парчета“ из целия диск и това разделяне няма нищо общо с логическата структура на файла, например неговия индивидуален логически запис могат да се намират в несвързани сектори на диска. Логически комбинираните файлове от една директория не трябва да са съседни един на друг на диска. Принципите за поставяне на файлове, директории и системна информация на реално устройство са описани от физическата организация на файловата система. Очевидно различните файлови системи имат различна физическа организация.

Основният тип устройство, използвано в съвременните изчислителни системи за съхраняване на файлове, са дисковите устройства. Тези устройства са проектирани да четат и записват данни на твърди и флопи дискове. Твърдият диск се състои от една или повече стъклени или метални пластини, всяка покрита от едната или от двете страни с магнитен материал. По този начин дискът обикновено се състои от купчина плочи (Фигура 2.18).

Тънки концентрични пръстени са маркирани от всяка страна на всяка плоча - писти(traks), на който се съхраняват данни. Броят на песните зависи от вида на диска. Номерирането на песните започва от 0 от външния край до центъра на диска. Докато дискът се върти, елемент, наречен глава, чете двоични данни от магнитна писта или ги записва на магнитна писта.

Фигура 2.18. Диаграма на твърдия диск

Главата може да бъде позиционирана върху дадена писта. Главите се движат по повърхността на диска на отделни стъпки, като всяка стъпка съответства на изместване на една песен. Записването на диск се извършва благодарение на способността на главата да променя магнитните свойства на пистата. Някои устройства имат една глава, движеща се по всяка повърхност, докато други имат по една глава за всяка писта. В първия случай, за да търсите информация, главата трябва да се движи по радиуса на диска. Обикновено всички глави са монтирани на един подвижен механизъм и се движат синхронно. Следователно, когато глава спре на дадена писта на една повърхност, всички останали глави спират над писти със същите номера. В случаите, когато всяка писта има отделна глава, не е необходимо движение на главите от една писта на друга, като по този начин се спестява време, прекарано в търсене на данни.

Нарича се набор от пътеки с еднакъв радиус върху всички повърхности на всички плочи на опаковката цилиндър(цилиндър). Всяка песен е разделена на фрагменти, наречени сектори(сектори) или блокове (блокове), така че всички песни да имат равен брой сектори, в които може да се запише най-много същия брой байтове. Секторът има фиксиран размер за конкретна система, изразен като степен две. Най-често срещаният размер на сектора е 512 байта. Като се има предвид, че пистите с различни радиуси имат еднакъв брой сектори, плътността на записа става по-висока, колкото по-близо е пистата до центъра.

Сектор- най-малката адресируема единица за обмен на данни между дисково устройство и RAM. За да може контролерът да намери желания сектор на диска, е необходимо да му дадете всички компоненти на адреса на сектора: номер на цилиндър, номер на повърхност и номер на сектор. Тъй като приложната програма като цяло не се нуждае от сектор, а от определен брой байтове, не непременно кратен на размера на сектора, типичната заявка включва четене на няколко сектора, съдържащи необходимата информация, и един или два сектора, съдържащи заедно с необходими, излишни данни (Фигура 2.19) .

Фигура 2.19. Четене на излишни данни при обмен с диск

При работа с диск операционната система обикновено използва собствена единица дисково пространство, т.нар клъстер(клъстер). Когато се създаде файл, дисковото пространство се разпределя за него от клъстери. Например, ако даден файл има размер от 2560 байта и размерът на клъстера във файловата система е определен като 1024 байта, тогава файлът ще бъде разпределен на 3 клъстера на диска.

Пътечките и секторите се създават чрез извършване на физическа или процедура за форматиране на диск на ниско ниво, преди дискът да бъде използван. За да се определят границите на блоковете, идентификационната информация се записва на диска. Форматът на диска от ниско ниво не зависи от типа операционна система, която дискът ще използва.

Разделянето на диска за конкретен тип файлова система се извършва чрез процедури за форматиране на високо ниво или логически.

При форматиране на високо ниво се определя размерът на клъстера и информацията, необходима за работата на файловата система, се записва на диска, включително информация за налично и неизползвано пространство, границите на областите, разпределени за файлове и директории, и информация за повредени области. Освен това на диска се записва товарачът на операционната система - малка програма, която започва процеса на инициализиране на операционната система след включване на захранването или рестартиране на компютъра.

Преди да форматирате диск за конкретна файлова система, той може да бъде разделен. Главае непрекъсната част от физически диск, която операционната система представя на потребителя като логическо устройство (използват се също имената логически диск и логически дял). Логическото устройство функционира като отделно физически диск. Потребителят работи с логически устройства, като ги нарича със символни имена, използвайки например обозначенията A, B, C, SYS и т.н. Операционните системи от различни типове използват обща идея за дялове за всички тях, но създават логически, базирани на него устройства, специфични за всеки тип ОС. Точно както файлова система, с която работи една ОС, обикновено не може да бъде интерпретирана от друг тип ОС, логическите устройства не могат да се използват от операционни системи от различен тип. На всяко логическо устройство може да бъде създадена само една файлова система.

Защо смартфонът не може да стартира програми от карта с памет? Как ext4 е фундаментално различен от ext3? Защо една флашка ще издържи по-дълго, ако я форматирате в NTFS, а не във FAT? Какъв е основният проблем с F2FS? Отговорите се крият в структурните характеристики на файловите системи. Ще говорим за тях.

Въведение

Файловите системи определят как се съхраняват данните. Те определят какви ограничения ще срещне потребителят, колко бързи ще бъдат операциите за четене и запис и колко дълго устройството ще работи без повреди. Това важи особено за бюджетните SSD и техните по-малки братя - флашки. Познавайки тези функции, можете да извлечете максимума от всяка система и да оптимизирате използването й за конкретни задачи.

Трябва да избирате типа и параметрите на файловата система всеки път, когато трябва да направите нещо нетривиално. Например искате да ускорите най-често срещаните файлови операции. На ниво файлова система това може да се постигне по различни начини: индексирането ще осигури бързо търсене, а предварителното запазване на безплатни блокове ще улесни пренаписването на често променящи се файлове. Предварителната оптимизация на данните в RAM ще намали броя на необходимите I/O операции.

Такива свойства на съвременните файлови системи като мързеливо писане, дедупликация и други усъвършенствани алгоритми спомагат за увеличаване на периода на безпроблемна работа. Те са особено актуални за евтини SSD с TLC чипове памет, флашки и карти памет.

Има отделни оптимизации за различни нива на дискови масиви: например файловата система може да поддържа опростено дублиране на томове, незабавно моментално заснемане или динамично мащабиране, без да изваждате тома офлайн.

Черна кутия

Потребителите обикновено работят с файловата система, която се предлага по подразбиране от операционната система. Те рядко създават нови дискови дялове и още по-рядко се замислят за настройките си - те просто използват препоръчителните параметри или дори купуват предварително форматирани носители.

За феновете на Windows всичко е просто: NTFS на всички дискови дялове и FAT32 (или същия NTFS) на флаш устройства. Ако има NAS и използва някаква друга файлова система, тогава за повечето остава извън възприятието. Те просто се свързват с него по мрежата и изтеглят файлове, сякаш от черна кутия.

На мобилни джаджи с Android ext4 най-често се намира във вътрешната памет и FAT32 на microSD карти. Yabloko изобщо не ги интересува каква файлова система имат: HFS+, HFSX, APFS, WTFS... за тях има само красиви икони на папки и файлове, нарисувани от най-добрите дизайнери. Потребителите на Linux имат най-богатия избор, но можете да добавите поддръжка за чужди файлови системи както в Windows, така и в macOS - повече за това по-късно.

Общи корени

Създадени са над сто различни файлови системи, но малко повече от дузина могат да се считат за текущи. Въпреки че всички те бяха разработени за свои специфични приложения, много от тях в крайна сметка се оказаха свързани на концептуално ниво. Те са сходни, защото използват един и същ тип структура за представяне на (мета) данни - B-дървета („двудървета“).

Като всяка йерархична система, B-дървото започва с основен запис и след това се разклонява надолу до листови елементи - индивидуални записи на файлове и техните атрибути или „листа“. Основната причина за създаването на такава логическа структура беше да се ускори търсенето на обекти на файловата система в големи динамични масиви - като мултитерабайтови твърди дискове или дори по-големи RAID масиви.

B-дърветата изискват много по-малко дискови достъпи в сравнение с други видове балансирани дървета за извършване на същите операции. Това се постига благодарение на факта, че крайните обекти в B-дърветата са йерархично разположени на една и съща височина, а скоростта на всички операции е точно пропорционална на височината на дървото.

Подобно на други балансирани дървета, B-дърветата имат равни дължини на пътя от корена до всеки лист. Вместо да растат нагоре, те се разклоняват повече и стават по-широки: всички точки на разклонение в B-дърво съхраняват много препратки към дъщерни обекти, което ги прави лесни за намиране при по-малко извиквания. Големият брой указатели намалява броя на най-отнемащите време дискови операции - позициониране на главата при четене на произволни блокове.

Концепцията за B-дървета е формулирана през седемдесетте години и оттогава е претърпяла различни подобрения. Под една или друга форма е внедрен в NTFS, BFS, XFS, JFS, ReiserFS и много СУБД. Всички те са роднини по отношение на основните принципи на организация на данните. Разликите засягат детайли, често доста важни. Свързаните файлови системи също имат общ недостатък: всички те са създадени да работят специално с дискове дори преди появата на SSD.

Флаш паметта като двигател на прогреса

Твърдотелните устройства постепенно изместват дисковите устройства, но засега са принудени да използват файлови системи, които са им чужди, предавани по наследство. Те са изградени върху масиви с флаш памет, чиито принципи на работа се различават от тези на дисковите устройства. По-специално, флаш паметта трябва да бъде изтрита, преди да бъде записана, операция, която NAND чиповете не могат да изпълнят на ниво отделна клетка. Възможно е само за големи блокове изцяло.

Това ограничение се дължи на факта, че в NAND паметта всички клетки са комбинирани в блокове, всеки от които има само една обща връзка към управляващата шина. Няма да навлизаме в подробности за организацията на страницата и да описваме пълната йерархия. Важен е самият принцип на групови операции с клетки и фактът, че размерите на блоковете с флаш памет обикновено са по-големи от адресираните блокове във всяка файлова система. Следователно всички адреси и команди за устройства с NAND флаш трябва да бъдат преведени през абстракционния слой FTL (Flash Translation Layer).

Съвместимостта с логиката на дисковите устройства и поддръжката на команди на техните собствени интерфейси се осигуряват от контролери на флаш памет. Обикновено FTL е внедрен в техния фърмуер, но може (частично) да бъде внедрен на хоста - например Plextor пише драйвери за своите SSD, които ускоряват записа.

Невъзможно е да се направи без FTL, тъй като дори записването на един бит в конкретна клетка задейства цяла поредица от операции: контролерът намира блока, съдържащ желаната клетка; блокът се чете напълно, записва се в кеша или в свободно място, след което се изтрива изцяло, след което се пренаписва обратно с необходимите промени.

Този подход напомня на ежедневието в армията: за да даде заповед на един войник, сержантът прави общ строй, извиква горкия от строя и заповядва на останалите да се разотидат. В сега рядката NOR памет организацията беше специални сили: всяка клетка се управляваше независимо (всеки транзистор имаше индивидуален контакт).

Задачите пред контролерите се увеличават, тъй като с всяко поколение флаш памет техническият процес на нейното производство намалява, за да се увеличи плътността и да се намалят разходите за съхранение на данни. Заедно с технологичните стандарти, очакваният експлоатационен живот на чиповете също намалява.

Модулите с едностепенни SLC клетки имаха деклариран ресурс от 100 хиляди цикъла на презапис и дори повече. Много от тях все още работят в стари флашки и CF карти. За корпоративен клас MLC (eMLC) ресурсът е деклариран в диапазона от 10 до 20 хиляди, докато за обикновен потребителски клас MLC се оценява на 3-5 хиляди. Памет от този тип активно се изтласква от още по-евтини TLC, чийто ресурс едва достига хиляда цикъла. Поддържането на живота на флаш паметта на приемливо ниво изисква софтуерни трикове и новите файлови системи се превръщат в един от тях.

Първоначално производителите приемат, че файловата система е маловажна. Самият контролер трябва да обслужва краткотраен масив от клетки на паметта от всякакъв тип, като разпределя натоварването между тях по оптимален начин. За драйвера на файловата система той симулира обикновен диск и сам извършва оптимизации на ниско ниво при всеки достъп. На практика обаче оптимизацията варира от устройство до устройство, от магическа до фалшива.

IN корпоративен SSDВграденият контролер е малък компютър. Има огромен буфер на паметта (половин гигабайт или повече) и поддържа много техники за ефективност на данните, за да се избегнат ненужни цикли на презаписване. Чипът организира всички блокове в кеша, извършва лениви записи, извършва дедупликация в движение, резервира някои блокове и изчиства други във фонов режим. Цялата тази магия се случва напълно незабелязано от операционната система, програмите и потребителя. С SSD като този наистина няма значение коя файлова система се използва. Вътрешните оптимизации имат много по-голямо влияние върху производителността и ресурсите, отколкото външните.

Бюджетните SSD (и още повече флаш паметите) са оборудвани с много по-малко интелигентни контролери. Кешът в тях е ограничен или липсва, а съвременните сървърни технологии изобщо не се използват. Контролерите в картите с памет са толкова примитивни, че често се твърди, че изобщо не съществуват. Следователно, за евтини устройства с флаш памет, външните методи за балансиране на натоварването остават актуални - предимно чрез използване на специализирани файлови системи.

От JFFS към F2FS

Един от първите опити за написване на файлова система, която да вземе предвид принципите на организиране на флаш памет, беше JFFS - Journaling Flash File System. Първоначално това развитие на шведската компания Axis Communications беше насочено към увеличаване на ефективността на паметта на мрежовите устройства, които Axis произвежда през 90-те години. Първата версия на JFFS поддържаше само NOR памет, но вече във втората версия стана приятел с NAND.

В момента JFFS2 има ограничена употреба. Все още се използва основно в Linux дистрибуции за вградени системи. Може да се намери в рутери, IP камери, NAS и други обикновени потребители на Интернет на нещата. Като цяло навсякъде, където се изисква малко количество надеждна памет.

Допълнителен опит за разработване на JFFS2 беше LogFS, който съхранява inodes в отделен файл. Автори на тази идея са Йорн Енгел, служител на немското подразделение на IBM, и Роберт Мертенс, преподавател в университета в Оснабрюк. Изходният код на LogFS е наличен в GitHub. Съдейки по факта, че последната промяна в него беше направена преди четири години, LogFS не е придобил популярност.

Но тези опити стимулират появата на друга специализирана файлова система - F2FS. Разработен е от Samsung Corporation, която представлява значителна част от флаш паметта, произвеждана в света. Samsung произвежда NAND Flash чипове за собствените си устройства и за други компании, а също така разработва SSD дискове с фундаментално нови интерфейси вместо старите дискови. Създаването на специализирана файлова система, оптимизирана за флаш памет, беше отдавна назряла необходимост от гледна точка на Samsung.

Преди четири години, през 2012 г., Samsung създаде F2FS (Flash Friendly File System). Идеята й беше добра, но изпълнението се оказа грубо. Ключовата задача при създаването на F2FS беше проста: да се намали броят на операциите за пренаписване на клетки и да се разпредели натоварването върху тях възможно най-равномерно. Това изисква извършване на операции върху множество клетки в рамките на един и същ блок едновременно, вместо да ги принуждавате една по една. Това означава, че това, което е необходимо, не е моментално пренаписване на съществуващи блокове при първото искане на операционната система, а кеширане на команди и данни, добавяне на нови блокове към свободното пространство и забавено изтриване на клетки.

Днес поддръжката на F2FS вече е официално внедрена в Linux (и следователно в Android), но на практика все още не предоставя никакви специални предимства. Основната характеристика на тази файлова система (мързеливо пренаписване) доведе до преждевременни заключения за нейната ефективност. Старият трик за кеширане дори заблуди ранните версии на бенчмаркове, където F2FS демонстрира въображаемо предимство не с няколко процента (както се очакваше) или дори с няколко пъти, а с порядъци. Драйверът F2FS просто докладва завършването на операция, която контролерът току-що планира да направи. Въпреки това, ако реалното увеличение на производителността за F2FS е малко, тогава износването на клетките определено ще бъде по-малко, отколкото при използване на същия ext4. Тези оптимизации, които евтиният контролер не може да направи, ще бъдат извършени на нивото на самата файлова система.

Екстенти и растерни изображения

Засега F2FS се възприема като екзотика за маниаците. Дори в собствената си Смартфони Samsung ext4 все още се прилага. Мнозина го смятат за по-нататъшно развитие на ext3, но това не е съвсем вярно. Тук става въпрос повече за революция, отколкото за преодоляване на бариерата от 2 TB на файл и просто увеличаване на други количествени показатели.

Когато компютрите бяха големи и файловете бяха малки, адресирането не беше проблем. На всеки файл беше разпределен определен брой блокове, чиито адреси бяха въведени в таблицата за съответствие. Ето как работи файловата система ext3, която остава в експлоатация и до днес. Но в ext4 се появи фундаментално различен метод за адресиране - екстенти.

Екстентите могат да се разглеждат като разширения на inodes като дискретни набори от блокове, които се адресират изцяло като съседни последователности. Един екстент може да съдържа цял файл със среден размер, но за големи файлове е достатъчно да разпределите дузина или два екстента. Това е много по-ефективно от адресирането на стотици хиляди малки блокове от четири килобайта.

Самият механизъм за запис също е променен в ext4. Сега блоковете се разпределят незабавно в една заявка. И то не предварително, а непосредствено преди запис на данни на диск. Мързеливото многоблоково разпределение ви позволява да се отървете от ненужните операции, за които ext3 беше виновен: в него блоковете за нов файл бяха разпределени незабавно, дори ако той се побере изцяло в кеша и е планирано да бъде изтрит като временен.


Диета с ограничени мазнини

В допълнение към балансираните дървета и техните модификации има и други популярни логически структури. Има файлови системи с принципно различен тип организация - например линейна. Вероятно често използвате поне един от тях.

мистерия

Познайте гатанката: на дванадесет тя започна да наддава, на шестнадесет беше глупава дебела, а на тридесет и две стана дебела и остана проста. Коя е тя?

Точно така, това е история за файловата система FAT. Изискванията за съвместимост й осигуриха лоша наследственост. На флопи дисковете беше 12-битов, на твърдите дискове първоначално беше 16-битов и оцеля до днес като 32-битов. Във всяка следваща версия броят на адресируемите блокове се увеличаваше, но нищо не се промени по същество.

Все още популярната файлова система FAT32 се появи преди двадесет години. Днес той все още е примитивен и не поддържа списъци за контрол на достъпа, дискови квоти, фонова компресия или други модерни технологииоптимизиране на обработката на данни.

Защо FAT32 е необходим в наши дни? Всичко все още е само за осигуряване на съвместимост. Производителите с право вярват, че FAT32 дял може да се чете от всяка операционна система. Ето защо те го създават на външни твърди дискове, USB флаш памети карти памет.

Как да освободите флаш паметта на вашия смартфон

microSD(HC) картите, използвани в смартфони, са форматирани във FAT32 по подразбиране. Това е основната пречка за инсталиране на приложения върху тях и прехвърляне на данни от вътрешната памет. За да го преодолеете, трябва да създадете дял на картата с ext3 или ext4. Всички файлови атрибути (включително собственик и права за достъп) могат да бъдат прехвърлени към него, така че всяко приложение може да работи така, сякаш е стартирано от вътрешна памет.

Windows не знае как да създаде повече от един дял на флаш устройства, но за това можете да стартирате Linux (поне във виртуална машина) или разширена помощна програма за работа с логическо разделяне - например MiniTool Partition Wizard Free. След откриване на допълнителен първичен дял с ext3/ext4 на картата, приложението Link2SD и подобни ще предложат много повече опции, отколкото в случай на един FAT32 дял.


Друг аргумент в полза на избора на FAT32 често се цитира като липсата на журналиране, което означава по-бързи операции за запис и по-малко износване на NAND флаш памет клетки. На практика използването на FAT32 води до обратното и поражда много други проблеми.

Флаш устройствата и картите с памет умират бързо поради факта, че всяка промяна във FAT32 води до презаписване на същите сектори, където се намират две вериги от файлови таблици. Запазих цялата уеб страница и тя беше презаписана сто пъти - с всяко добавяне на друг малък GIF към флашката. Стартирахте ли преносим софтуер? Той създава временни файлове и постоянно ги променя, докато работи. Следователно е много по-добре да използвате NTFS на флаш устройства с неговата устойчива на отказ $MFT таблица. Малките файлове могат да се съхраняват директно в основната файлова таблица, а нейните разширения и копия се записват в различни области на флаш паметта. В допълнение, NTFS индексирането прави търсенето по-бързо.

ИНФО

За FAT32 и NTFS не са посочени теоретични ограничения за нивото на влагане, но на практика те са еднакви: само 7707 поддиректории могат да бъдат създадени в директория от първо ниво. Тези, които обичат да играят на матрьошки, ще го оценят.

Друг проблем, с който се сблъскват повечето потребители, е, че е невъзможно да се запише файл, по-голям от 4 GB на FAT32 дял. Причината е, че във FAT32 размерът на файла се описва от 32 бита в таблицата за разпределение на файлове, а 2^32 (минус едно, за да бъдем точни) е точно четири гига. Оказва се, че на прясно закупена флашка не може да се запише нито филм с нормално качество, нито DVD изображение.

Копирането на големи файлове не е толкова лошо: когато се опитате да направите това, грешката поне веднага се вижда. В други ситуации FAT32 действа като бомба със закъснител. Например, копирахте преносим софтуер на флаш устройство и в началото го използвате без проблеми. След дълго време една от програмите (например счетоводна или имейл), базата данни се раздува и... просто спира да се актуализира. Файлът не може да бъде презаписан, защото е достигнал ограничението от 4 GB.

По-малко очевиден проблем е, че във FAT32 датата на създаване на файл или директория може да бъде посочена с точност до две секунди. Това не е достатъчно за много криптографски приложения, които използват времеви отпечатъци. Ниската точност на атрибута дата е друга причина, поради която FAT32 не се счита за валидна файлова система от гледна точка на сигурността. Неговите слабости обаче могат да се използват и за ваши собствени цели. Например, ако копирате файлове от NTFS дял в том FAT32, те ще бъдат изчистени от всички метаданни, както и от наследени и специално зададени разрешения. FAT просто не ги поддържа.

exFAT

За разлика от FAT12/16/32, exFAT е разработен специално за USB Flash и големи (≥ 32 GB) карти с памет. Разширената FAT елиминира гореспоменатия недостатък на FAT32 - презаписване на едни и същи сектори при всяка промяна. Като 64-битова система, тя няма практически значителни ограничения за размера на един файл. Теоретично тя може да бъде с дължина 2^64 байта (16 EB) и карти с такъв размер няма да се появят скоро.

Друга фундаментална разлика между exFAT е поддръжката на списъци за контрол на достъпа (ACL). Това вече не е същата простотия от деветдесетте години, но затвореният характер на формата пречи на внедряването на exFAT. Поддръжката на ExFAT е напълно и законно внедрена само в Windows (започвайки от XP SP2) и OS X (започвайки от 10.6.5). В Linux и *BSD се поддържа или с ограничения, или не съвсем легално. Microsoft изисква лицензиране за използването на exFAT и има много правни противоречия в тази област.

Btrfs

Друг виден представител на файлови системи, базирани на B-дървета, се нарича Btrfs. Тази FS се появи през 2007 г. и първоначално беше създадена в Oracle с оглед на работа със SSD и RAID. Например, той може да бъде динамично мащабиран: създаване на нови inode директно в работещата система или разделяне на том на подобеми, без да им се разпределя свободно пространство.

Механизмът за копиране при запис, внедрен в Btrfs, и пълната интеграция с модула на ядрото на Device mapper ви позволяват да правите почти моментални снимки чрез виртуални блокови устройства. Предварителната компресия (zlib или lzo) и дедупликацията ускоряват основните операции, като същевременно удължават живота на флаш паметта. Това е особено забележимо при работа с бази данни (постига се 2-4 пъти компресиране) и малки файлове (те се записват в подредени големи блокове и могат да се съхраняват директно в „листа“).

Btrfs също поддържа пълен режим на регистриране (данни и метаданни), проверка на обема без демонтиране и много други модерни функции. Btrfs кодът е публикуван под GPL лиценз. Тази файлова система се поддържа като стабилна в Linux от версия на ядрото 4.3.1.

Бордови дневници

Почти всички повече или по-малко модерни файлови системи (ext3/ext4, NTFS, HFSX, Btrfs и други) принадлежат към общата група на журналираните, тъй като съхраняват записи на направените промени в отделен дневник (дневник) и се проверяват спрямо него в случай на повреда по време на дискови операции. Въпреки това детайлността на регистриране и устойчивостта на грешки на тези файлови системи се различават.

Ext3 поддържа три режима на регистриране: затворен цикъл, подредено и пълно регистриране. Първият режим включва записване само на общи промени (метаданни), извършени асинхронно по отношение на промените в самите данни. Във втория режим се извършва същото записване на метаданни, но строго преди извършване на промени. Третият режим е еквивалентен на пълно регистриране (промени както в метаданните, така и в самите файлове).

Само последната опция гарантира целостта на данните. Останалите две само ускоряват откриването на грешки по време на сканирането и гарантират възстановяване на целостта на самата файлова система, но не и на съдържанието на файловете.

Журналирането в NTFS е подобно на втория режим на регистриране в ext3. Само промените в метаданните се записват в дневника, а самите данни могат да бъдат загубени в случай на повреда. Този метод на регистриране в NTFS не е предназначен като начин за постигане на максимална надеждност, а само като компромис между производителност и устойчивост на грешки. Ето защо хората, които са свикнали да работят с напълно журналирани системи, смятат NTFS псевдо-журналиране.

Подходът, приложен в NTFS, е в някои отношения дори по-добър от този по подразбиране в ext3. NTFS допълнително периодично създава контролни точки, за да гарантира, че всички преди това отложени дискови операции са завършени. Контролните точки нямат нищо общо с точките за възстановяване в \System Volume Information\ . Това са само записи в регистрационния файл на услугата.

Практиката показва, че такова частично NTFS журналиране в повечето случаи е достатъчно за безпроблемна работа. В края на краищата, дори при внезапно прекъсване на захранването, дисковите устройства не губят захранване моментално. Захранването и множеството кондензатори в самите устройства осигуряват само минималното количество енергия, което е достатъчно за завършване на текущата операция по запис. Съвременните SSD, с тяхната скорост и ефективност, обикновено имат същото количество енергия за извършване на чакащи операции. Опитът за преминаване към пълно регистриране би намалил значително скоростта на повечето операции.

Свързване на файлове на трети страни в Windows

Използването на файлови системи е ограничено от тяхната поддръжка на ниво ОС. Например Windows не разбира ext2/3/4 и HFS+, но понякога е необходимо да ги използвате. Това може да стане чрез добавяне на подходящия драйвер.

ВНИМАНИЕ

Повечето драйвери и добавки за поддръжка на файлови системи на трети страни имат своите ограничения и не винаги работят стабилно. Те могат да са в конфликт с други драйвери, антивируси и програми за виртуализация.

Отворен драйвер за четене и запис на ext2/3 дялове с частична поддръжка за ext4. IN последна версияподдържат се екстенти и дялове до 16 TB. LVM, списъците за контрол на достъпа и разширените атрибути не се поддържат.


Има безплатен плъгин за Total Commander. Поддържа четене на ext2/3/4 дялове.


coLinux е отворен и безплатен порт на ядрото на Linux. Заедно с 32-битов драйвер ви позволява да стартирате Linux Windows средаот 2000 до 7 без използване на технологии за виртуализация. Поддържа само 32-битови версии. Разработването на 64-битова модификация беше отменено. coLinux позволява, наред с други неща, да организира от Windows достъпкъм ext2/3/4 дялове. Подкрепата за проекта беше спряна през 2014 г.

Windows 10 може вече да има вградена поддръжка за специфични за Linux файлови системи, просто е скрита. Тези мисли са подсказани от драйвера на ниво ядро ​​Lxcore.sys и услугата LxssManager, която се зарежда като библиотека от процеса Svchost.exe. За повече информация относно това вижте доклада на Алекс Йонеску „The Linux Kernel Hidden Inside Windows 10“, който той даде на Black Hat 2016.


ExtFS за Windows е платен драйвер, произведен от Paragon. Работи на Windows 7 до 10 и поддържа достъп за четене/запис на томове ext2/3/4. Осигурява почти пълна поддръжка за ext4 на Windows.

HFS+ за Windows 10 е друг патентован драйвер, произведен от Paragon Software. Въпреки името, той работи във всички Windows версиизапочвайки от XP. Осигурява пълен достъпкъм файлови системи HFS+/HFSX на дискове с произволно оформление (MBR/GPT).

WinBtrfs е ранна разработка на драйвера Btrfs за Windows. Вече във версия 0.6 той поддържа достъп както за четене, така и за запис на Btrfs томове. Може да обработва твърди и символни връзки, поддържа алтернативни потоци от данни, ACL, два вида компресия и асинхронен режим на четене/запис. Докато WinBtrfs не знае как да използва mkfs.btrfs, btrfs-balance и други помощни програми за поддържане на тази файлова система.

Възможности и ограничения на файловите системи: обобщена таблица

Файлова система Максимален размер на обема Ограничете размера на един файл Дължина на правилното име на файл Дължина на пълното име на файла (включително пътя от корена) Ограничете броя на файловете и/или директориите Точност на индикацията за дата на файл/директория Права дос-ту-па Твърди връзки Символни връзки Моментни снимки Компресиране на данни във фонов режим Криптиране на данни във фонов режим Дядо-ple-ka-tion на данни
FAT16 2 GB в сектори от 512 байта или 4 GB в клъстери от 64 KB 2 GB 255 байта с LFN - - - - - - - - - -
FAT32 8 TB в 2 KB сектори 4 GB (2^32 - 1 байт) 255 байта с LFN до 32 поддиректории с CDS 65460 10 ms (създаване) / 2 s (промяна) Не Не Не Не Не Не Не
exFAT ≈ 128 PB (2^32-1 клъстера от 2^25-1 байта) теоретично / 512 TB поради ограничения на трети страни 16 EB (2^64 - 1 байт) 2796202 в каталога 10 ms ACL Не Не Не Не Не Не
NTFS 256 TB в клъстери от 64 KB или 16 TB в клъстери от 4 KB 16 TB (Win 7) / 256 TB (Win 8) 255 Unicode знака (UTF-16) 32 760 Unicode знака, до максимум 255 знака на елемент 2^32-1 100 ns ACL да да да да да да
HFS+ 8 EB (2^63 байта) 8 EB 255 Unicode знака (UTF-16) не се ограничава отделно 2^32-1 1 сек Unix, ACL да да Не да да Не
APFS 8 EB (2^63 байта) 8 EB 255 Unicode знака (UTF-16) не се ограничава отделно 2^63 1 ns Unix, ACL да да да да да да
Ext3 32 TB (теоретично) / 16 TB в 4 KB клъстери (поради ограниченията на програмите e2fs) 2 TB (теоретично) / 16 GB за по-стари програми 255 Unicode знака (UTF-16) не се ограничава отделно - 1 сек Unix, ACL да да Не Не Не Не
Ext4 1 EB (теоретично) / 16 TB в 4 KB клъстери (поради ограниченията на програмите e2fs) 16 TB 255 Unicode знака (UTF-16) не се ограничава отделно 4 милиарда 1 ns POSIX да да Не Не да Не
F2FS 16 TB 3,94 TB 255 байта не се ограничава отделно - 1 ns POSIX, ACL да да Не Не да Не
BTRFS 16 EB (2^64 - 1 байт) 16 EB 255 ASCII знака 2^17 байта - 1 ns POSIX, ACL да да да да да да

Файловата система ви позволява да организирате програми и данни и да организирате правилно управление на тези обекти.

За операционни системи персонални компютриКонцепцията за файловата система, която е в основата на Unix OS, остави дълбок отпечатък. В Unix I/O подсистемата обединява начина, по който се осъществява достъп както до файловете, така и до периферните устройства. Под файл се разбира набор от данни на диск, терминал или друго устройство.

Файлова система е функционална част от операционната система, която извършва операции с файлове. Файловата система ви позволява да работите с файлове и директории (директории) независимо от тяхното съдържание, размер, тип и т.н.

Файлова система е система за управление на данни.

Системата за управление на данни е система, в която потребителите са освободени от повечето физически манипулации на файлове и могат да се фокусират основно върху логическите свойства на данните.

OS файловите системи създават за потребителите някакъв вид виртуално представяне на външни устройства за съхранение, което им позволява да работят не на ниско ниво на команди за управление на физически устройства, а на високо ниво на набори от данни и структури.

Файлова система (предназначение):

  • скрива картината на реалното местоположение на информацията във външната памет;
  • осигурява независимост на програмите от конкретната конфигурация на компютъра (логическо ниво на работа с файлове);
  • предоставя стандартни отговори на грешки, възникнали по време на обмен на данни.

Файлова структура

Цялата колекция от файлове на диска и връзките между тях се нарича файлова структура. Разработените операционни системи имат йерархична – многостепенна файлова структура, организирана под формата на дърво.

Използва се дървовидна структура на директория − дърво на директориите. Заимствано от Unix. Йерархична структура – структурата на система, чиито части (компоненти) са свързани чрез отношения на включване или подчинение.

Йерархичната структура е представена от ориентирано дърво, в което върховете съответстват на компоненти, а дъгите съответстват на връзки.

Дърво на директории на G устройство

Насоченото дърво е граф с избран връх (корен), в който има уникален път между корена и всеки връх. В този случай са възможни две опции за ориентация: или всички пътища са ориентирани от корена към листата, или всички пътища са ориентирани от листата към корена.

Дърветата се използват за описване и проектиране на йерархични структури.

Коренът е началната позиция, листата са крайната позиция.

Раздели

По време на процеса на форматиране всеки твърд или магнитооптичен диск може да бъде разделен на няколко части и да се третира като отделни (независими) дискове. Тези части се наричат секцииили логически устройства. Разделянето на диск на няколко логически устройства може да е необходимо, тъй като операционната система не може да обработва дискове, по-големи от определен размер. Много е удобно да съхранявате данни и потребителски програми отделно от системните програми (ОС), тъй като ОС може да „отлети от компютъра“.

Глава– дискова площ. Под логически диск (дял)Под компютър имаме предвид всеки носител за съхранение, с който операционната система работи като единен цялостен обект.

Име на устройството– обозначение на логическото устройство; запис в основната директория.

Логическите устройства (дялове) се обозначават с латински букви А Б В Г Д, ... (32 букви от А до Я).

Буквите A, B са запазени за дискети.

С - HDD, обикновено от който се зарежда ОС.

Останалите букви са логически устройства, компактдискове и др. Максималният брой логически устройства за Windows OS е безкраен.

IN преградна маса показва местоположението на началото и края на тази секция и броя на секторите в тази секция (местоположение и размер).

Файлова структура на логическо устройство

За да получите достъп до информацията на диска, съдържаща се във файл, трябва да знаете физическия адрес на първия сектор (номер на повърхността + номер на песен + номер на сектор), общия брой клъстери, заети от този файл, адреса на следващия клъстер, ако размерът на файла е по-голям от размера на един клъстер

Елементи на файловата структура:

    начален сектор (първоначално зареждане, Boot сектор);

    маса поставянефайлове (FAT – Таблица за разпределение на файлове);

    главна директория (Главна директория);

    област за данни (оставащо свободно дисково пространство).

Обувка-сектор

Обувка-сектор – първия (началния) сектор на диска. Разположен от 0-страна, 0-писта.

Секторът за зареждане съдържа сервизна информация:

    размер на клъстера на диска (клъстерът е блок, който комбинира няколко сектора в група, за да намали размера на FAT таблицата);

    местоположението на FAT таблицата (в boot сектора има указател къде се намира FAT таблицата);

    FAT размер на масата;

    брой FAT таблици (винаги има поне 2 копия на таблицата, за да се гарантира надеждност и сигурност, тъй като унищожаването на FAT води до загуба на информация и е трудно да се възстанови);

    адреса на началото на основната директория и нейния максимален размер.

Секторът за зареждане съдържа блока за зареждане (bootloader) - Boot Record.

Товарачът е помощна програма, която поставя изпълнимата програма RAMи го привежда в състояние на готовност за изпълнение.

FAT (Таблица за разпределение на файлове)

FAT (File Allocation Table) – таблица за разпределение на файлове. Той определя кои области на диска принадлежат към всяка област с данни на диска, представена в ОС като последователност от номерирани клъстери.

ДЕБЕЛе масив от елементи, адресиращи клъстери на областта с данни на диска. Всеки клъстер на област от данни съответства на един FAT елемент. FAT елементите служат като верига от препратки към файлови клъстери в областта с данни.

Структура на таблицата за разпределение на файлове:

FAT се състои от 16/32/64 битови елементи. Общо таблицата може да съдържа до 65520 такива елемента, като всеки от тях (с изключение на първите два) съответства на дисков клъстер. Клъстерът е единица, която разпределя място в област с данни на диск за файлове и директории. Първите два елемента на таблицата (номерирани 0 и 1) са запазени, а всеки от останалите елементи на таблицата описва състоянието на дисковия клъстер със същия номер. Елементът може да показва, че клъстерът е свободен, че клъстерът е дефектен, че клъстерът принадлежи към файла и е последният клъстер във файла. Ако даден клъстер принадлежи на файл и не е неговият последен клъстер, тогава елементът на таблицата съдържа номера на следващия клъстер в този файл.

ДЕБЕЛ– изключително важен елемент от файловата структура. Нарушенията във FAT могат да доведат до пълна или частична загуба на информация на цялото логическо устройство. Ето защо на диска се съхраняват две копия на FAT. Има специални програми, които следят състоянието на FAT и коригират нарушенията.

Изисква се за различни ОС различни версииДЕБЕЛ

Windows 95 FAT 16, FAT 32

Windows NT (XP) NTFS

Novell Netware TurboFAT

UNIX NFS, ReiserFS

Логическа структура на носителя за съхранение

Вашето сменяемо устройство трябва да използва FAT32 за по-добра съвместимост, но ако планирате да съхранявате големи файлове, тогава го форматирайте в NTFS. Mac форматира устройства в HFS+, което не работи с Windows. Linux също има свои собствени файлови системи.

Защо са толкова много?

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

Различните файлови системи станаха лесни различни начиниорганизирайте и съхранявайте файлове на твърд диск, флаш устройство или друго устройство за съхранение. Всяко устройство за съхранение има една или повече секции и всяка секция трябва да бъде "форматирана" в режим на специфична файлова система. Процесът на форматиране създава празна файлова система от този тип на устройството.

Файлова системапредоставя начин за разделяне на данни на диск на отделни части, които са файлове. Той също така предоставя начин за съхраняване на данни за тези файлове - като техните имена, разрешения и други атрибути. Файлова системасъщо така предоставя индексен списък на файловете на диска и къде се намират на диска, така че операционната система да може да види какво има на диска на едно място, без да се налага да преглежда целия диск, за да намери .

Операционната система трябва да разбира файловата система, за да може да показва нейното съдържание, да отваря файлове и да записва файлове в тях. Ако вашата операционна система не разбира файловата система, можете да инсталирате драйвер за файлова система, който осигурява поддръжка за такава файлова система.

Файловата система на компютърен диск може да се сравни със система за съхранение на документи - битовете данни на компютъра се наричат ​​„файлове“ и са организирани във „файлова система“, точно както хартиените файлове могат да бъдат организирани в шкафове за файлове . Съществуват различни начиниорганизирането на тези файлове и съхраняването на данни се нарича „файлови системи“.

Защо има толкова много файлови системи?

Не всички файлови системи са създадени еднакви. Различните файлови системи имат различни начини за организиране на своите данни. Някои файлови системи са по-бързи от други, някои имат допълнителни функции за сигурност, а някои поддържат устройства с по-голямо количество памет, докато други работят само на устройства с по-малко памет. Някои файлови системи са по-надеждни и устойчиви на повреда на файлове, докато други правят компромис с надеждността в полза на скоростта.

Не съществува по-добра файлова система, който би бил подходящ за всякакви цели. Всяка компютърна операционна система има тенденция да използва своя собствена файлова система, върху която работят и разработчиците на операционната система. Microsoft, Apple и разработчиците на ядрото на Linux работят върху свои собствени файлови системи. Новите файлови системи може да са по-бързи, по-стабилни, да се мащабират по-добре към по-големи устройства за съхранение и да имат повече функции от по-старите.

Файловата система не е като дял, което е просто част от пространството за съхранение. Файловата система определя как файловете са разположени, организирани, индексирани и как метаданните са свързани с тях. Винаги има място за настройване и подобряване на начина, по който се прави.

Превключване на файлови системи

Всеки дял има файлова система. Понякога можете да "конвертирате" файловата система на дял, но това рядко е възможно. Вместо това вероятно първо ще трябва да копирате важните данни от дяла.

Операционните системи автоматично форматират дяловете в подходящата файлова система по време на инсталационния процес. Ако имате форматиран за Windows дял, на който искате да инсталирате Linux, по време на инсталационния процес Linux ще форматира NTFS или FAT32 дяла към файловата система на Linux, предпочитана от вашата Linux дистрибуция.

Така че, ако имате устройство за съхранение и искате да използвате различна файлова система, просто копирайте файловете от нея, за да ги архивирате. След това използвайте инструмента Управление на дисковена Windows gpartedна Linux или помощна програма за дисковена Mac OS.

Преглед на общите файлови системи

Тук кратък прегледнякои от най-често срещаните файлови системи, които ще срещнете. Не е изчерпателно - има много други файлови системи за специални цели:

  • FAT32: е една от по-старите файлови системи на Windows, но все още се използва на преносими носители - малки по размер. Големите външни твърди дискове от 1 TB или повече във всеки случай ще бъдат форматирани с NTFS. FAT32 има смисъл да се използва само с малки устройства за съхранение или за съвместимост с други устройства като цифрови фотоапарати, игрови конзоли, декодери и други устройства, които поддържат само FAT32, но NTFS.
  • NTFS: модерна версия на файловата система на Windows - използва се от Windows XP. Външните устройства могат да бъдат форматирани с FAT32 или NTFS.
  • HFS+: Mac използва HFS+ за вътрешните си дялове и ги форматира с него външни дискове– Използването на външен твърд диск с Time Machine изисква да могат да се добавят атрибути на файловата система резервно копие. Mac също могат да четат и записват файлове във файлови системи FAT32, но ще ви трябва трета страна софтуерза запис в NTFS файлови системи от Mac.
  • Ext2 / Ext3/Ext4: Често ще виждате файлови системи ext2, ext3 и ext4 в Linux. Ext2 е по-стара файлова система и няма важни функции като регистриране - ако токът спре или компютърът се срине, докато записва на ext2 устройство, данните може да бъдат загубени. Ext3 добавя тези характеристики на устойчивост с цената на известна скорост. Ext4 е по-модерна и по-бърза опция - това е файловата система по подразбиране в повечето Linux дистрибуции. Windows и Mac не поддържат тези файлови системи - ще ви трябва инструмент на трета страна за достъп до файлове в такива файлови системи. Linux обаче може да чете и записва както във FAT32, така и в NTFS.
  • Btrfs: това е нов файл Linux система, който все още е в процес на разработка. В момента не е стандарт за повечето дистрибуции на Linux, но вероятно един ден ще замени Ext4. Целта е да се предоставят допълнителни функции, които позволяват на Linux да се мащабира до по-големи обеми за съхранение.
  • Размяна: В Linux файловата система "swap" всъщност не е файлова система. Дял, форматиран като "swap", може да се използва като swap пространство на операционната система - като файла на страницата на Windows, но изисква специален дял.

Има и други файлови системи, особено на Linux и други Unix-подобни системи.

Типичният потребител на компютър няма да знае много от този материал - но познаването на основите ще ви помогне да разберете въпроси като: "защо това устройство с формат Mac не работи с моя компютър с Windows?" и "трябва ли да форматирам този USB твърд диск като FAT32 или NTFS?".