Comparison of file systems: различия между версиями
Строка 6: | Строка 6: | ||
!|JFS | !|JFS | ||
!|BTRFS | !|BTRFS | ||
|- | |- | ||
|Ограничение | |Ограничение | ||
|255 байт | |255 байт | ||
|255 байт | |255 байт | ||
|- | |- | ||
|Достоинства | |Достоинства | ||
| | | | ||
| | | | ||
|- | |- | ||
|Недостатки | |Недостатки | ||
| | | | ||
| | | | ||
Строка 45: | Строка 37: | ||
#define BTRFS_NAME_LEN 255</source> | #define BTRFS_NAME_LEN 255</source> | ||
|- | |- | ||
|После изменения ограничения | |После изменения ограничения | ||
|Создан файл с длинным русским именем | |Создан файл с длинным русским именем | ||
|Создан файл с длинным русским именем | |Создан файл с длинным русским именем | ||
|- | |- | ||
Строка 91: | Строка 71: | ||
Errors: 0<br> | Errors: 0<br> | ||
|} | |||
{| class="wikitable sortable" style="width: 100%; text-align: center; font-size: smaller;" | |||
|- | |||
| | |||
!|EXT4 | |||
!|XFS | |||
|- | |||
|Ограничение | |||
|255 байт | |||
|255 байт | |||
|- | |||
|Достоинства | |||
| | |||
| | |||
|- | |||
|Недостатки | |||
| | |||
| | |||
|- | |||
|Видимые ограничения в коде | |||
| | |||
|/fs/xfs/xfs_types.h: <br> | |||
<source lang=c> | |||
/* | |||
* MAXNAMELEN is the length (including the terminating null) of | |||
* the longest permissible file (component) name. | |||
*/ | |||
#define MAXNAMELEN 512 | |||
</source> | |||
|- | |||
|После изменения ограничения | |||
|Пока не проводилось | |||
|Создан файл с длинным русским именем | |||
|- | |||
|Тест функций glibc | |||
| | | | ||
|Не удалось перейти в каталог с созданным файлом | |Не удалось перейти в каталог с созданным файлом | ||
|} | |} |
Версия 14:24, 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/xfs/xfs_types.h: /*
* MAXNAMELEN is the length (including the terminating null) of
* the longest permissible file (component) name.
*/
#define MAXNAMELEN 512
| |
После изменения ограничения | Пока не проводилось | Создан файл с длинным русским именем |
Тест функций glibc | Не удалось перейти в каталог с созданным файлом |