• Welcome to Български Националистически Форумъ.
 
avatar_Hatshepsut

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

Започната отъ Hatshepsut, 04 Юли 2022, 23:21:38

0 Потрѣбители и 1 гостъ преглеждатъ тази тема.

Hatshepsut

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


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

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

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

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

Управление на пространството

Файловата система е отговорна за организирането на файловете и директориите, и проследяване на това кои области от физическото устройство са заделени за даден файл, и кои са свободни. Тя е алгоритъм, който превежда сложни инструкции (като например ,,Запиши 300 байта във файл HelloWorld.txt; задай времето на създаване на файла да е текущото време; направи файла достъпен само за мен) в команди (просто казано Пиши и Чети), разбираеми от съответното устройство. При блок устройствата (твърди дискове, флаш памети и др.), файловите системи организират разполагаемото пространство, обединявайки секторите (най-малките физически единици на устройството) в клъстери, които са най-малката логическа единица за запазване на информация и обикновено са с размер от 512 байта (1 сектор) до 64 килобайта (128 сектора). Ако например размера на един файл не е точно кратно на размера на клъстера, това може да доведе до създаването на неизползваемо пространство. За 512 байтово заделяне, загубеното пространство е средно 256 байта. Размера на клъстерите може да се задава когато се създава файловата система. Избирайки размер на клъстера, базирайки се на средния размер на файловете, които ще се съхраняват, може да намали загубеното, неизползваемо пространство.

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

Надеждност на файловата система

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

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

За липсата на консистенция във файловата система може да има много причини, най-често срещаната от които е неправилното изключване на устройството. Работенето с файлова система с нарушена консистенция крие рискове – достъпването на повредени файлове може да ги унищожи или дори да увреди иначе здрави такива. Поради тази причина, повечето файлови системи стартират проверки през определен период, или при установяване на неправилно изключване на системата. Но поради факта, че при опит информацията да бъде поправена може да се стигне и до повреждане на друга, най-добрия начин за противодействие на нарушаването на консистенцията е да се предприемат превантивни мерки това да не се случва. Това може да стане или чрез ,,journaling", или чрез ,,copy-on-write".

Journaling

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

Файлова система, която използва ,,journaling" има специфична зона от клъстери, наричани журнал (journal), в които се записва какво иска да свърши файловата система. Когато ние решим да запишем нашият 3 гигабайтов файл, файловата система може (1) да отбележи в журнала, че иска да запише файл, (2) да запише файла, (3) да отбележи в журнала факта, че файла е успешно записан, (4) да регистрира файла, (5) да изтрие журнала. Ако захранването спре, при следващото си зареждане файловата система първо ще прочете журнала и ще прецени какво да предприеме, като по този начин ще ни остави последователна файлова система.

Така например, ако възникне проблем между:

(1) и (2) – файловата система ще знае, че е искала да запише файл, и дори и да е успяла да запише нещо, този запис е непълен. Освобождава пространството, което може да е заделила предварително за файла и изтрива журнала. Файла го няма, но файловата система е наред.
(3) и (4) – файловата система знае, че е успяла да запише файла, но при регистрирането му е имало проблем. И понеже информацията във файла е коректна, файловата система се опитва да регистрира файла правилно и да се увери че това няма да навреди на целостта останалите данни в директорията. Ако успее, разполагаме с файл. В противен случай мястото се освобождава, но системата е наред.
(4) и (5) – Всичко е минало наред, файловата система е наред. Няма нищо за поправяне. Изтрива журнала.
Във всеки случай, след прочитането на журнала запазваме консистенцията на файловата система. Въпреки това трябва да се отбележи, че тази функция не е перфектна и в редки случаи самият журнал може да се повреди, правейки го в най-добрия случай безполезен, а в най-лошия – разрушителен. Journaling се използва от повечето файлови системи днес. Като изключения, които си струва да отбележим са FAT32 и ext2.

По-разпространени файлови системи

FAT – Към 2013 г. FAT и нейният вариант FAT32 са най-простите файлови системи все още в употреба. Въпреки че FAT32 се среща все по-рядко на персонални компютри, тази система е основната за USB памети, памет карти за телефони и камери и навсякъде, където улеснената употреба е приоритет. FAT не използва специални операции, за да постигне непрекъснатост и цялост на файловата система, и производителността ѝ значително намалява с последователното записване, изтриване и преместване на файлове върху физическия носител. Няма разширени функционалности, а има значителни недостатъци. На FAT32 например, няма възможност за съхранение на файл по-голям от 4GB.

NTFS – Това е файловата система използвана от Windows (NT4, 2000, XP, Vista, 7, 8). Има разширени възможности и е сравнително бърза. Според специалисти, един от недостатъците ѝ е, че спецификацията е секретна и на теория само Microsoft знаят как работи тя. Linux може само да чете файлове от NTFS, но не и да записва, освен ако не се използва допълнителен софтуер за конкретната задача.

EXT – EXT фамилията от файлови системи са най-разпространени при използването на Linux операционни системи. Поредицата включва ext1, ext2, ext3, и ext4. Ext1 почти не се използва. Ext2 е много надеждна и е издържала теста на времето (15 г. към момента на писане на статията). Ext3, всъщност стандартната Linux файлова система, е същата като предшественика ѝ, но с допълнение на функцията ,,journaling".

Директории

Файловите системи обикновено имат директории (папки), които позволяват на потребителя да групира файлове в отделни каталози. Това може да бъде осъществено чрез асоцииране на името на файла с индекс в таблица на съдържанието или в inode (структура от данни в Unix подобни файлови системи, която съдържа цялата информация за обект на файловата система, с изключения на данните на файла и името му). Структурите на директориите могат да бъдат линейни или разклонени. Първата файлова система, позволяваща произволна йерархия на папките е използвана при операционната система Multics[1]. Първоначалните файлови системи на Unix-подобните системи също поддържат и произволни йерархии на директориите, както напр. Apple's Hierarchical File System и последователя и HFS+ в класическия Mac OS (HFS+ все още се използва в Mac OS X), FAT файловата система при MS-DOS 2.0 и следващите и Microsoft Windows, NТFS файловата система в семейството на Windows NT, ODS-2 и по-високите нива на Files-11 файлова система в OpenVMS.

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

Файловата система има един коренен каталог – бележи се с /. В този каталог се монтира определено устройство (обикновено един от дяловете на твърдия диск). Файловата система на това устройство се нарича коренова (на английски: root). По този начин в този каталог се вижда съдържанието на това устройство. В някой каталог от това устройство могат да бъдат монтирани и други устройства и по този начин и тяхното съдържание да стане достъпно. Обикновено работата по монтирането и демонтирането на устройствата се извършва автоматично. Съществуват програми, които позволяват монтиране (mount) и демонтиране (umount) на файлови системи. При повечето UNIX-подобни системи подвижните носители (дискети и CD), флаш-памети и други външни устройства за данни се монтират в каталог /mnt, /mount или /media.

Една примерна UNIX файлова система може да изглежда така:

/usr
/bin
/arch
/ls
/raw
/lib
/libhistory.so.5.2
/libgpm.so.1
/home
/lost+found
/host.sh
/guest
/Pictures
/example.png
/Video
/matrix.avi
/news
/lost_ship.mpeg

Файлова система на MS DOS

В най-простия случай всички файлове върху даден диск се съхраняват в една директория. Такава система с едно ниво се е използвала в CP/M и първите версии на MS-DOS. За първи път йерархична файлова система с вложени една в друга в друга директории се появява в UNIX.

Wiki.txt
Tornado.jpg
Notepad.exe
(Пример за файлова система с едно ниво)

В MS DOS файловата система има няколко коренни каталога:

C:
\Program files
\CDEx
\CDEx.exe
\CDEx.hlp
\mppenc.exe
\Моите документи
\Wiki.txt
\Tornado.jpg

D:
\Music
\ABBA
\1974 Waterloo
\1976 Arrival
\Money, Money, Money.ogg
\1977 The Album
(Йерархична файлова система Windows/DOS)

На практика, в DOS/Windows системите също като в UNIX-подобните системи съществува една коренна директория с вложени в нея под-директории, наречени с имената ,,c:", ,,d:" и т.н. В тях се ,,монтират" дяловете на твърдия диск. Тоест, c:\ просто означава съкратено file:///c:/. За разлика от UNIX-подобните файлови системи обаче, в Windows е забранен записът в коренния каталог, както и разглеждането му.

https://bg.wikipedia.org/wiki/Файлови системи

Hatshepsut

#1
Windows файлови системи

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

https://bg.wikipedia.org/wiki/Метаданни

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



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

Файловите системи в Windows са два вида: FAT32 и NTFS

FAT32

Fat 32 или File Allocation Table e стара файлова система идваща от DOS. Тя може да се нарече първата или най-масовата система за персонални компютри. Разработена е от Microsoft и се използва до Windows Millennieum. Fat32 е проста файлова система и за времето си е била достатъчно бърза и добра. Ползва се и до днес и се поддържа от почти всяка операционна система (Linux, BSd, MAC OS).

Има няколко версии на FAT
FAT 8 - най-старата, използвала се е за 8" дискети
FAT 12 - използва се 5,25" дискети
FAT 16 - използват се за последните дискети
FAT 32 - използват се за последните дискети
Самото число представлява броя битове, които файловата система използва да адресира в клъстери.
Един от основните проблеми на FAT е че няма организация в самата структура, която използва файловата система.

Във FAT файловата система се използва и друга структура. Това са Directory entries. Това са структурите, които представят една директория. Direcotry entry представлява връзка към файл.
Така изглеждат нещата на един диск.



Първия сектор в един дял (partition) се определя като Volume boot sector или Partition boot sector. Той съдържа информация при първоначалното зареждане на ОС(операционната система) и информация за ФС /файловата система (колко клъстери имаме)/. След това започва FAT1 и FAT2. Те са един до друг и са еднакви и ако имаме лоши сектори те могат да се разпространят бързо и да засегнат двете File Allocation Table. В следващия Root folder се индексират всички файлове и директории.

Така изглеждат неща в дадена директория (примерно C:)



Имате файл, който се казва Hello.c. Самото directory entry показва, че файла започва от 6 индекс на file allocation table (FAT). FAT е огледално изображение на клъстерите на ОС и 6 индекс отговаря на 6 на клъстерите във ФС.



За да изчетен дадена информация  четем първия сектор (6), след това се обръщаме към FAT и проверяваме на индекс 6, кой е следващия клъстер и има ли такъв. В случая е клъстър номер 7. Прочитаме го и поглеждаме във FAT на номер 7 дали имаме следващ клъстър. Имаме и това е номер 8. Изчитаме и клъстър номер 8. След това се обръщаме към последния индекс, който имаме и там има маркер end of file. Тук знаем, че спираме да четем. Directory entries и File аllocation table са свързани, но отделни структури, които се намират на отделни места върху диска. FATсе намира на точно определено място на системния дял. Directory entries са пръснати на самия диск.



Предимства на FAT:

Проста файлова система
Поддържа се от всички ОС и мобилни устройства
Недостатъци на FAT:
Високо ниво на фрагментация
Максималната големина на файл е 4ГБ
Максималната големина на дял е до 2ТБ (терабайта)

Какво е ExFat

ExFat (Extended File Allocation Table) е нова файлова система. Microsoft пускат тази файлова система в Windows Vista SP1, като подразбираща се ФС за форматиране на флаш устройства и карти. Ако форматирате една флашка, тя се форматира с тази ФС и ако я закачите на FAT няма да можете да разчетете данните от нея. Microsoft се опитват да наложат патентни права за нея.


NTFS

NTFS( New Technology File System) е разработка на Microsoft от 93г. за Windows NT.
Тя замества FAT в корпоративната среда и трябва да доставя бързодействие и да бъде по-стабилна. Има много функционалности в съвременните дейности.
Нейната структура е следната.



Master file table може да се намира на различни места, не е дефиниран както при FAT и може да се мести. Тaзи таблица e много по-сложна от FAT. Съдържа много повече информация. Първите редове на тази таблица оказват структурата на тази файлова система. NTFS има няколко файла в които държи мета онформация за самата ФС и организацията на данните.



Boot file - оказва къде се намира самият volume boot record.
Mft file - е копие на master file table
Log file - в него се записват всички промени на файловата система. Ако ние съдаваме файл, първо преди да го създадем, първо ще запишем на дадено място какви са нашите намерения.
Volume file - оказва информация за системnata версията/(NTFS има няколко версии).
Bitmap file - проследява състоянието на всеки един клъстър дали е зает или не
Secure file - организира правата за сигурността на ФС.
Bad Clus file - проследява bad sectors на файловата система.

Hard links

Идеята на hard links е че ние можем да имаме два отделни файла, в различни директории които да сочат към едни и същи данни. Работейки с даден файл и променяйки данните в него, след това ако отворите другия файл, ще видите променените данни. Изтривайки "file1" вие изтривате единствено "хард линка". Ако имате няколко такива хард линка, за да изтриете файла така че да няма връзка към него, трябва да ги изтриете всичките.



Symbolic link/soft link

За първи път се появява в Windows Vista. Те представляват специални directory entries в които има мета информация към друг файл или директория. Тези създават връзки към файлове и директории, дори които се намират на други сървъри. Ако тук изтрием "file1", "file2" остава като обект, но сочи към път, който не съществува и вие нямате връзка към този файл.



Volume mount point

Идеята на Volume mount point е че можем САМО върху NTFS volume да имаме директория в която закачаме отделен дял. Партишъна не е примерно с буква "D" или "Е", a го закачаме към отделна директория. Така изглежда, C:\temp на практика е препратка към дял на хард диск 3, дял 2.



NTFS File Compression - файловата система се грижи да компресира данните. Майкрософт не препоръчва да компресирате файлове по-големи от 30MB. Става въпрос за файлове с които редовно използвате, които се четат и пишат, защото компресията може да причини щети върху тях.

Encrypted File System (EFS) - тя дава възможност да криптираме отделни файлове. Windows Explorer показва тези файлове като зелени. Тази технология е налична в бизнес версиите и в Windows Server.

Volume Quotas - Идеята на квотата е да ограничава потребителите да не заемат дисково пространство безразборно. В Windows има 2 начина. Единият е на даден диск, даден потребител може да заеме 10GB.

- soft quota - ако потребителя заеме повече от 10GB ще се създаде специален лог, който сигнализира за това и може да се изпрати на съответния администратор и да бъде уведомен за това.

- hard quota - заключва и не се разрешава заемането на пространство от даден потребител.

https://technologies-bg.blogspot.com/p/blog-page_10.html

Hatshepsut

Linux файлови системи


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

Бърз отговор: Използвайте Ext4, ако не сте сигурни

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

Ext4 е по подразбиране файлова система на повечето Linux дистрибуции по някаква причина. Това е подобрена версия на по-старата файлова система Ext3. Това не е най-модерната файлова система, но това е добре: Това означава, че Ext4 е рок-твърд и стабилен.

В бъдеще разпределенията на Linux ще се прехвърлят постепенно към BtrFS. BtrFS все още е в разработка, така че е по-добре да я използвате само за тестване. Рискът от повреда на данните или други проблеми не оправдава потенциалното подобрение на скоростта.

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

Ако настройвате дялове на основното устройство за зареждане на Linux, вие също така ще трябва да създадете суап дял от поне няколко GBs по размер, когато настройвате тези дялове. Този дял се използва за "swap пространство". Това е подобно на файла за пейджинг в Windows. Linux пренасочва паметта към суап пространството, когато неговата RAM е пълна. Този дял трябва да бъде форматиран като "суап" вместо с определена файлова система.



Какво е журналистика?

Едно нещо, което ще забележите, когато избирате между файлови системи е, че някои от тях са означени като "journaling" файлова система, а някои не са. Това е важно.

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

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



Журналирането забавя производителността на дисковете при малка скорост, но си струва да се използва на настолен компютър или лаптоп. Това не е толкова много, колкото си мислите. Целияят файл не се записва в журнала. Вместо това в дневника се записват само метаданните, инодовете или местоположението на диска, преди да бъдат записани на диска.

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

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

Каква е разликата между всички тези Linux файлови системи?



Докато Microsoft разработва Windows и Apple контролира MacOS, Linux е проект с отворен код, разработен от общността. Всеки (или компания) с умения и време може да създаде нова Linux файлова система. Това е една от причините, поради които има толкова много възможности. Ето и разликите:

Ext означава "разширена файлова система" и е първата, създадена специално за Linux. Има четири основни редакции. "Ext" е първата версия на файловата система, въведена през 1992 г. Това е основен ъпгрейд от файловата система Minix, използвана по това време. Много дистрибуции на Linux вече не поддържат Ext.

Ext2 не е журнална файлова система. Когато се въведе, тя беше първата файлова система, поддържаща разширени файлови атрибути и 2 терабайтни диска. В Ext2 липсата на журнал означава, че се пише на диска по-малко, което го прави полезна за флаш памет като USB устройства. Файлови системи като exFAT и FAT32 също не използват дневника и са по-съвместими с различни операционни системи, затова ви препоръчваме да избегнете Ext2, освен ако не знаете, че имате нужда от нея по някаква причина.

Ext3 е основно Ext2 плюс журналиране. Ext3 е проектирана да бъде обратно съвместима с Ext2, което позволява дяловете да бъдат конвертирани между Ext2 и Ext3, без да е необходимо форматиране. Тя е използвана по-дълго от Ext4, но Ext4 е от 2008 г. насам и е широко тествана. В този момент е по-добре да използвате Ext4.

Ext4 също така е проектирана да бъде обратно съвместима. Можете да монтирате Ext4 файлова система като Ext3 или да свържете файлова система Ext2 или Ext3 като Ext4. Тя включва по-нови функции, които намаляват разпокъсаността на файловете, позволява по-големи обеми и файлове и използва забавено разпределение, за да подобри живота на флаш паметта. Това е най-съвременната версия на файловата система Ext и се използва по подразбиране за повечето Linux дистрибуции.

Btrfs, произнесено "По-добра" FS, първоначално е проектирана от Oracle. Става дума за "B-Tree File System" и позволява обединяване на дискове, моментни снимки, прозрачна компресия и дефрагментиране онлайн. Тя споделя я същите идеи, намиращи се в ReiserFS - файлова система, която някои Linux дистрибуции използват по подразбиране.  Тед Цо, поддържащ файловата система Ext4, счита Ext4 за краткосрочно решение и смята, че BtrFS е пътят напред. Очаквайте BtrFS да стане по подразбиране както в разпределенията на корпоративни сървъри, така и в потребителските десктоп Linux през следващите няколко години, тъй като те са тествани допълнително.

ReiserFS беше голям скок напред за файловите системи на Linux, когато беше представена през 2001 г. и включва много нови функции, които Ext никога не биха могли да изпълнят. ReiserFS беше заменена от Reiser4, която успя да подобри много от елементите, които бяха непълни или липсваха в първоначалния вариант през 2004 г. Но развитието на Reiser4 спря, след като главният разработчик Ханс Рейзър беше изпратен в затвора през 2008 г. Reiser4 все още не е в основното ядро ��на Linux и е малко вероятно да стигне дотам. BtrFS е по-добрият дългосрочен избор.



ZFS е проектирана от Sun Microsystems за Solaris и сега е собственост на Oracle. ZFS поддържа много съвременни функции, включително обединяване на устройства, моментни снимки и динамично включваане на дискове - BtrFS ще добави много от тези функции на Linux по подразбиране. Всеки файл има контролна сума, така че ZFS може да разбере дали даден файл е повреден или не. ZFS е под Sun CDDL лиценз, което означава, че не може да бъде включена в ядрото на Linux. Въпреки това, можете да инсталирате поддръжка на ZFS на всяка Linux дистрибуция. Ubuntu вече предлага официална поддръжка на ZFS, като се започне с Ubuntu 16.04. Ubuntu използва по подразбиране ZFS за контейнери.

XFS е разработена през 1994 г. за операционната система SGI IRX и е пренесена на Linux през 2001 г. Тя е подобна на Ext4 в някои отношения, тъй като използва забавено разпределение, за да помогне с фрагментацията на файла и не позволява монтирани снимки. Тя може да бъде разширена, но не и свита в движение. XFS има добро представяне при работа с големи файлове, но има по-лоши резултати от други файлови системи, когато се занимава с много малки файлове. Може да е полезна за определени типове сървъри, които основно трябва да се справят с големи файлове.

JFS, или "Journaled File System", е разработена от IBM за операционната система IBM AIX през 1990 г. и по-късно пренесена на Linux. Тя се отличава с ниско натоварване на процесора и добро представяне както за големи, така и за малки файлове. Разделите на JFS могат да бъдат динамично преоразмерени, но не и да се свиват. Това беше изключително добре планирано и има поддръжка в повечето големи дистрибуции, но при Linux сървъри не се използва толкова често, както Ext, тъй като е предназначена за AIX. Ext4 е по-често използвана и е по-широко тествана.

Размяна е опция при форматиране на устройство, но не е действителна файлова система. Тя се използва като виртуална памет и няма структура на файловата система. Не можете да я монтирате, за да видите съдържанието й. Замяната се използва като "пространство за изтриване" от ядрото на Linux, за да съхранява временно данни, които не могат да се поберат в оперативната памет. Тя се използва и за хибернация. Докато Windows съхранява файла си за пейджинг като файл в главния системен дял, Linux просто си запазва отделен празен дял за суап пространство.

FAT16, FAT32, иexFAT: Файловите системи на Microsoft FAT често са опция при форматиране на устройство в Linux. Тези файлови системи не включват дневник, така че те са идеални за външни USB устройства. Те са де факто стандарт, че всяка операционна система - Windows, MacOS, Linux и други устройства - може да го прочете. Това ги прави идеална файлова система, която да използвате при форматиране на външно устройство, което искате да използвате с други операционни системи. FAT32 е по-стара. exFAT е идеалния вариант, тъй като поддържа файлове с размери над 4 GB и дялове с размер над 8 TB, за разлика от FAT32.

Съществуват и други Linux файлови системи, включително файлови системи, предназначени специално за флаш памет във вградени устройства и SD карти. Но това са опциите, които най-често виждате при използване на Linux.

https://bg.if-koubou.com/articles/how-to/which-linux-file-system-should-you-use.html

Hatshepsut

Файлова система в Линукс - структура и основни понятия

Основни принципи

Един от основните принципи в Юникс и Линукс гласи:
"Всичко е файл!"

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

Съществуват следните видове файлове:

Обикновен файл - това са файловете с данни, програмите, конфигурационни файлове и т.н.
Директория - файл, който е списък (директория) на други файлове
Връзка - специален файл, който сочи към друг файл
Символно у-во - файл представляващ хардуерно у-во. Операциите запис/четене се изпълняват байт по байт. Пр. у-во свързано към серийния порт на компютъра
Блоково у-во - хардуерно у-во до което запис/четене се осъществява чрез фиксирани блокове памет. Пр. твърд диск
Socket - гнездо за комуникация. Специален файл използван за комуникация между различни процеси
Pipe - подобно на socket. Използва се за комуникация между различни програми
На структурата на файловата система често е удобно да се гледа като на обърнато дърво. Кореновата директория (/) се намира на върха на йерархията. Нейните поддиректории образуват клоните на дървото, а файловете листата, т.к. те са най-накрая.

Разлики с MS Windows

Съществуват няколко разлики, които ще объркат обикновения потребител запознат само с операционна система MS Windows или DOS. Те не са следствие от това, че Линукс е направен погрешно, а точно обратното. Юникс като предшественик на Линукс съществува много преди Windows и е положил основите на много стандарти в съвременните ОС. Microsoft са хората, които решават да не спазват стандартите и да исмислят нови такива.

В Линукс съществува една единствена директорийна структура, която започва от кореновата директория. Линукс монтира различните дялове и твърди дискове в определени директории като осигурява еднороден достъп до файловете. При DOS/Windows различните дялове и дискове получават буквена номерация при стартирането на ОС. Всеки дял/диск представлява отделна директорийна структура и няма как те да бъдат съединени в едно цяло. Може да гледаме на този подход като на гора от дървета
В Линукс кореновата директория се обозначава с "/" - наклонена черта, наклонена на дясно (slash). В Windows най-близкото до "/" е "C:"
Линукс използва дясно наклонена черта за разделител между директориите, а Widnows ляво наклонена "\" (back slash)
Имената на файловете в Линукс са чувствителни към регистъра (малки/големи букви). В DOS/Windows не са. Т.е. "My Documents", "my documents", "my Documents" и т.н. са различни

Структура на директориите

Списъка на директориите в стандартна инсталация на Федора 10 изглежда така:

Директория    Описание
/    Коренова директория. Начало на йерархията на директориите.
/bin/    Основни команди и инструменти на ОС. Достъпни са от всички потребители.
/boot/    Файлове за първоначално зареждане на системата. Много често са на отделен дял.
/dev/    Файлове на хардуерни или софтуерни у-ва, като твърди дискове, памет, сериен порт т.н. В новите ОС съдържанието на тази директория се генерира при стартиране на системата, в зависимост от наличните у-ва на компютъра. При старите, тя е статична.
/etc/    Конфигурационни файлове за цялата система. Почти всички програми свързани с работата на системата съхраняват конфигурацията си в тази директория. Най-често това са обикновени текстови файлове, по рядко XML или с по сложна структура. Името идва от "et cetera", т.к. в миналото там са се поставяли файлове, за който не е намерено подходящо място.
/etc/opt/
Конфигурационни файлове за /opt/.
/etc/X11/
Конфигурационни файлове за графичната система X, версия 11.
/etc/sgml/
Конфигурационни файлове за SGML.
/etc/xml/
Конфигурационни файлове за XML.
/home/    Съдържа домашните папки на потребителите, въпреки че може да са на друго място. Линукс е многопотребителска система и всеки потребител има своя домашна директория. Там може да съхранява личните си файлове и персонални настройки за програмите с който работи. Обикновено неможе да записва файлове в други директории.
/lib/    Програмни библиотеки за програмите в /bin/ and /sbin/. Това са основните програмни библиотеки в системата. При 64 битови машини може да имаме и /lib64/.
/lost+found/    Всеки дял на диска съдържа директория с това име. Файлове, който са запазени при повреда на диска или друга аномалия в системата (като спиране на тока) се намират тук. При стартиране на машината ОС ще се опита да ги възстанови.
/media/    Точки за монтиране на преносими носители на данни като CD-ROM или USB. Много от графичните среди за работа монтират временно у-ва в тази директория.
/mnt/    Друга директория за монтиране на дялове/дискове. Обикновено това се прави ръчно.
/opt/    Допълнителни приложения, извън стандартните за ОС.
/proc/    Виртуална файлова система. Информацията тук се генерира динамично при поискване (четене/запис) и преставлява специални файлове, описващи параметри на ОС, процесите или машината.
/root/    Домашна директория на супер потребителя (root).
/sbin/    Системни програми и инструменти. Обикновено се използват само от администратора на системата.
/selinux/    Специална директория за SELinux.
/srv/    Специфични данни само за тази система.
/sys/    Виртуална файлова система, подобна на /proc/. /sys/ е по-нова реализация на /proc/.
/tmp/    Временни файлове на потребители и/или програми. Често не се запазват след рестартиране. Повечето ОС периодично изтриват остарелите файлове в /tmp/, за да не се запълни свободното пространство на диска.
/usr/    Програмни библиотеки и изпълними файлове на програмите използвани от потребителите.
/usr/bin/
Програми, които не са необходими в работно ниво 1.
/usr/include/
Стандартно място за програмни файлове с дефиниции на функции.
/usr/lib/
Програмни библиотеки за програмите в /usr/bin/ и /usr/sbin/.
/usr/sbin/
Системни програми, който не са толкова важни, програми за мрежови услуги и т.н.
/usr/share/
Платформено независими данни. Често това са документация, икони, файлове с текстови данни и т.н.
/usr/src/
Изходен код на програми.
/usr/local/
Според стандарта тук трябва да се съдържат данни, които са само за определената машина, докато /usr/ може да бъде монтирана по мрежата от много машини. На практика /usr/local/ и поддиректориите като bin/, lib/, share/ се използват за инсталиране на софтуер, който не е част от дистрибуцията, пр. инсталиране на програми от изходен код.
/var/    Променливи данни като жърнални файлове, ел. поща и т.н.
/var/lib/
Информация за състоянието на системата. Данните се променят от различни програми докато те работят, пр. обновява се информацията за инсталираните пакети.
/var/lock/
Заключващи файлове. Спират използването на определени ресурси, пр. повторно пускане на дадена програма.
/var/log/
Журнални файлове от работата на системата и различни програми.
/var/mail/
Пощенски кутии на потребителите на системата.
/var/run/
Информация за системата от последното рестартиране, пр. текущи потребители и работещи процеси.
/var/spool/
Информация за задачи чакащи изпълнение, пр. опашка от документи за принтера, необработена поща и т.н.
/var/spool/mail/
Остаряло местоположение на пощенските кутии на потребителите.
/var/tmp/
Временни файлове, които се запозват след рестартиране.

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

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

При създаването на файл в inode се записват слените данни:

Потребител и група собственици на файла
Вид на файла (обикновен, директория, т.н.)
Позволения за достъп до файла
Дата и час на създаване, последен достъп (четене) и последна модификация
Дата и час на промяната на информацията в inode
Брой връзки към файла
Големина на файла
Адрес, който определя физическото местоположение на диска
Името и директорията на файла не се записват в inode.

Директории и връзки към файлове

Директорията в Линукс представлява специален вид файл. Той съдържа списък от имена на файловете в директорията и номерата на inode за тези файлове. Името на текущата директория и нейният inode номер са записани в директорийния файл на предишното ниво на йерархията. Във всяка директория съществуват две специални директории:

. - представлява текущата директория, т.е. себе си
.. - представлява родителската директория, тази на по-горното ниво от йерархията

Друг вид специални файлове са връзките. Те биват два вида:

- Твърди връзки (hard links)
- Символични връзки (symbolic links), още наричани меки връзки (soft links)

Твърдата връзка представлява запис в директорийния файл, който съдържа име на файл и сочи към inode номера на файла към който сочи връзката. След създаването на твърда връзка се увеличава броя на връзките към файла, записан в inode (при символичните не се увеличава). Данните на диска не се изтриват преди да бъдат изтрити всички твърди връзки към файла. След създаване на твърда връзка неможе да се разбере кой е оригиналния файл (първичния), т.к. това понятие не съществува. И двата файла сочат към едни и същи данни на диска, т.е. и двата са оригинални. Данните на диска ще бъдат изтрити само когато са изтрити всички твърди връзки.
Задача: Каква е големината на твърдата връзка?
Помощ: Използвайте ls -l(-h), за големината, -i за номера на inode.

Символичните връзки са файлове, чието съдържание е име към друг файл. Името може да бъде абсолютно (спрямо кореновата директория) или относително (спрямо директорията, съдържаща връзката). Големината на символичната връзка е равна на броя символи, с които е описано името на файла към който сочи връзката. Символичната връзка е отделен файл. При изтриване на символичната връзка оригиналният файл не се изтрива. При изтриване на оригиналният файл, символичната връзка става невалидна, т.е. сочи към несъществуващ файл.

https://github.com/

Similar topics (1)

1665

Отговори: 12
Прегледи: 639

Powered by EzPortal