Comparison of file systems: различия между версиями
Строка 70: | Строка 70: | ||
rmdir_test: working<br> | rmdir_test: working<br> | ||
Errors: 0<br> | Errors: 0<br> | ||
Однако, файл не распознается стандартными командам типа ls. | |||
|} | |} | ||
Строка 115: | Строка 115: | ||
|Тест функций glibc | |Тест функций glibc | ||
| | | | ||
|Не удалось перейти в каталог с созданным файлом | |Не удалось перейти в каталог с созданным файлом, но на следующий день удалось: <br> | ||
[root@host-35 xfs]# ./glibc_vlfn_test | |||
creat_test: working<br> | |||
access_test: working<br> | |||
chmod_test: working<br> | |||
open_test: working<br> | |||
stat_test: working <br> | |||
read_open_dir_test: File isn't found<br> | |||
unlink_test: unlink() error: No such file or directory<br> | |||
creat_test: working<br> | |||
symlink_test: working<br> | |||
chmod_test: chmod() error: Input/output error<br> | |||
fopen_test: fopen() error: Input/output error<br> | |||
truncate_test: truncate() error: Input/output error<br> | |||
link_test: link() error: Input/output error<br> | |||
remove_test: remove() error: Input/output error<br> | |||
mkdir_test: mkdir() error: File exists<br> | |||
rmdir_test: rmdir() error: Not a directory<br> | |||
Errors: 12<br> | |||
|} | |} |
Версия 15:44, 16 ноября 2013
Сравнение файловых систем 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 |