ext4, або Четверта версія розширеної файлової системи, — журнальована файлова система, котра використовується в ОС з ядром Linux. Заснована на файловій системі ext3, котра є файловою системою за замовчуванням в багатьох дистрибутивах.
Ext4 | |
---|---|
Розробник | d, d і d |
Структура | |
Структура директорій | Зв'язаний список, B-дерево |
Структура файлів | Extents/bitmap |
Збійні сектори | Table |
Обмеження | |
Максимальний розмір файлу | 16 тебібайт (розмір кластера 4 кібібайта) |
Максимум файлів | 4 мільярда (задається під-час створення ФС) |
Максимальна довжина імені файлу | 255 байт |
Максимальний розмір тому | 1 ексбібайт (обмеження до 16 тебибайт через обмежений ) |
Допустимі символи в назвах | Всі символи окрім NULL і '/' |
Можливості | |
Властивості | modification (mtime), attribute modification (ctime), access (atime), delete (dtime), create (crtime) |
Діапазон дат | 14 грудня 1901 - 10 травня 2446 |
Точність збереження дати | Наносекунда |
Потоки метаданих | Ні |
Атрибути | extents, noextents, mballoc, nomballoc, delalloc, nodelalloc, data=journal, data=ordered, data=writeback, commit=nrsec, , oldalloc, user_xattr, nouser_xattr, acl, noacl, bsddf, minixdf, bh, nobh, journal_dev |
Права доступу | POSIX |
Фонова компресія | Ні |
Фонове кодування | Ні |
Підтримується ОС | Linux, Windows (тільки читання) |
Вперше експериментальна підтримка ext4 була випущена у вигляді патчу для Linux версій 2.6.19-rc1-mm1 та 2.6.19-rc1-git8 10 жовтня 2006 року програмістом (англ. Andrew Morton).
11 жовтня 2008 року код був доданий до стабільної версії репозиторію ядра Linux. Версія ядра 2.6.28 вже мала підтримку ext4, та була випущена 25 грудня 2008.
Властивості
Розміри та обмеження
- розмір файлу до 16 ТБ;
- розмір ФС до 1024 ПБ;
- кількість файлів 4 мільярди;
- необмежена кількість підкаталогів;
- дозволені всі знаки, окрім NUL та /;
- межі дат 14 грудня 1901 — 10 травня 2446;
- мінімальна зміна часу — наносекунда.
Екстент — технологія яка дозволяє більш оптимально виділяти простір для великих файлів, реалізується як ієрархічна структура блоків, в якому inode посилаються на блоки, а ті своєю чергою на безперервну область суміжних блоків для зберігання даних файлу. Використання такого механізму покращило швидкість виділення простору для великих файлів, а також їх видалення.
В загальному сенсі ext4 зворотно сумісна з ext3 та ext2. Деякий функціонал несумісний з попередніми версіями, наприклад опції: ^extent
, ^flex_bg
, ^huge_file
, ^uninit_bg
, ^dir_nlink
, та ^extra_isize
.
Покращені часові позначки
У зв'язку з тим що linux все частіше використовується в інформаційних системах для широкого спектра застосунків, в тому числі там де потрібна висока гранулярність часу, більша ніж 1 секунда, в часових позначках з'явилась підтримка наносекунд. Для реалізації точності структура часу була збільшена на 32 біти, 30 з яких використовується під наносекунди, а ще 2 біти під секунди, таким чином секунди мають 36 біт, і проблема їх переповнення настане у 2446 році.
Підтримка квот для проєктів
Підтримку квот на проєкти було додано до ядра Linux 4.4 8 січня 2016 року. Ця функція дозволяє призначати обмеження квоти на диск для певного ідентифікатора проєкту. Ідентифікатор проєкту файлу – це 32-бітне число, яке зберігається в кожному файлі та успадковується всіма файлами та підкаталогами, створеними під батьківським каталогом із призначеним ідентифікатором проєкту. Це дозволяє призначати обмеження квоти для певного дерева підкаталогів незалежно від дозволів доступу до файлів, таких як квоти користувачів і груп, що залежать від UID і GID. Хоча це схоже на квоту каталогу, головна відмінність полягає в тому, що один і той самий ідентифікатор проєкту можна призначити кільком кореневим каталогам, і він не є строго ієрархічним.
Прозоре шифрування
Додано в ядро 4.1 в червні 2015 року.
Лінива ініціалізація
Цей механізм дозволяє чистити таблицю inode в фоні, пришвидшує ініціалізацію коли створюється файлова система. Доступний з 2010 з версії ядра Linux 2.6.37.
Бар'єри на запис
ext4 за замовчуванням вмикає бар'єри запису. Це гарантує, що метадані файлової системи будуть записані на диск у правильному порядку, навіть при раптовому відключенні живлення. Це може вплинути на продуктивність, особливо для програм, які часто використовують fsync
або створюють і видаляють багато маленьких файлів.
Для дисків що мають для кешу запису резервне живлення відключення бар'єрів (опція 'barrier=0') може покращити продуктивність, але в загальному випадку опція увімкнена, що підвищує надійність.
Підтримка ext4 включена до релізу Fedora 9, Ubuntu 9.04 (Jaunty Jackalope), openSUSE 11.2.
Див. також
Примітки
- . Архів оригіналу за 18 липня 2019. Процитовано 30 жовтня 2014.
- ext4: Fix handling of extended tv_sec. Linux-stable kernel tree. Процитовано 14 лютого 2017.
- Офіційна заява Ендрю Мортона про включення підтримки ext4[недоступне посилання з червня 2019](англ.)
- Anatomy of ext4. IMB Developer. Процитовано 27 травня 2024.
- Mount of ext4 (created without extents) as ext3 fails on RH6.2. www.linuxquestions.org. оригіналу за 5 August 2023. Процитовано 8 December 2023.
- Li, Xi (12 January 2016). ext4: add project quota support (Список розсилки). оригіналу за 20 September 2023. Процитовано 8 December 2023.
- Ts'o, Theodore (8 April 2015). Ext4 encryption. оригіналу за 12 October 2023. Процитовано 8 December 2023.
- Ext4 Filesystem. Thomas-Krenn-Wiki. оригіналу за 14 February 2022. Процитовано 8 December 2023.
- kernel/git/torvalds/linux.git - Linux kernel source tree. git.kernel.org.
- Ext4 -. ArchWiki.
Посилання
- Обговорення ext4 (англ.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
ext4 abo Chetverta versiya rozshirenoyi fajlovoyi sistemi zhurnalovana fajlova sistema kotra vikoristovuyetsya v OS z yadrom Linux Zasnovana na fajlovij sistemi ext3 kotra ye fajlovoyu sistemoyu za zamovchuvannyam v bagatoh distributivah Ext4Rozrobnikd d i dStrukturaStruktura direktorijZv yazanij spisok B derevoStruktura fajlivExtents bitmapZbijni sektoriTableObmezhennyaMaksimalnij rozmir fajlu16 tebibajt rozmir klastera 4 kibibajta Maksimum fajliv4 milyarda zadayetsya pid chas stvorennya FS Maksimalna dovzhina imeni fajlu255 bajtMaksimalnij rozmir tomu1 eksbibajt obmezhennya do 16 tebibajt cherez obmezhenij Dopustimi simvoli v nazvahVsi simvoli okrim NULL i MozhlivostiVlastivostimodification mtime attribute modification ctime access atime delete dtime create crtime Diapazon dat14 grudnya 1901 10 travnya 2446Tochnist zberezhennya datiNanosekundaPotoki metadanihNiAtributiextents noextents mballoc nomballoc delalloc nodelalloc data journal data ordered data writeback commit nrsec oldalloc user xattr nouser xattr acl noacl bsddf minixdf bh nobh journal devPrava dostupuPOSIXFonova kompresiyaNiFonove koduvannyaNiPidtrimuyetsya OSLinux Windows tilki chitannya Vpershe eksperimentalna pidtrimka ext4 bula vipushena u viglyadi patchu dlya Linux versij 2 6 19 rc1 mm1 ta 2 6 19 rc1 git8 10 zhovtnya 2006 roku programistom angl Andrew Morton 11 zhovtnya 2008 roku kod buv dodanij do stabilnoyi versiyi repozitoriyu yadra Linux Versiya yadra 2 6 28 vzhe mala pidtrimku ext4 ta bula vipushena 25 grudnya 2008 VlastivostiRozmiri ta obmezhennya rozmir fajlu do 16 TB rozmir FS do 1024 PB kilkist fajliv 4 milyardi neobmezhena kilkist pidkatalogiv dozvoleni vsi znaki okrim NUL ta mezhi dat 14 grudnya 1901 10 travnya 2446 minimalna zmina chasu nanosekunda Ekstenti Ekstent tehnologiya yaka dozvolyaye bilsh optimalno vidilyati prostir dlya velikih fajliv realizuyetsya yak iyerarhichna struktura blokiv v yakomu inode posilayutsya na bloki a ti svoyeyu chergoyu na bezperervnu oblast sumizhnih blokiv dlya zberigannya danih fajlu Vikoristannya takogo mehanizmu pokrashilo shvidkist vidilennya prostoru dlya velikih fajliv a takozh yih vidalennya Zvorotna sumisnist V zagalnomu sensi ext4 zvorotno sumisna z ext3 ta ext2 Deyakij funkcional nesumisnij z poperednimi versiyami napriklad opciyi extent flex bg huge file uninit bg dir nlink ta extra isize Pokrasheni chasovi poznachki U zv yazku z tim sho linux vse chastishe vikoristovuyetsya v informacijnih sistemah dlya shirokogo spektra zastosunkiv v tomu chisli tam de potribna visoka granulyarnist chasu bilsha nizh 1 sekunda v chasovih poznachkah z yavilas pidtrimka nanosekund Dlya realizaciyi tochnosti struktura chasu bula zbilshena na 32 biti 30 z yakih vikoristovuyetsya pid nanosekundi a she 2 biti pid sekundi takim chinom sekundi mayut 36 bit i problema yih perepovnennya nastane u 2446 roci Pidtrimka kvot dlya proyektiv Pidtrimku kvot na proyekti bulo dodano do yadra Linux 4 4 8 sichnya 2016 roku Cya funkciya dozvolyaye priznachati obmezhennya kvoti na disk dlya pevnogo identifikatora proyektu Identifikator proyektu fajlu ce 32 bitne chislo yake zberigayetsya v kozhnomu fajli ta uspadkovuyetsya vsima fajlami ta pidkatalogami stvorenimi pid batkivskim katalogom iz priznachenim identifikatorom proyektu Ce dozvolyaye priznachati obmezhennya kvoti dlya pevnogo dereva pidkatalogiv nezalezhno vid dozvoliv dostupu do fajliv takih yak kvoti koristuvachiv i grup sho zalezhat vid UID i GID Hocha ce shozhe na kvotu katalogu golovna vidminnist polyagaye v tomu sho odin i toj samij identifikator proyektu mozhna priznachiti kilkom korenevim katalogam i vin ne ye strogo iyerarhichnim Prozore shifruvannya Dodano v yadro 4 1 v chervni 2015 roku Liniva inicializaciya Cej mehanizm dozvolyaye chistiti tablicyu inode v foni prishvidshuye inicializaciyu koli stvoryuyetsya fajlova sistema Dostupnij z 2010 z versiyi yadra Linux 2 6 37 Bar yeri na zapis ext4 za zamovchuvannyam vmikaye bar yeri zapisu Ce garantuye sho metadani fajlovoyi sistemi budut zapisani na disk u pravilnomu poryadku navit pri raptovomu vidklyuchenni zhivlennya Ce mozhe vplinuti na produktivnist osoblivo dlya program yaki chasto vikoristovuyut fsync abo stvoryuyut i vidalyayut bagato malenkih fajliv Dlya diskiv sho mayut dlya keshu zapisu rezervne zhivlennya vidklyuchennya bar yeriv opciya barrier 0 mozhe pokrashiti produktivnist ale v zagalnomu vipadku opciya uvimknena sho pidvishuye nadijnist Pidtrimka ext4 vklyuchena do relizu Fedora 9 Ubuntu 9 04 Jaunty Jackalope openSUSE 11 2 Div takozhExt3 ZFS BtrfsPrimitki Arhiv originalu za 18 lipnya 2019 Procitovano 30 zhovtnya 2014 ext4 Fix handling of extended tv sec Linux stable kernel tree Procitovano 14 lyutogo 2017 Oficijna zayava Endryu Mortona pro vklyuchennya pidtrimki ext4 nedostupne posilannya z chervnya 2019 angl Anatomy of ext4 IMB Developer Procitovano 27 travnya 2024 Mount of ext4 created without extents as ext3 fails on RH6 2 www linuxquestions org originalu za 5 August 2023 Procitovano 8 December 2023 Li Xi 12 January 2016 ext4 add project quota support Spisok rozsilki originalu za 20 September 2023 Procitovano 8 December 2023 Ts o Theodore 8 April 2015 Ext4 encryption originalu za 12 October 2023 Procitovano 8 December 2023 Ext4 Filesystem Thomas Krenn Wiki originalu za 14 February 2022 Procitovano 8 December 2023 kernel git torvalds linux git Linux kernel source tree git kernel org Ext4 ArchWiki PosilannyaObgovorennya ext4 angl