Komprimovane suborove systemy samozrejme existuju aj pre linux. Pred par rokmi som tiez nejaky potreboval a nasiel som ich niekolko (asi 5 alebo 6).
Najviac sa mi pacil jeden, ktory sa skompiluje spolu s jadrom linuxu a rozsiri tak moznosti suboroveho systemu ext2 o transparentne komprimovanie. Funguje to asi tak, ze sa prida na subor (obdoba chmod) znacka 'c', a subor sa automaticky skomprimuje. Ak system pracuje s tymto suborom, tak si ho sam dekomprimuje a komprimuje. Tiez sa to da aplikovat na adresare, a potom ked sa skopiruje subor do toho adresara, tak sa spakuje a ked sa kopiruje z neho, tak sa rozpakuje. Tiez sa daju nastavit rozne stupne kompresie, takze napr. ja som mal na dokumentacie vysoky stupen a na niektore binarky nizsi. Komprimovalo to metodou gzip (1-9) alebo bzip2. Proste parada.
Problem je ze uz si nepamatam ako sa to volalo. Ale cez googla, by sa to urcite dalo najst.
Komprimace v NT je stejna jaka je v ext2 (patch ma kolem 10k) a komprimuje jednotlive soubory, problem je v tom ze to ma zatim dost neprijemne vykonove ztraty, ale na druhou stranu P$ s 512MBram si s 500mb diskem bude kecat jiste rychleji (uzke hrdlo bude propoustet mensi kvanta dat).
Komprimace dblspacem ci stackerem patri nekam uplne jinam a ve skutecnosti to nenizadna fat ale chytreji usporadany zip soubor, ktery za cenu vykonu tvrdi ze je fatka na dsku d:
Tady jsou prozmenu na linuxu nastroje ktere umi compressed loopback device.
Proc nic z toho neni ani ve vanille ani v zadne bezne distre? Jedna se o veci ktere jsou z pohledu systemu spatne - zdrzuji a snizuji stabilitu. V dnesni dobe je to jeste o kousek nesmyslnejsi kdyz 100GB disk stoji 5000kc.
jedine dva linky ktere poradim: sourceforge a google
na sourceforge sidly vec ktera se menuje WOLK (working overloaded kernel) a ta v sobe tu bzipped ci gzipped ext2 ma, ale zase na druhou stranu jsem jeste neskousel co to udela a ten wolk patch ma cca 20MB takze pro prdel je to smysluplne jen pro well connected yankies.
No, neni to tak uplne pravda, za prve si troufam tvrdit, ze minimalne u NT to stabilitu vubec nesnizuje a za druhe, ze by to zdrzovalo... schvalne jsem zkousel (subjektivne, bez stopek :) ) porovnavat rychlost spousteni a prace i dost narocneho softu pred kompresi a po... no fakt jsem tam rozdil nevidel. Urcite mate pravdu, ze kdyz zacinaly NT a byly nejake Pentia na 100 MHz, zanedbatelne to nebylo, dnes kdyz maji CPU radove vyssi vykony a nebudete tim komprimovat filmy a podobne nesmysly, neni problem.
Rekl bych ze u linuxovych distribuci to nebyva kvuli kompatibilite, u NTFS to nevadi, protoze to obsahuje driver v kazdych windows.
Uz delsi dobu pouzivam ve W2K komprimovanou NTFS a to na disku s malo "obrabenymi" daty. Na iso souborech to dela vice nez 10% usporu, coz neni k zahozeni. Vsechno frci naprosto bez problemu, komprimovane iso soubory montuju pres DaemonTools - vse naprosto bez problemu (pouzivame to i po lokalni siti). Uvital bych akorat moznost uzivatelsky ovlivnit kvalitu komprese - jasne, ze bych to na tom disku dal naplno :-). Z rychlosti strach nemam, dekomprese je rychla, procesor mam beztak vetsinu uptime v idle. Kdyz uz tu je zminka o stackeru - kdysi jsem jeste na stroji PC AT 286 bootoval DOS z disket a startoval TurboPascal - start obeho ze stackerovane diskety trval mene nez polovinu.
Programuju takovou hru. A graficka data chci mit zkomprimovana a prilinkovana v binarce. Pouzivam 'zlib'. Data po spusteni rozkomprimovavam do alokovane pameti pomoci funkce 'uncompress()'. Jakym zpusobem ale ty data zkomprimovat? Funkce 'uncompress()' totiz neni schopna rozkomprimovat ani to, co vznikne pouzitim prikazu 'compress' a/nebo 'gzip'. Takze zatim jsem to vyresil tak, ze jsem si napsal vlastni komprimacni program, ktery pouziva funkci 'compress()' ze 'zlib'. To funguje, ale myslim, ze by to melo jit i nejak jinak (proste v pameti rozkomprimovat data zkomprimovana nejakou standardni utilitou). Nevite nekdo?
A co tak radsej skusit http://upx.sourceforge.net/ ? Je to "executable packer". Teda zbali cely "exe" subor, a rozbali ho v pamati za vas. UPX je rychle a na spustitelnych programoch(knizniciach) ma zvycajne aj lepsi kompresny pomer ako gzip/zip. (Neviem ale, ako to je s grafickymi datami. A este to ma nevyhodu, ze tie data rozbali hned po starte vsetky, co nemusi byt to, co potrebujete.)