Продолжение треда Я написал ненужно, поздравьте меня. В прошлом треде мне сказали слишком мало «не нужно», поэтому я решил продолжить разработку :-)
Итак, я написал более-менее полноценный (ну... во всяком случае он реализует все функции, которые в принципе есть в ListFS, другое дело, что их там не так уж много) FUSE-драйвер для ListFS. Теперь любой желающий может смонтировать ListFS в любой каталог и начать активно просматривать список файлов (readdir), создавать (mknod, mkdir) и удалять (unlink, rmdir) файлы и каталоги, читать и писать файлы (open, close, read, write, truncate). Разумеется, я совершенно не гарантирую, что после очередной операции ФС в образе не превратится в тыкву (самое весёлое было, когда в ней полявился бесконечный каталог и при попытки ls его всё повисало и начинало отжирать память).
Исходники:
https://github.com/kiv-apple/ListFS
Использование:
listfs-tool create disk.img 2048 1024 # Создание образа ФС из 2048 блоков по 1 КБ (запрещается вызывать команду с размером блока менее 512 байт)
listfs-tool mount disk.img /mnt
...
fusermount -u /mnt
Ну и да, сам код взаимодействия с ФС реализован в виде библиотеки, поэтому при желании ListFS можно задействовать в своём проекте (правда не знаю зачем это кому-то может понадобится).
По сравнению с предыдущей версией код стал более-менее структурированным и читаемым, а также вполне возможно улучшилась стабильность и скорость работы. Ну и, разумеется, я сломал совместимость со старой версией, потому что когда я писал ту рассылку я кое-что не учёл и работать со старым форматом ФС слишком неудобно. Теперь уже архитектура более-менее нормальная, больше ломать совместимость не буду.
Приглашаю всех желающих протестировать как оно работает (мне самому это очень интересно). Ну а уж если кто-то соизволит открыть исходники, ужаснуться и написать дельное замечание/предложение, то это вообще замечательно.
Linux тут при том, что данное приложение на офтопике не получится запустить при всём желании.
Да, я хочу распространять это поделние под GPL. Какие минимальные действия мне необходимо сделать для этого?