Unix File System

Поделись знанием:
Перейти к: навигация, поиск
UFS
Разработчик

CSRG

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

UNIX file system

Дата представления

(4.2BSD)

Структура
Содержимое папок

таблица

Ограничения
Максимальный размер файла

2^73 байт
(8 Збайт)

Максимальная длина имени файла

255 байт

Максимальный размер тома

2^73 байт
(8 Збайт)

Возможности
Поддерживается ОС

FreeBSD, OpenBSD, NetBSD, DragonFlyBSD, A/UX и другие

Unix File System (UFS)файловая система, созданная для операционных систем семейства BSD и используемая в переработанном и дополненном виде на данный момент как основная в операционных системах-потомках (FreeBSD, OpenBSD, NetBSD).

Поддержка данной файловой системы имеется также в ядре Linux и операционной системе Solaris.





Геометрия

Физически UFS состоит из следующих частей:

  • несколько блоков в начале раздела отводится под загрузочную область (которая должна инициализироваться отдельно от файловой системы)
  • суперблок, включающий магическое число, инициализирующее файловую систему, и некоторые другие важные числа, описывающие геометрию и настройку некоторых параметров файловой системы
  • описание групп цилиндров. Каждая группа включает следующие компоненты:
    • Резервную копию суперблока
    • Заголовок группы цилиндров, статистические данные и т. д., информацию аналогичную содержащейся в суперблоке, но для конкретной группы
    • Некоторое количество индексных дескрипторов, каждый из которых содержит атрибуты файлов
    • Некоторое количество блоков данных

Индексные дескрипторы нумеруются последовательно. Несколько первых индексных дескрипторов сохранены по историческим причинам, далее следуют индексные дескрипторы корневого каталога.

Каталог файлов содержит только список файлов в директории и индексный дескриптор, связанный с каждым файлом. Все метаданные файла хранятся в индексном дескрипторе.

История и развитие

Ранние версии Unix использовали файловую систему, называвшуюся просто «FS». FS включала в себя только загрузочные блоки, суперблок, множество индексных дескрипторов и блоки данных. Это хорошо работало на дисках небольшого размера, которые производились во времена ранних Unix. Но технологии развивались, диски становились больше, индексных дескрипторов и блоков данных становилось слишком много. Тогда FS был оптимизирован и перерос в FFS (Fast File System), в котором появились группы цилиндров, каждая из которых обладала собственным индексным дескриптором и позволяла избегать получающейся «свалки».

Цель FFS заключается в том, чтобы попытаться локализовать связь блоков данных и метаданных в одной и той же группе цилиндров, а в идеале, всё содержимое каталога (как данных, так и метаданных для всех файлов), в той же группе, таким образом, уменьшив фрагментацию вызванных рассеянием содержимого каталогов диска.

Некоторые из этих характеристик в суперблоке включали количество дорожек и секторов, скорость вращения диска, скорость головки. В полностью оптимизированной системе, головка может быть перемещена между соседними дорожками для чтения разбросанных секторов из чередующихся слоях дорожек.

С увеличением размеров дисков уровень оптимизации стал не столь эффективен (в частности, с дисками, которые используют линейные сектора нумерации и переменных секторов на дорожке). С увеличением дисков и файлов, чтение фрагментированых кусков стало сложнее. Чтобы бороться с этим, BSD первоначально увеличил размер блока файловой системы от одного сектора до 1 КБ в 4.0BSD, и, в FFS до 8 КБ. Число блоков, представимых с фиксированной (битной) шириной блока, увеличили (разрешение для больших дисков). С увеличением размера блока, диски с большим количеством маленьких файлов будут занимать много места. Для решения проблемы неэффективного использования свободного пространства в слой FFS файловой системы UFS2 был добавлен уровень фрагментов, представляющих собой способ адресации отдельных частей блока данных — фрагментов.

В связи с постоянно увеличивающимися объёмами дисковых накопителей и переводу адресации дискового пространства на Advanced Format во FreeBSD размер блока файловой системы, принятый по умолчанию, увеличен с 16 КБ до 32 КБ, а размер фрагмента — с 2 КБ до 4 КБ. Эта оптимизация повысила производительность дисковых операций ввода-вывода на дисковых накопителях с ёмкостью порядка 1 ТБ с размером сектора 4 КБ. Максимально возможный размер блока на файловой системе UFS2/FFS составляет 64 КБ.

Применение

Пользователи некоторых коммерческих Unix систем, таких как Solaris, HP-UX и Tru64 UNIX, приняли UFS. Большинство из них перевели системы на UFS, добавили проприетарные дополнения, которые позволяли не распознать UFS пользователям других версий UNIX. Удивительно, но многие из них продолжают использовать оригинальный размер блока данных и ширину блока, как и в оригинальной UFS, так что некоторая степень совместимости на разных платформах остается. Совместимость между реализациями неполная, в лучшем случае, и должна быть исследована перед использованием на нескольких платформах.

В Solaris 7, Sun Microsystems включили UFS Logging, которое принесло журналируемость файловой системы в UFS. Solaris UFS так же включало дополнения для файлов и дисков больших размеров. Начиная с Solaris 10, пользователю предоставляется выбрать при установке UFS или ZFS (усовершенствованную файловую систему от Sun). В OpenSolaris UFS полностью заменена на ZFS.

После 4.4BSD и BSD Unix системы разделились. Появились такие системы, как FreeBSD, NetBSD, OpenBSD и DragonFlyBSD. Возникают UFS1 и UFS2, которые представляют собой два слоя — верхний слой, который обеспечивает структуру каталогов и поддерживает метаданные (разрешения, права доступа и т. д.) в индексном дескрипторе структуры, и нижних слоев, которые позволяет представлять контейнерные данные как индексные дескрипторы. Это было сделано для поддержки как традиционной FFS, так и LFS. Верхний слой называется «UFS», и нижние слои называются «FFS» и «LFS».

Кирк Маккьюзик построил FreeBSD на FFS и UFS, чтобы поддержать новый вариант, называемый UFS2, который добавляет 64-битный блок указателей (позволяя увеличить объем до 8 Зеттабайт), с переменным размером блока (по аналогии с EFS), расширенные поля флага, расширенный атрибут поддержки и POSIX1.e ACLм. UFS2 стал по умолчанию зваться UFS, начиная с FreeBSD 5.0. FreeBSD также внес некоторые дополнения (Soft Updates) и возможность создать файловую систему из UFS1 и UFS2. Soft updates были перенесены на NetBSD, но будут удалены из NetBSD 6.0 в пользу менее сложной файловой системы журнального механизма (WAPBL), которая была добавлена для FFS в NetBSD 5.0. OpenBSD поддержала Soft updates в версии 2.9[1] и UFS2, начиная с версии 4.2[2]. Начиная с FreeBSD 7.0, UFS также поддерживает журналируемую файловую систему, используя gjournal GEOM провайдера. В FreeBSD 9.0 добавлена поддержка журналирования поверх softupdates(SU+J)[3], которая в значительной степени снижает потребность в фоновых проверках файловой системы, и использует по умолчанию ACL в NFS стиле.

Linux поддерживает UFS на уровне чтения, но не имеет полной поддержки для записи UFS. Родной Linux ext2 создан по подобию UFS (в некоторых 4.4BSD системах UFS слой может использовать ext2 слой как контейнер, так же, как он может использовать FFS и LFS).

NeXTStep, которая возникла из BSD, также использует версию UFS. В созданной в Apple Mac OS X, UFS доступна как альтернатива HFS+. Однако, как и в Mac OS X v10.5, нельзя установить Mac OS X «Leopard» на UFS-форматированный раздел. Кроме того, нельзя обновить старые версии Mac OS X, установленые на UFS, на Leopard; модернизация требует переформатирования раздела.

Игровая консоль PlayStation 3 использует UFS2 на своём HDD. В PlayStation 2 используется UFS.[4]

Для доступа к файловой системе UFS из семейства операционных систем Windows можно использовать программу R.saver

Напишите отзыв о статье "Unix File System"

Примечания

  1. [www.openbsd.org/29.html OpenBSD 2.9 Release]
  2. [www.openbsd.org/42.html OpenBSD 4.2 Release]
  3. [www.opennet.ru/opennews/art.shtml?num=26376 Патчи для поддержки журналирования в UFS добавлены во FreeBSD-CURRENT]
  4. [www.ps3hax.net/2010/10/netkas-starts-playing-with-jb-ps3s-finds-hdd0-is-ufs/ Netkas starts playing with JB PS3s]

Ссылки

  • Jeroen C. van Gelderen. [lists.freebsd.org/pipermail/freebsd-current/2003-April/001444.html «Little UFS2 FAQ»] (англ.). freebsd.org (23 апреля 2003 г.). Проверено 29 ноября 2010. [www.webcitation.org/65R4Sqhvm Архивировано из первоисточника 14 февраля 2012].
  • [www.opennet.ru/base/sys/ufs2_faq.txt.html Мини-FAQ по UFS и UFS2]  (рус.)
  • Martin Hinner. [www.tldp.org/HOWTO/Filesystems-HOWTO.html «Filesystems-HOWTO»] (англ.). The Linux Documentation Project. Проверено 29 ноября 2010. [www.webcitation.org/65R4TH3Mk Архивировано из первоисточника 14 февраля 2012].
  • [ufs2tools.sourceforge.net/ UFS2 Tools - UFS for Windows] (англ.). — ufs2tools содержит утилиты для чтения файловых систем UFS1 и UFS2 из ОС Windows 2000/XP. Проверено 29 ноября 2010. [www.webcitation.org/65R4TjXj1 Архивировано из первоисточника 14 февраля 2012].
  • [www.freebsd.org/projects/bigdisk/index.html Large data storage in FreeBSD] (англ.). The FreeBSD Project. Проверено 29 ноября 2010. [www.webcitation.org/65R4UBddw Архивировано из первоисточника 14 февраля 2012].
  • [www.opennet.ru/tips/info/1053.shtml Инструкция по включению журналирования UFS2 в FreeBSD]

Отрывок, характеризующий Unix File System

– Вам своя фанаберия дорога, извиниться не хочется, – продолжал штаб ротмистр, – а нам, старикам, как мы выросли, да и умереть, Бог даст, приведется в полку, так нам честь полка дорога, и Богданыч это знает. Ох, как дорога, батюшка! А это нехорошо, нехорошо! Там обижайтесь или нет, а я всегда правду матку скажу. Нехорошо!
И штаб ротмистр встал и отвернулся от Ростова.
– Пг'авда, чог'т возьми! – закричал, вскакивая, Денисов. – Ну, Г'остов! Ну!
Ростов, краснея и бледнея, смотрел то на одного, то на другого офицера.
– Нет, господа, нет… вы не думайте… я очень понимаю, вы напрасно обо мне думаете так… я… для меня… я за честь полка.да что? это на деле я покажу, и для меня честь знамени…ну, всё равно, правда, я виноват!.. – Слезы стояли у него в глазах. – Я виноват, кругом виноват!… Ну, что вам еще?…
– Вот это так, граф, – поворачиваясь, крикнул штаб ротмистр, ударяя его большою рукою по плечу.
– Я тебе говог'ю, – закричал Денисов, – он малый славный.
– Так то лучше, граф, – повторил штаб ротмистр, как будто за его признание начиная величать его титулом. – Подите и извинитесь, ваше сиятельство, да с.
– Господа, всё сделаю, никто от меня слова не услышит, – умоляющим голосом проговорил Ростов, – но извиняться не могу, ей Богу, не могу, как хотите! Как я буду извиняться, точно маленький, прощенья просить?
Денисов засмеялся.
– Вам же хуже. Богданыч злопамятен, поплатитесь за упрямство, – сказал Кирстен.
– Ей Богу, не упрямство! Я не могу вам описать, какое чувство, не могу…
– Ну, ваша воля, – сказал штаб ротмистр. – Что ж, мерзавец то этот куда делся? – спросил он у Денисова.
– Сказался больным, завтг'а велено пг'иказом исключить, – проговорил Денисов.
– Это болезнь, иначе нельзя объяснить, – сказал штаб ротмистр.
– Уж там болезнь не болезнь, а не попадайся он мне на глаза – убью! – кровожадно прокричал Денисов.
В комнату вошел Жерков.
– Ты как? – обратились вдруг офицеры к вошедшему.
– Поход, господа. Мак в плен сдался и с армией, совсем.
– Врешь!
– Сам видел.
– Как? Мака живого видел? с руками, с ногами?
– Поход! Поход! Дать ему бутылку за такую новость. Ты как же сюда попал?
– Опять в полк выслали, за чорта, за Мака. Австрийской генерал пожаловался. Я его поздравил с приездом Мака…Ты что, Ростов, точно из бани?
– Тут, брат, у нас, такая каша второй день.
Вошел полковой адъютант и подтвердил известие, привезенное Жерковым. На завтра велено было выступать.
– Поход, господа!
– Ну, и слава Богу, засиделись.


Кутузов отступил к Вене, уничтожая за собой мосты на реках Инне (в Браунау) и Трауне (в Линце). 23 го октября .русские войска переходили реку Энс. Русские обозы, артиллерия и колонны войск в середине дня тянулись через город Энс, по сю и по ту сторону моста.
День был теплый, осенний и дождливый. Пространная перспектива, раскрывавшаяся с возвышения, где стояли русские батареи, защищавшие мост, то вдруг затягивалась кисейным занавесом косого дождя, то вдруг расширялась, и при свете солнца далеко и ясно становились видны предметы, точно покрытые лаком. Виднелся городок под ногами с своими белыми домами и красными крышами, собором и мостом, по обеим сторонам которого, толпясь, лилися массы русских войск. Виднелись на повороте Дуная суда, и остров, и замок с парком, окруженный водами впадения Энса в Дунай, виднелся левый скалистый и покрытый сосновым лесом берег Дуная с таинственною далью зеленых вершин и голубеющими ущельями. Виднелись башни монастыря, выдававшегося из за соснового, казавшегося нетронутым, дикого леса; далеко впереди на горе, по ту сторону Энса, виднелись разъезды неприятеля.
Между орудиями, на высоте, стояли спереди начальник ариергарда генерал с свитским офицером, рассматривая в трубу местность. Несколько позади сидел на хоботе орудия Несвицкий, посланный от главнокомандующего к ариергарду.
Казак, сопутствовавший Несвицкому, подал сумочку и фляжку, и Несвицкий угощал офицеров пирожками и настоящим доппелькюмелем. Офицеры радостно окружали его, кто на коленах, кто сидя по турецки на мокрой траве.
– Да, не дурак был этот австрийский князь, что тут замок выстроил. Славное место. Что же вы не едите, господа? – говорил Несвицкий.
– Покорно благодарю, князь, – отвечал один из офицеров, с удовольствием разговаривая с таким важным штабным чиновником. – Прекрасное место. Мы мимо самого парка проходили, двух оленей видели, и дом какой чудесный!
– Посмотрите, князь, – сказал другой, которому очень хотелось взять еще пирожок, но совестно было, и который поэтому притворялся, что он оглядывает местность, – посмотрите ка, уж забрались туда наши пехотные. Вон там, на лужку, за деревней, трое тащут что то. .Они проберут этот дворец, – сказал он с видимым одобрением.
– И то, и то, – сказал Несвицкий. – Нет, а чего бы я желал, – прибавил он, прожевывая пирожок в своем красивом влажном рте, – так это вон туда забраться.
Он указывал на монастырь с башнями, видневшийся на горе. Он улыбнулся, глаза его сузились и засветились.
– А ведь хорошо бы, господа!
Офицеры засмеялись.
– Хоть бы попугать этих монашенок. Итальянки, говорят, есть молоденькие. Право, пять лет жизни отдал бы!
– Им ведь и скучно, – смеясь, сказал офицер, который был посмелее.
Между тем свитский офицер, стоявший впереди, указывал что то генералу; генерал смотрел в зрительную трубку.
– Ну, так и есть, так и есть, – сердито сказал генерал, опуская трубку от глаз и пожимая плечами, – так и есть, станут бить по переправе. И что они там мешкают?
На той стороне простым глазом виден был неприятель и его батарея, из которой показался молочно белый дымок. Вслед за дымком раздался дальний выстрел, и видно было, как наши войска заспешили на переправе.
Несвицкий, отдуваясь, поднялся и, улыбаясь, подошел к генералу.
– Не угодно ли закусить вашему превосходительству? – сказал он.
– Нехорошо дело, – сказал генерал, не отвечая ему, – замешкались наши.
– Не съездить ли, ваше превосходительство? – сказал Несвицкий.
– Да, съездите, пожалуйста, – сказал генерал, повторяя то, что уже раз подробно было приказано, – и скажите гусарам, чтобы они последние перешли и зажгли мост, как я приказывал, да чтобы горючие материалы на мосту еще осмотреть.
– Очень хорошо, – отвечал Несвицкий.
Он кликнул казака с лошадью, велел убрать сумочку и фляжку и легко перекинул свое тяжелое тело на седло.
– Право, заеду к монашенкам, – сказал он офицерам, с улыбкою глядевшим на него, и поехал по вьющейся тропинке под гору.
– Нут ка, куда донесет, капитан, хватите ка! – сказал генерал, обращаясь к артиллеристу. – Позабавьтесь от скуки.
– Прислуга к орудиям! – скомандовал офицер.
И через минуту весело выбежали от костров артиллеристы и зарядили.
– Первое! – послышалась команда.
Бойко отскочил 1 й номер. Металлически, оглушая, зазвенело орудие, и через головы всех наших под горой, свистя, пролетела граната и, далеко не долетев до неприятеля, дымком показала место своего падения и лопнула.
Лица солдат и офицеров повеселели при этом звуке; все поднялись и занялись наблюдениями над видными, как на ладони, движениями внизу наших войск и впереди – движениями приближавшегося неприятеля. Солнце в ту же минуту совсем вышло из за туч, и этот красивый звук одинокого выстрела и блеск яркого солнца слились в одно бодрое и веселое впечатление.


Над мостом уже пролетели два неприятельские ядра, и на мосту была давка. В средине моста, слезши с лошади, прижатый своим толстым телом к перилам, стоял князь Несвицкий.
Он, смеючись, оглядывался назад на своего казака, который с двумя лошадьми в поводу стоял несколько шагов позади его.
Только что князь Несвицкий хотел двинуться вперед, как опять солдаты и повозки напирали на него и опять прижимали его к перилам, и ему ничего не оставалось, как улыбаться.
– Экой ты, братец, мой! – говорил казак фурштатскому солдату с повозкой, напиравшему на толпившуюся v самых колес и лошадей пехоту, – экой ты! Нет, чтобы подождать: видишь, генералу проехать.
Но фурштат, не обращая внимания на наименование генерала, кричал на солдат, запружавших ему дорогу: – Эй! землячки! держись влево, постой! – Но землячки, теснясь плечо с плечом, цепляясь штыками и не прерываясь, двигались по мосту одною сплошною массой. Поглядев за перила вниз, князь Несвицкий видел быстрые, шумные, невысокие волны Энса, которые, сливаясь, рябея и загибаясь около свай моста, перегоняли одна другую. Поглядев на мост, он видел столь же однообразные живые волны солдат, кутасы, кивера с чехлами, ранцы, штыки, длинные ружья и из под киверов лица с широкими скулами, ввалившимися щеками и беззаботно усталыми выражениями и движущиеся ноги по натасканной на доски моста липкой грязи. Иногда между однообразными волнами солдат, как взбрызг белой пены в волнах Энса, протискивался между солдатами офицер в плаще, с своею отличною от солдат физиономией; иногда, как щепка, вьющаяся по реке, уносился по мосту волнами пехоты пеший гусар, денщик или житель; иногда, как бревно, плывущее по реке, окруженная со всех сторон, проплывала по мосту ротная или офицерская, наложенная доверху и прикрытая кожами, повозка.