Quote Originally Posted by Frunktz
Uhm, for the decompression..Knoppix use about, for example, 20% of RAM (128 mb for example), this 20% is used for decompress on the fly the requested program..I think..
But I think again that decompress KDE environment with KDevelop, plus X, and some other apps need more than 30 mb of RAM..Am I wrong?
No, you are (maybe) right. But you don't need this 30MB all the time! The trick is that if something is read from the CD, there is no need to read the whole CD (that contains about 700MB of compressed data, this would be the 1.9GB (uncompressed) you see with 'df') - it just uncompresses a small piece of it, and then, later, the next one.

Quote Originally Posted by Frunktz
SOrry but my English is very poor can you tell me more info about that?
If I understand..df -h show 1.9 gb because the cloop module know exactly how big is the decompressed image..
That's right. You understand

Quote Originally Posted by Frunktz
In reality the 1.9 Gb are fake...Maybe...
Ahem, the 1.9 GB are not "really" fake... It's just the uncompressed size of the filesystem.

Imagine the following:
- you create a 2.0GB partition on your hard disk, and create a filesystem on it, e.g. ext2.
- you mount it and put lots of data and programs into it until it is nearly full
- you umount it
- now you use a very special program to read the whole partition, compress it and write the result into a file
- after that's finished, you see that the file is about 700MB in size.
- now you mount this file instead of the original partition with the help of cloop.
- cloop decompresses the first few blocks and can now see that the original filesystem was 2.0GB and reports this size to the kernel.
- now let's say, you start a program that has 100kb of size and is located at 1,5GB counted from the beginning of the original filesystem
- so, the kernel asks cloop to get 100KB of data from the 1.5GB position
- cloop "translates" the "uncompressed position" 1.5GB into, for example, a "compressed position" of 550MB
- then cloop reads 60KB of compressed data, uncompresses it to 100kB and tells the kernel "this is the 100KB data from the 1.5GB position" (*)


(*):Cloop must read the data in pieces bigger than 60KB, I think 128kb, and if you are unlucky it needs 2 pieces because the 60KB it wants cross the border between two pieces - so it might need (in the worst case): 128KB+128kb = 256kb of RAM for the compressed data, with the 60KB it wants somewhere in the middle of this 256KB block, plus 100KB for the uncompressed data - altogether it needs = 356KiloByte(!) of RAM. Still much less than 700MB or 1.9GB.

Are you still there?

Cheers
Dirk