Если вкратце, то файловая система - всего лишь последовательность секторов, определяющая порядок организации хранения файлов. Начнём с того, что файловая система находится на разделе (partition), который в терминах Microsoft почему-то называется "логическим диском". Раздел находится на диске. А как размечается диск?
Диск тоже - всего лишь последовательность секторов. А организация разделов прописывается в заголовке и зависит от типа разбиения диска. Сейчас существует два вида разбиения диска: старый MBR, позволяющий загрузку в стандартном режиме BIOS (Legacy) и новый GPT, требующий поддержки EFI (UEFI). Сейчас можно использовать оба, однако GPT требуется только для жёстких дисков объёмом более двух терабайт.
Надо отметить, что MBR позволяет создать не более четырёх первичных (primary) разделов, один из которых может быть расширенным (extended). В расширенном разделе могут располагаться до четырёх логических (logical) разделов - впрочем, один из логических разделов тоже может быть расширенным... ну и так далее. Нюанс в том, что Windows умела загружаться только с первичных разделов.
В GPT нет таких ограничений, там все разделы располагаются линейно.
Но прежде чем разбивать диски, следует немножко изучить вопрос, как последовательность секторов определяется в BIOS. В старых системах было три режима работы жёсткого диска: Normal (CHS), LBA, Large.
Сейчас эти проблемы отпали, появились другие: Windows XP загружается, если установлен режим жёсткого диска IDE, а Windows 7 загружается, если установлен режим жёсткого диска AHCI - а если надо настроить для этих двух систем мультизагрузку? На самом деле, Windows 7 умеет загружаться в режиме IDE (хотя и не на всех системах), а Windows XP умеет загружаться в режиме AHCI (просто при её установке надо или подсунуть ей драйвер, или прошить его в установочный дистрибутив заранее). Впрочем, эту проблему тоже можно считать решённой.
Но мало иметь нужный раздел - на нём нужно ещё создать файловую систему определённого формата. В UNIX это делается командой newfs (new file system), в Linux командой mkfs (make file system), а в Windows процесс создания файловой системы называется форматированием.
Для современных версий Windows формат файловой системы NTFS, кроме того она исторически понимает формат FAT32 (основной для Windows 98) и FAT16 (основной для Windows 95 и Windows NT 4.0). Кроме того, дискеты 3.5 дюйма обычно имели файловую систему FAT12. Сейчас все версии FAT ещё актуальны, но обычно для сторонних накопителей (например, флеш-накопителей). Дело в том, что эти файловые системы не поддерживают некоторых функций безопасности, в частности прав пользователя.
На самом деле NTFS - дальнейшее развитие файловой системы HPFS, которая традиционно использовалась в операционной системе IBM OS/2 Warp. У них даже одинаковый идентификатор, из-за чего при настройке мультизагрузки могут быть проблемы.
Для FreeBSD - файловая система UFS2 и сейчас активно продвигается ZFS
Для Linux используются файловые системы ext2/ext3/ext4/reiserfs
Кроме того Linux использует отдельный идентификатор для раздела подкачки (linux swap). В Windows обычно используется файл подкачки (виртуальная память).
Сделаем ещё один шаг и вспомним про LVM. Вкратце: раздел помечается как элемент тома LVM Несколько таких элементов объединяются в единый том, а затем... их можно разбить на разделы. Или использовать как один раздел. Для тех, кто не понял, зачем ещё один уровень абстракции, поясню: на трёх жёстких диска по терабайту можно создать один раздел linux объёмом три терабайта.
А как же Windows? Да, у Windows есть аналогичная (но несовместимая) технология. В Windows можно создать составной том.
И, разумеется, все системы обязаны понимать файловую систему ISO/UDF - просто потому, что это файловая система дисков CD/DVD, а так же их образов... Что такое образ компакт-диска? Это файл с расширением .iso - и его можно прожечь на чистый DVD-диск (болванку). Существуют и другие виды образов: расширение .img используется для флеш-накопителей.
Не лишним будет упомянуть и такое колдунство, как виртуализация. Да, виртуальная машина тоже использует файл образа жёсткого диска вместо физического диска. А его формат зависит от гипервизора.
Папку в сети можно сделать общей для других компьютеров, открыв к ней доступ по FTP, SSH, SMB или NFS (Network File System). При этом для некоторых протоколов и файловых систем можно задать квоты.
Но эти сетевые протоколы предоставляют доступ на высоком уровне, предоставляя доступ к файловой системе, как к уже готовому сервису. А вот протокол iSCSI позволяет делать по сети проброс блочных устройств - то есть дисковых накопителей целиком. Такое сетевое блочное устройство можно разбить на разделы с собственными файловыми системами точно так же, как и локальное.
Напоследок осталось упомянуть про различные варианты организации дисковых массивов RAID:
- RAID-0 - stripe (два диска объединены в 1, отказоустойчивость нулевая)
- RAID-1 - mirror (два диска работают параллельно)
- RAID-10 - четыре диска объединены в два зеркала, по сравнению с RAID-1 выигрыш в скорости в 2 раза.
На этом краткий обзор технологий для работы с дисковыми накопителями и файловыми системами закончен. Буду рад, если Вы из этой статьи почерпнули что-то полезное для себя.