public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Phillip Lougher <phillip@lougher.demon.co.uk>
To: Samuel Flory <sflory@rackable.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: ANNOUNCEMENT: Squashfs released (a highly compressed filesystem)
Date: Wed, 30 Oct 2002 03:51:50 +0000	[thread overview]
Message-ID: <3DBF5756.2010702@lougher.demon.co.uk> (raw)
In-Reply-To: 3DBF4DBA.8060005@rackable.com

Samuel Flory wrote:
> Phillip Lougher wrote:
> 
>> Hi,
>>
>> First release of squashfs.  Squashfs is a highly compressed read-only 
>> filesystem for Linux (kernel 2.4.x).  It uses zlib compression to 
>> compress both files, inodes and directories.  Inodes in the system are 
>> very small and all blocks are packed to minimise data overhead. Block 
>> sizes greater than 4K are supported up to a maximum of 32K.
>>
>> Squashfs is intended for general read-only filesystem use, for 
>> archival use, and in embedded systems where low overhead is needed.
>>
>> Squashfs is available from http://squashfs.sourceforge.net.
>>
>> The patch file is currently against 2.4.19.  There is further info on 
>> the filesystem design etc. in the README.
>>
>> I'l be interested in getting any feedback, advice etc. on it.
>>
> 
>  What are the advantages of squashfs vs cramfs?
> 
> 
> 

Cramfs was the inspiration for squashfs.  Squashfs basically gives 
better compression, bigger files/filesystem support, and more inode 
information.

1. Blocks upto 32K are supported - data is compressed in units of 32K 
which achieves better compression ratios than compressing in 4K blocks. 
  Generally using bigger than 4K blocks are a bad idea, because the VFS 
calls the filesystem in 4K pages.  Squashfs explictly pushes the extra 
block data into the page cache.

2. Squashfs compresses inode and directory information in addition to 
file data.  Inodes/directories generally compress down to 50%, or say on 
average 8 bytes or less per inode.

3. All fs data is packed on byte alignments, saving a couple of bytes 
per inode and directory.

4.  Full 32 bit uids/guids are stored (4 bits stored in inode, uses a 
lookup table, to give 48 uids/16 gids).  File sizes upto 2^32 are 
supported.  Timestamp info is stored. Cramfs truncates uids to 16 bits, 
uids to 8 bits.  Cramfs files sizes are upto 2^24.  No timestamp info. 
Squashfs takes advantage of metadata compression to have more info with 
smaller metadata overhead.

5 Symbolic link contents/file indexes are stored inside the inode table,
giving better compression than if they were compressed individually, or 
not compressed.

6. The mksquashfs program doesn't store/mmap the filesystem as it is 
created (it performs file duplicate checking against the partially 
written out compressed fs), and so allows larger filesystems to be created.


Further info on the fs is contained in the README...

Phillip


  reply	other threads:[~2002-10-30  3:50 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-30  2:29 ANNOUNCEMENT: Squashfs released (a highly compressed filesystem) Phillip Lougher
2002-10-30  3:10 ` Samuel Flory
2002-10-30  3:51   ` Phillip Lougher [this message]
2002-10-30  4:03     ` Jeff Garzik
2002-10-30  4:11       ` Larry McVoy
2002-10-30  4:15         ` Jeff Garzik
2002-10-30 14:53         ` Jesse Pollard
2002-10-30 15:10           ` Padraig Brady
2002-10-30 15:42             ` Denis RICHARD
2002-10-31 16:18               ` Nicholas Wourms
2002-10-30 23:56       ` Phillip Lougher
2002-11-01 15:57         ` Rob Landley
2002-11-02  8:57           ` Phillip Lougher
2002-10-30  6:28     ` Ingo Oeser
2002-10-31  4:08       ` Phillip Lougher
  -- strict thread matches above, loose matches on Subject: below --
2002-10-30 14:17 Matthew Wilcox
2002-10-31  5:12 Phillip Lougher

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3DBF5756.2010702@lougher.demon.co.uk \
    --to=phillip@lougher.demon.co.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sflory@rackable.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox