Comparison of file systems: различия между версиями

Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
Строка 6: Строка 6:
!|JFS
!|JFS
!|BTRFS
!|BTRFS
!|EXT4
!|XFS
|-
|-
|Ограничение  
|Ограничение  
|255 байт
|255 байт
|255 байт
|255 байт
|255 байт
|255 байт
|-
|-
|Достоинства
|Достоинства
|
|
|
|
|
|
|-
|-
|Недостатки
|Недостатки
|
|
|
|
|
|
Строка 45: Строка 37:
#define BTRFS_NAME_LEN 255</source>
#define BTRFS_NAME_LEN 255</source>


|
|/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>
|-
|-
|После изменения ограничения
|После изменения ограничения
|Создан файл с длинным русским именем
|Создан файл с длинным русским именем
|Создан файл с длинным русским именем
|Пока не проводилось
|Создан файл с длинным русским именем
|Создан файл с длинным русским именем
|-
|-
Строка 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(сразу после создания файла, при монтировании ошибок не выдается):
[ 337.738583] ERROR: (device sdc1): JFS:Dtree error: ino = 2, bn=40, index = 1
[ 337.738651] ERROR: (device sdc1): JFS:Dtree error: ino = 2, bn=40, index = 3

[root@host-35 btrfs]# ./glibc_vlfn_test

creat_test: working
access_test: working
chmod_test: working
open_test: working
stat_test: working
read_open_dir_test: working
unlink_test: working
creat_test: working
symlink_test: working
chmod_test: working
fopen_test: working
truncate_test: working
link_test: working
remove_test: working
mkdir_test: working
rmdir_test: working
Errors: 0

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 Не удалось перейти в каталог с созданным файлом