LINUX.ORG.RU

RheaVFS — прямой доступ к содержимому архивов


0

0

Ярослав Сикора предложил набор патчей для ядра версии 2.6.23, позволяющий интерпретировать файл с именем оканчивающимся на символ "^", как скрытый каталог. Таким образом возможен прямой доступ к компонентам архивов: archive.tar.gz^/README или, например, secret.gpg^/phonebook. Непосредственно, доступ осуществляется используя модули FUSE.

В данный момент RheaVFS имеет поддержку zip, tar, bzip2, gzip, gpg

>>> Подробности

Ответ на: комментарий от Khades

Так же как когда заходишь в архив из mc, наверное. Кстати, за 180 уе можно купить 4 Гб оперы, так что говно вопрос.

DOKA
()

Ну наконец-то! Столько лет уже жду замену почившему лет пять назад avfs (разработчики которого создали fuse, но изначально требуемую функциональность так и не повторили).

Теперь можно смело сносить mc со всех машин, как во времена avfs - его последняя роль, средство для разгребания файлопомоек с забытыми архивами уходит в никуда.

Ждем ебилдов.. ээ.. то есть пакетов в федоре ;)

anonymous
()
Ответ на: комментарий от Khades

> в общем круто конечно, но неизвесно как Это будед есть оперативу

avfs для сложных случаев так или иначе использовал vfs-модули из mc, а они по любому пишут на диск во временный каталог. Оператива, как таковая, особо не требовалась. Хотя с точки зрения кэша, весьма не мешала.

anonymous
()

Живо себе представляю вход в .tar.bz2 архив сжатый один к десяти, размером в пол гига.

Нафиг нафиг

birdie ★★★★★
()

s/модули FUSE/модуля FUSE/g

TERRANZ ★★★★
()

тьху! хочет из ядра монстра сделать! где же unix-way? пусть этим занимаются tar и gzip.

anonymous
()

Круто! Вот теперь GNU/HURD точно не нужен.

xTERM ★★
()
Ответ на: комментарий от anonymous

дааа, через несколько лет кернел по монструозности догонит гнума. Кстати, сабж случайно не на моно? :)

Sherak ★☆
()
Ответ на: комментарий от anonymous

>тьху! хочет из ядра монстра сделать! где же unix-way? пусть этим занимаются tar и gzip.

прежде чем кричать и истерить - внмательно прочитайте новость: этим будет заниматься fuse, а не ведро.

Muromec ☆☆
()
Ответ на: комментарий от birdie

>Живо себе представляю вход в .tar.bz2 архив сжатый один к десяти, размером в пол гига.

Почему до сих пор нет нормального архиватора со сжатием, сохраняющего симлинки и т. д., права доступа, но не требующего распаковки всего архива для того, чтобы получить список файлов или чтобы распаковать последний файл?

true
()
Ответ на: комментарий от true

>Почему до сих пор нет нормального архиватора со сжатием

архиватор со сжатием - не труъ

>но не требующего распаковки всего архива для того, чтобы получить список файлов или чтобы распаковать последний файл?

потому, что tar - ___tape___ архивер. то есть, во времена оны, нужно было всё равно перемотать ленту до нужного места.

Muromec ☆☆
()
Ответ на: комментарий от true

а что мешает его создать? Если сейчас используется принцип "сначала все в tar, потом один файл в gzip" то можно заюзать обратный - все файлы в gzip, потом tar. Тут программирования - на вечер.

anonymous
()
Ответ на: комментарий от anonymous

> Тут программирования - на вечер.

А если на каком-нибудь питоне и вовсе на час.

anonymous
()

Лучше было бы, если бы «/foo/bar/archive.tar.gz» можно было трактовать одновременно и как файл и как директорию. Этакая квантовая суперпозиция, лол. Все-таки «^» это грязноватый хак.

anonymous
()

> символ "^"

он онемэшнег? :)

GFORGX ★★★
()
Ответ на: комментарий от anonymous

OMG. Прошел по ссылке со страницы по ссылке. «In the reiser4 world, all files are also directories.» Ганс высок, высок!

Жалко что я ядре проблема, которая все это сильно портит.

anonymous
()

Имхо, сжатие должно быть фичей или модулем ФС, и выполняться прозрачно для софта. Неудобно, когда почти весь /usr/share/doc/ пожат gzip'ом (автораспаковка в vim/gimp/... есть кучка велосипедов/костылей).

AiLr ★★
()
Ответ на: комментарий от anonymous

анонимусы жгут сегодня. столько энергии =) прям через край

anonymous
()
Ответ на: комментарий от anonymous

хм.. а кто собственно мешает? В системе есть одельное API для работы с файлами и отдельное API для работы с директориями. Но не кто не запрещает читать директоррии как файлы.

Собственн раньше (на стрых UNIX), где была только одна ФС так к директориям доступ и получали...

делаем следующе --- файл tar.gz можно прочитать как обчыный файл, а можно применить к нему API для директорий, задачей которго является перевести и внутренннего представления, во внешнее.

Этакая квнтовая суперпозииция...

Только вот разрешение путей -- там придется здорово повозиться, определяя как был использован объект ФС --- как директория или как файл.

ssvda
()

А модули FUSE для входа в архивы уже раньше написали или только сейчас, для этого проекта?

sv75 ★★★★★
()
Ответ на: комментарий от ssvda

> хм.. а кто собственно мешает?

Хардлинки и проблемы с блокировками. См. http://lwn.net/Articles/100148/, там приведен пример для reiser4, где тоже есть такая штука для метаданных, что файл это и каталог тоже.

Там пример был: пусть a это директория, а b — хардлинк на нее. Тогда если мы одновременно делаем mv a/dir1 a/dir2/newdir и mv b/dir2 b/dir1/newdir то оба они должны не сработать. А сделать, чтобы они не сработали с текущим устройством VFS слишком сложно.

Возникает вопрос — а зачем реально нужны хардлинки? С учетом опыта Plan9 с mount bind, тем более.

anonymous
()
Ответ на: комментарий от Lockywolf

> Это то самое, что уже тысячу лет реализовано KIO-slave-ом ?

Да, только чуть ближе к The Right Thing™. Файловым системам нужен унифицированный интерфейс, который предоставляет ядро, а не подход «ну, пусть все линкуются с нашим kdelibs/gnome_vfs/...»

ЗЫ. Да, есть проблемы, которые это не позволяют все просто делать, тот же лимит на число loop-устройств.

anonymous
()
Ответ на: комментарий от true

> Почему до сих пор нет нормального архиватора со сжатием, сохраняющего симлинки и т. д., права доступа, но не требующего распаковки всего архива для того, чтобы получить список файлов или чтобы распаковать последний файл?

RAR ;-)

ol Save symbolic links as the link instead of the file

ow Save or restore file owner and group

Только обязательно

s- Disable solid archiving

birdie ★★★★★
()
Ответ на: комментарий от Lockywolf

> TAR не нужен - есть 7zip

7zip пока не подходит - он, например, не умеет восстанавливать modification time у директорий - для меня это критично, также ничерта не знает про symlinks and permissions

birdie ★★★★★
()

Ещё никто не упомянул про kioslaves... :)

Hagalaz
()

а без символа "^" что, было не обойтись?

ясно ведь что если что-то ещё есть после regular file'а то это архив или что-то специальное

pvv
()

Прикольно, всегда мечтал о такой штуке

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от Lockywolf

>Это то самое, что уже тысячу лет реализовано KIO-slave-ом ?

да, но на уровне системы а не кде ;) Разница примерно как между ярлыком в винде и симлинком

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от AiLr

> Имхо, сжатие должно быть фичей или модулем ФС, и выполняться прозрачно для софта.

Ок, опиши тогда, что должно происходить с архивом, скачанным из инета :-)

Автоматом распаковаться и подмонтироваться веткой в VFS? А может и авторан еще туда и вирусов жменю?

Тред, конечно, жосткий... Ушел за попкорном...

AngryElf ★★★★★
()
Ответ на: комментарий от birdie

> 7zip пока не подходит - он, например, не умеет восстанавливать modification time у директорий - для меня это критично, также ничерта не знает про symlinks and permissions

Симлинки он знает, но они в mc отображаются, как пустые файлы, посему архив надо распаковывать вручную `7z x ...`. Пермишены: он не сохраняет только имя пользователя и имя группы, остальное поддерживается. Насчет mtime - не знаю.

shahid ★★★★★
()
Ответ на: комментарий от anonymous

>тьху! хочет из ядра монстра сделать! где же unix-way? пусть этим занимаются tar и gzip.

avfs, подключаемая через fuse (в ~/ создается каталог .avfs и внутри него вход в архивы и прочее работает как в "старом" avfs).

Вроде замена mc в плане лазания в архивы... Умеет лазать в архивы как сама, так и через скрипт a-la mc.

Dimai
()
Ответ на: комментарий от DOKA

>Кстати, за 180 уе можно купить 4 Гб оперы, так что говно вопрос.

Ты, наверное, очепятался. Потому как не "за 180", а за 120 "уе можно купить 4 Гб оперы":)

Led ★★★☆☆
()

Забыли уточнить, что в Unix есть только одно ограничение на символы в названиях файлов: \0. Поэтому в Linux его не возьмут.

Davidov ★★★★
()
Ответ на: комментарий от Davidov

> в Unix есть только одно ограничение на символы в названиях файлов: \0.

Ну, вообще-то, ещё и "/" несколько затруднительно в имени файла использовать:)

Led ★★★☆☆
()
Ответ на: комментарий от Led

4GB оперы, если уж на то пошло, можно скачать :-)

AngryElf ★★★★★
()
Ответ на: комментарий от Davidov

> Забыли уточнить, что в Unix есть только одно ограничение на символы в названиях файлов: \0.

Да ну?

Создайте мне файл "." без кавычек. Или ".."

А слабо файл обозвать "/"?

birdie ★★★★★
()
Ответ на: комментарий от birdie

> Создайте мне файл "." без кавычек. Или ".."

Так ведь уже созданы. Директории. Автомагически.

А так — да, про «\0» как единственный символ товарищ гонит. Еще, разумеется, «/». И, вроде как, все.

anonymous
()
Ответ на: комментарий от DOKA

> Забыли уточнить, что в Unix есть только одно ограничение на символы в названиях файлов: \0.

Только что в KDE создал текстовый файл с именем \0. и всё нормально! Хаки никакие не использовал. Что я не так делаю?

Rodegast ★★★★★
()
Ответ на: комментарий от DOKA

> Так же как когда заходишь в архив из mc, наверное.

В mc это в userspace. У тебя все это разархивируется в куда-то /tmp. Здесь же на уровне ядра хотят, что имхо неправильно и бред, но это личное мнение.

>Кстати, за 180 уе можно купить 4 Гб оперы, так что говно вопрос.

4Gb памяти - не вопрос, а если архив в 16Gb - будете 32Gb памяти брать?

skwish ★★
()
Ответ на: комментарий от AngryElf

>Ок, опиши тогда, что должно происходить с архивом, скачанным из инета :-)

ясное дело - ничего. а вот при _доступе_ к нему - должно происходить самое оно. разницу уловил?

>Автоматом распаковаться и подмонтироваться веткой в VFS?

см. выше, думай головой.

>А может и авторан еще туда и вирусов жменю?

за авторами и вирусами - к касперскому и микрософт.ком

Muromec ☆☆
()
Ответ на: комментарий от skwish

>В mc это в userspace. У тебя все это разархивируется в куда-то /tmp. Здесь же на уровне ядра хотят, что имхо неправильно и бред, но это личное мнение.

домашнее заданее - узнать, что значит буква "U" в слове "fuse". потом начинать "аналлизировать" новость заново

Muromec ☆☆
()
Ответ на: комментарий от birdie

> RAR ;-)
> ol Save symbolic links as the link instead of the file
> ow Save or restore file owner and group
> Только обязательно
> s- Disable solid archiving

А не проще ли перестать страдать фигнёй и сделать tar.rar с избыточностью?

Gharik
()
Ответ на: комментарий от birdie

> 7zip пока не подходит - он, например, не умеет восстанавливать modification time у директорий - для меня это критично, также ничерта не знает про symlinks and permissions

Ну ещё бы, с таким тяжким вендовым прошлым как у 7зипа вообще удивительно, как он рэндомно не сегфолтится, записывая в архив случайные последовательности байт.

Gharik
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.