Благодаря тому, что современные Linux-дистрибутивы чрезвычайно упрощают процесс инсталляции системы, большинство из начинающих пользователей свободной ОС имеют весьма поверхностное представление о том, что творится у них на дисках. Это отнюдь не плохо - в конце концов, чем меньше технических знаний будет требоваться для установки и работы с Linux, тем большее количество поклонников она обретёт. Но иногда всё же полезно копнуть глубже и полюбопытствовать, к примеру, файловой системой. Какая стоит на вашей машине?
Поначалу, Linux позволяла использовать лишь одну файловую систему, доставшуюся ей в наследство от операционной системы Minix. Вскоре, столкнувшись с ограничениями Minix, была создана считающаяся классической Extended File System (чаще её именуют просто ExtFS). Вторая её версия, Ext2FS (или просто ext2), жива до настоящего момента и широко используется. Если вы ставили Linux, не меняя предлагавшиеся по умолчанию стандартные настройки, то, скорее всего, именно она установлена и у вас. Вместе с тем, Ext2FS уже давно не идеал: нестандартное завершение работы (неожиданным отключением питания, к примеру) способно привести к потере данных, а проверка диска на наличие ошибок (с помощью автоматически запускаемой утилиты fsck) при следующей загрузке ОС - занять часы в случае жёсткого диска на десятки гигабайт. Лучшим решением будет использование современной журналируемой файловой
системы, примером которой может являться третий потомок ExtFS - Ext3, малоизвестная файловая система от IBM под названием JFS, а также любимая система автора этой заметки, ReiserFS.
Идея, положенная в основу всех журналируемых файловых систем, проста и заключается в ведении специального системного журнала, в котором отмечаются все выполняемые с дисками операции. Запись, чтение, перемещение кусков данных и любые другие действия протоколируются в этом журнале в обязательном порядке. В случае непредвиденного отключения компьютера, при последующей загрузке операционной системы нет нужды сканировать диск на предмет отыскания ошибок: файловой системе достаточно свериться с журналом и вернуть структуру диска в безошибочное состояние. Происходит это очень быстро и, что важно, почти стопроцентно гарантирует отсутствие повреждений файлов.
Таким образом, журналируемая файловая система - наилучший выбор не только для сервера, но и для домашней машины. Какую разновидность выбрать? JFS можно отмести из-за сравнительной малоизвестности, Ext3, которую создавали второпях, добавляя функции журналирования в Ext2 и оставляя старые узкие места, также лучше оставить в покое. Остаётся ReiserFS - и это действительно хороший выбор. Основанная на сложных и слабопонятных непосвещённым алгоритмах сбалансированных ветвей, эта система обладает рядом уникальных свойств, понятных каждому: она производительна (нет тормозов при работе с диском), позволяет работать с гигантским количеством файлов (миллиарды) и каталогов, эффективно распределяет доступное дисковое пространство (так, для файла размером в 100 байт будет выделен блок размером именно в сотню
байт), давая выигрыш в ёмкости в 6% по сравнению с другими файловыми системами, позволяет создавать совершенно новые файловые структуры с помощью подключаемых плагинов. Наконец, у ReiserFS уникальная биография: проект был начат энтузиастами (само название системы произведено от имени одного из них, Ганса Рейзера - свежее интервью с которым, кстати, появилось вчера на Slashdot'e) и перерос сегодня в прибыльное предприятие (этому нисколько не мешает то, что код опубликован под лицензией GPL), поддерживаемое рядом известных компаний и организаций (в том числе государственных - так, работы над ReiserFS спонсируются Агентством перспективных исследований США DARPA). ReiserFS поддерживается всеми современными дистрибутивами, включая
ALT Linux, ASP Linux и Knoppix. А в конце июня ожидается выход 4-й её версии.