Comparison of file systems
Сравнение файловых систем Linux
Приведено сравнение файловых систем JFS, BTRFS, EXT4 для последующей адаптации к использованию с длинными именами файлов.
JFS | BTRFS | |
---|---|---|
Ограничение | 255 байт | 255 байт |
Достоинства | ||
Недостатки | ||
Видимые ограничения в коде | /fs/jfs/jfs_filsys.h:
#define JFS_NAME_MAX 255
При всем этом jfs хранит имя в строке формата Unicode: struct component_name {
int namlen;
wchar_t *name;
};
|
/fs/btrfs/ctree.h:
/*
* we can actually store much bigger names, but lets not confuse the rest
* of linux
*/
#define BTRFS_NAME_LEN 255
|
После изменения ограничения | Создан файл с длинным русским именем | Создан файл с длинным русским именем |
Тест функций glibc | Не получилось перемонтировать систему, ошибка: mount: wrong fs type, bad option, bad superblock on /dev/sdc1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so Вывод dmesg | tail(сразу после создания файла, при монтировании ошибок не выдается): |
[root@host-35 btrfs]# ./glibc_vlfn_test creat_test: working |
EXT4 | XFS | |
---|---|---|
Ограничение | 255 байт | 255 байт |
Достоинства | ||
Недостатки | ||
Видимые ограничения в коде | /fs/ext4/ext4.h:/*
* Structure of a directory entry
*/
#define EXT4_NAME_LEN 255
|
/fs/xfs/xfs_types.h: /*
* MAXNAMELEN is the length (including the terminating null) of
* the longest permissible file (component) name.
*/
#define MAXNAMELEN 512
|
После изменения ограничения | Пока не проводилось | Создан файл с длинным русским именем |
Тест функций glibc | Не удалось перейти в каталог с созданным файлом, но на следующий день удалось: [root@host-35 xfs]# ./glibc_vlfn_test
creat_test: working |