Просто быстрый вопрос, но почему так много файловых систем все еще конкурируют и используются сегодня? (ntfs, fat32, ext3 (ffs) и т. д.)
Кажется, что разработчики файловой системы могли бы согласовать лучшие аспекты каждого типа системы и реализовать «лучшую» файловую систему, не так ли? Просто мысль, поскольку эти файловые системы существуют уже некоторое время, и должно быть, по крайней мере, несколько очевидно, какие из них имеют хорошие качества по сравнению с другими, и мы могли бы просто объединить хорошее в каждой и создать окончательную систему, которая намного лучше
standards
file-systems
standardization
Темный тамплиер
источник
источник
Ответы:
Давайте на минутку подумаем об особенностях, используя приведенные вами примеры:
NTFS - собственность, принадлежащая Microsoft. Любой, кто не является Microsoft, не может использовать это, поэтому должен будет использовать / создать что-то другое. Теперь, если вы Microsoft, вы хотите использовать это поверх FAT из-за проблем следующего пункта.
fat32 - недостаточно современный. Максимальный размер файла составляет 4 ГБ. Поиск в каталоге: O (n). Таблица размещения представляет собой связанный список, а не что-то более эффективное, например, растровое изображение распределения (где действительно быстро можно найти непрерывное свободное пространство). Не поддерживает разрешения. Не поддерживает жесткие ссылки или символические ссылки. Не поддерживает ведение журнала.
ext3 - это расширение ext2 в основном для поддержки журналирования.
Итак, кажется, есть несколько причин:
В более ранней файловой системе чего-то не хватает. В случае с FAT этого не хватает: как с точки зрения (1) функций, так и (2) производительности. В случае с ext2 в нем не было зарегистрированных обновлений, поэтому восстановление после сбоя заняло больше времени.
Существующая файловая система, вероятно, подойдет, но она не ваша. (например, NTFS, если вы не Microsoft). В этом случае у вас нет особого выбора, кроме как придумать свой собственный.
источник
Краткий ответ: один размер подходит не всем.
Есть компромиссы. Например, если вы хотите записать в журнал FS, вы платите (эффективность, сложность и т. Д.), Но получаете что-то из этого. Некоторые не чувствуют необходимости в журнале FS и не хотят платить за это, некоторые делают. То же самое с другими «особенностями» ФС.
источник
Не может быть ни одного «лучшего» чего-либо, потому что существует множество мнений о том, что такое «лучший». Решение зависит от потребностей и ограничений пользователя. Проекты всегда основаны на их способности соответствовать ограничениям.
Базовый мобильный телефон должен хранить несколько сотен контактов, историю текстовых сообщений и несколько небольших приложений. Должна ли его файловая система поддерживать иерархическую структуру каталогов на многотерабайтных дисках в конфигурации RAID? Достаточно ли оперативной памяти на устройстве для запуска такой файловой системы? Нужна ли файловой системе сложные ACL? Вероятно, нет - для всех этих вопросов - так что достаточно простой, потягивающей ресурсы файловой системы.
Компании также будут разрабатывать различные продукты для поддержания конкурентного преимущества. Например, Apple рекламирует способность своей файловой системы HFS + отслеживать, какие файлы были недавно изменены, чтобы обеспечить быстрое резервное копирование. С другой стороны, драйверы для файловой системы дискеты (FAT) могут занимать всего несколько КБ памяти.
источник
Слишком многое зависит от того, что вы хотите оптимизировать.
Рассмотрим FAT на мгновение: его поддержка длинных имен файлов является хитрой (мягко говоря), а поиск по файлам в каталоге является линейным, поэтому он очень медленный, если каталог содержит много файлов. В то же время, он имеет минимальный минимум метаданных, поэтому необработанная скорость записи очень хорошая, и, поскольку она настолько проста, код для ее реализации может быть весьма небольшим.
Что-то вроде ext2 или ext3 добавляет множество функций и возможностей, которые просто отсутствуют в FAT. Поиск файлов также намного быстрее. В то же время скорость сырой записи, вероятно, немного ниже, а код для реализации файловой системы, несомненно, намного больше.
источник
Давайте предположим, что компромиссов не было, и разработчики файловых систем внедрили «лучшую» файловую систему, свободную от патентных забот и выпущенную как BSD / GPL с двойной лицензией, чтобы она была приемлемой как для MS, так и для Debian. Что заставляет вас думать, что другие файловые системы исчезнут в одночасье?
Я не думаю, что кто-то использовал FAT32 на новом жестком диске в течение 10 лет, но он все еще остается стандартом де-факто для форматирования USB-накопителей, SD-карт и т. Д. Производители камер и мобильных телефонов уже опробовали и протестировали прошивку для его использования. У любителей Arduino есть стабильные библиотеки для его использования. Им всем понадобятся большие стимулы, чтобы измениться.
И тогда у вас возникают проблемы обратной совместимости со старыми ОС (особенно с Windows, пользователи которой не захотят устанавливать новые драйверы файловой системы).
источник
Как это часто бывает в вычислениях, ответом является (а) из-за исторических обстоятельств и необходимости поддерживать обратную совместимость и (б) потому что некоторые методы лучше подходят для некоторых задач, чем другие.
На (а) вы должны помнить, что «винчестерский диск» - я достаточно взрослый, чтобы помнить, что их так называют (то, что остальной мир называет «жестким диском»), существует только около половины время электронных вычислений, и даже тогда оно не было доступно большинству пользователей даже в течение столь длительного времени по причинам стоимости. Файловая система FAT хорошо работала на гибких дисках, а также на оригинальных маленьких жестких дисках, поскольку она была достаточно эффективной и требовала минимальных накладных расходов. Как только он начал использоваться - и его использование широко распространилось, потому что его легко внедрить - производители не могли сказать своим пользователям, что их старые данные внезапно оказались недействительными.
Точно так же, для пользователей Linux, скажем, долгое время требовался стабильный драйвер NTFS, поэтому сохранение устройств в формате FAT означало, что их можно было читать и записывать в нескольких системах.
На (б) - подумайте о различиях между системой, которая, скажем, хранит миллиарды текстовых записей базы данных, и системой, которая хранит медиафайлы DVD-длины. Для базы данных каждая запись может быть очень маленькой - возможно, всего 30 или 40 байт, и, конечно, файловая система, которая выделяет целый «сегмент» (как вы хотите это определить) диска, вероятно, будет растрачивать пространство на диске. С DVD это не так - большие «сегменты» (в разумных пределах, очевидно), вероятно, будут очень эффективными в космическом плане.
Таким образом, разные файловые системы предназначены для разных целей.
источник
Еще один пример того, почему никогда не может быть идеальной файловой системы для всех: жесткие диски и твердотельные накопители имеют очень разные характеристики доступа для чтения / записи. Оптимизированная для SSD файловая система, вероятно, будет работать лучше всего, фрагментируя файлы как сумасшедшие, но с каждым фрагментом размер страницы самого SSD; это будет ужасно работать на жестком диске. Файловая система, оптимизированная для жесткого диска, пытается сохранить файлы как можно более нефрагментированными и даже помещает часто используемые файлы в «горячую» область на быстро вращающейся внешней части диска; эти характеристики совсем не помогут скорости чтения SSD и создают огромные трудности для их записи.
источник
Я думаю, что очень важный факт отсутствует. Большую часть времени программисты склонны считать, что их способ делать что-то превосходит все остальные, и поэтому они смотрят на дизайн файловой системы и находят проблемы и решения, которые кажутся более общими, элегантными, быстрыми, правильными .. И если это чувство достаточно сильное, они могут создать собственную файловую систему.
Это приводит к конкуренции, фрагментации, смущению, и я надеюсь, что в итоге получатся лучшие решения и больше возможностей выбрать подходящее решение для вас.
источник
Вот еще один конкретный пример того, почему вам нужна отдельная файловая система или расширение функциональности существующей ФС.
источник
В своем списке вы упоминаете старую файловую систему, потому что лучшая из них недоступна, но она быстра.
Есть и другие файловые системы. Я слышал, файловая система Google в основном для быстрого дублирования / резервирования, если один жесткий диск или сервер выходит из строя. Я помню, как слышал о другой файловой системе, созданной для множества небольших файлов и используемой в системе для большого количества запросов на небольшие файлы (миниатюры).
По сути, они имеют разные цели и могут быть приличными по сравнению с открытым исходным кодом.
источник
Я думаю, что ZFS (используется Solaris в системе Sun [сейчас Oracle]) - это решение для файловой системы.
К сожалению, Oracle закрыл OpenSolaris для первооткрывателя и протестировал его.
ZFS с открытым исходным кодом, некоторые Linux пытаются интегрировать его, ищите в Википедии дополнительную информацию.
источник