| LINUX-BG Адрес : http://www.linux-bg.org |
| SquashFS |
|
От: ivo Публикувана на: 25-02-2007 Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=devs&key=390794693 |
|
SquashFS е компресирана файлова система само за четене. Актуалната версия е squashfs3.2-r2 /15 януари 2007/. http://sourceforge.net/projects/squashfs В SquashFS всичко е компресирано със zlib компресия: файловете,структурите от данни ,съдържащи информация за файловете / inodes / , директориите. Някои по-важни характеристики на SquashFS са: -запазване на User Identification / Group ID (32 бита); -запазване на времето на създаване на файла; -на теория , файлове до 2^64 байта се подържат; -на теория , файловата система може да съдържа до 2^64 байта; -средната дължина на inodes е 8 бита , inodes и директориите се записват с много висока компресия /на байт граница/. -използва блокове с размери до 64К /64К е по подразбиране/; -дублираните файлове се премахват; -подържа big и little endian байтов ред. Това значи ,че може да монтира файлови системи ,направени на други модели микропроцесори; SquashFS е много „бърза“ файлова система. Ако желаем обаче да извлечем максималното от нея , ще трябва да приложим LZMA пачовете , с които ще можем да използваме LZMA компресията. Това ще доведе до 30% по добра компресия. Определено си струва! Всичко е под GPL лиценз. http://www.squashfs-lzma.org/ Като пример за използване на SquashFS с LZMA поддръжка : http://www.linux-live.org -> changes Как да включим поддръжката на SquashFS в ядрото. Изтегляме последното стабилно ядро / linux-2.6.20.tar.bz2 / и го разкомпресираме в директория /usr/src. Изтегляме препача за ядрото „patch-2.6.21-rc1.bz2“ и „squashfs3.2-r2.tar.gz“. От squashfs3.2-r2.tar.gz ни трябва пача ../squashfs3.2-r2/kernel-patches/linux-2.6.20/squash3.2-patch ,слагаме го в /usr/src. Подготвяме си и другите пачове ,ако са ни необходими /unionfs, aufs или други/. #cd /usr/src/linux-2.6.20 Пачваме ядрото с препача: #bzip2 -dc ../patch-2.6.21-rc1.bz2 | patch -p1 Прилагаме squashfs пача: #patch -p1 <../ squash3.2-patch Конфигурираме ядрото /маке xconfig/ ,като в „File systems“->“Miscellaneous filesystems“ маркираме „SquashFS 3.2“. Компилираме и инсталираме ядрото: #make bzImage #make install /Тук аз рестартирам компютъра за да съм с новото ядро, с „uname -r“ проверявам версията на ядрото,не е задължително обаче/ #make modules #make modules_install #modprobe squashfs /ако сме го компилирали като модул/. За да компилираме „tools“: #cd ..../squashfs3.2-r2/squashfs-tools/ #make Няма „make install“ ,затова преместваме „mksquashfs“ и “unsquashfs“ в някоя от директорите, от нашия „PATH“,например /usr/local/sbin. След като сме готови , нека да експериментираме,да видим дали е добра тази файлова система. Първо ще го сравним с „tar“.Нека компресираме сорса на ядрото ,сега не ни трябва. cd /usr/src 1.#tar -zcvf linux-backup-2.6.20.tar.gz linux-2.6.20 -> 89.8 Mbyte2мин.8 сек. /формата е: mksquashfs source1 source2 ... destination [options]/ 2.#mksquashfs linux-2.6.20 linux-backup-2.6.20-sqfs -> 89Mbyte,2мин.10 сек. Дотук еднакво./без LZMA компресия сме,squashfs използва zlib/. Да възстановим: #unsquashfs -d linux-2.6.20 linux-backup-2.6.20-sqfs -> 21 секунди. #tar -xzvf linux-backup-2.6.20.tar.gz -> 22 секунди. И все пак има предимствата. Например за защита на информация. Едно е да имаме директория „101msdcf“ с снимки ,друго файл с име снимки ... #mksquashfs 101msdcf snimki_album1 които винаги са ни подръка: #mkdir /mnt/snimki #mount -t squashfs /път_до_файла/snimki_album1 /mnt/snimki -o loop Разбира се ,всичко това е само илюстрация на командите ,как работят , „истинската сила“ на Squashfs е като файлова система. В сорса на Squashfs има файл „PERFORMANCE.README“ ,който дава сравнителни тестове с ext3,cramfs,cloop,Zisofs. Категорично и безапелационно предимство на Squashfs. Това са неофициални данни ,попаднах и на подобни в Интернет, но имам и резерви / „cramfs“ например е за съвсем друга работа /. „Slax“,http://www.slax.org/ ,е прекрасен пример за качествата на „squashfs“. Очаква се скоро „squashfs“ да стане част от стабилното ядро. << | Програмиране графичен интерфейс (GUI) с Lazarus и freepascal >> |
|
Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук,
но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора,
както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.
All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
|