Ответ
В экосистеме Linux используется множество файловых систем, каждая со своими особенностями. Вот основные из них:
- ext4 (Fourth Extended Filesystem) — стандартная, надёжная и широко используемая журналируемая ФС в большинстве дистрибутивов. Хороший баланс производительности и стабильности.
- XFS — высокопроизводительная журналируемая ФС, отлично подходящая для работы с большими файлами и высоконагруженных серверов.
- Btrfs (B-Tree File System) — современная ФС с продвинутыми функциями: снапшоты, прозрачное сжатие, дедупликация, встроенный RAID.
- ZFS — изначально файловая система Sun, известная высокой надёжностью, проверкой целостности данных (checksum) и мощными возможностями управления томами. Требует загрузки внешнего модуля ядра.
- FAT32 / exFAT / NTFS — файловые системы, обеспечивающие совместимость с Windows. NTFS поддерживается через драйвер
ntfs-3g. - tmpfs — виртуальная файловая система, размещённая в оперативной памяти. Используется для
/tmp,/dev/shm.
Пример на C++: получение информации о файловой системе
#include <iostream>
#include <sys/statvfs.h>
int main() {
struct statvfs fs_info;
if (statvfs("/", &fs_info) == 0) {
std::cout << "Filesystem block size: " << fs_info.f_bsize << " bytesn";
std::cout << "Total blocks: " << fs_info.f_blocks << "n";
std::cout << "Free blocks: " << fs_info.f_bfree << "n";
// Расчёт свободного места в гигабайтах
auto free_gb = (fs_info.f_bfree * fs_info.f_bsize) / (1024.0 * 1024 * 1024);
std::cout << "Free space: " << free_gb << " GBn";
}
return 0;
}