<commit_before>SQUASHFS 4.0 FILESYSTEM
=======================

Squashfs is a compressed read-only filesystem for Linux.
It uses zlib/lzo compression to compress 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 1Mbytes (default block size 128K).

Squashfs is intended for general read-only filesystem use, for archival
use (i.e. in cases where a .tar.gz file may be used), and in constrained
block device/memory systems (e.g. embedded systems) where low overhead is
needed.

Mailing list: <EMAIL>
Web site: www.squashfs.org

1. FILESYSTEM FEATURES
----------------------

Squashfs filesystem features versus Cramfs:

				Squashfs		Cramfs

Max filesystem size:		2^64			256 MiB
Max file size:			~ 2 TiB			16 MiB
Max files:			unlimited		unlimited
Max directories:		unlimited		unlimited
Max entries per directory:	unlimited		unlimited
Max block size:			1 MiB			4 KiB
Metadata compression:		yes			no
Directory indexes:		yes			no
Sparse file support:		yes			no
Tail-end packing (fragments):	yes			no
Exportable (NFS etc.):		yes			no
Hard link support:		yes			no
"." and ".." in readdir:	yes			no
Real inode numbers:		yes			no
32-bit uids/gids:		yes			no
File creation time:		yes			no
Xattr support:			yes			no
ACL support:			no			no

Squashfs compresses data, inodes and directories.  In addition, inode and
directory data are highly compacted, and packed on byte boundaries.  Each
compressed inode is on average 8 bytes in length (the exact length varies on
file type, i.e. regular file, directory, symbolic link, and block/char device
inodes have different sizes).

2. USING SQUASHFS
-----------------

As squashfs is a read-only filesystem, the mksquashfs program must be used to
create populated squashfs filesystems.  This and other squashfs utilities
can be obtained from http://www.squashfs.org.  Usage instructions can be
obtained from this site also.


3. SQUASHFS FILESYSTEM DESIGN
-----------------------------

A squashfs filesystem consists of a maximum of nine parts, packed together on a
byte alignment:

	 ---------------
	|  superblock 	|
	|---------------|
	|  compression  |
	|    options    |
	|---------------|
	|  datablocks   |
	|  & fragments  |
	|---------------|
	|  inode table	|
	|---------------|
	|   directory	|
	|     table     |
	|---------------|
	|   fragment	|
	|    table      |
	|---------------|
	|    export     |
	|    table      |<commit_msg>Squashfs: Update documentation for XZ and add squashfs-tools devel tree<commit_after>SQUASHFS 4.0 FILESYSTEM
=======================

Squashfs is a compressed read-only filesystem for Linux.
It uses zlib/lzo/xz compression to compress 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 1Mbytes (default block size 128K).

Squashfs is intended for general read-only filesystem use, for archival
use (i.e. in cases where a .tar.gz file may be used), and in constrained
block device/memory systems (e.g. embedded systems) where low overhead is
needed.

Mailing list: <EMAIL>
Web site: www.squashfs.org

1. FILESYSTEM FEATURES
----------------------

Squashfs filesystem features versus Cramfs:

				Squashfs		Cramfs

Max filesystem size:		2^64			256 MiB
Max file size:			~ 2 TiB			16 MiB
Max files:			unlimited		unlimited
Max directories:		unlimited		unlimited
Max entries per directory:	unlimited		unlimited
Max block size:			1 MiB			4 KiB
Metadata compression:		yes			no
Directory indexes:		yes			no
Sparse file support:		yes			no
Tail-end packing (fragments):	yes			no
Exportable (NFS etc.):		yes			no
Hard link support:		yes			no
"." and ".." in readdir:	yes			no
Real inode numbers:		yes			no
32-bit uids/gids:		yes			no
File creation time:		yes			no
Xattr support:			yes			no
ACL support:			no			no

Squashfs compresses data, inodes and directories.  In addition, inode and
directory data are highly compacted, and packed on byte boundaries.  Each
compressed inode is on average 8 bytes in length (the exact length varies on
file type, i.e. regular file, directory, symbolic link, and block/char device
inodes have different sizes).

2. USING SQUASHFS
-----------------

As squashfs is a read-only filesystem, the mksquashfs program must be used to
create populated squashfs filesystems.  This and other squashfs utilities
can be obtained from http://www.squashfs.org.  Usage instructions can be
obtained from this site also.

The squashfs-tools development tree is now located on kernel.org
	git://git.kernel.org/pub/scm/fs/squashfs/squashfs-tools.git

3. SQUASHFS FILESYSTEM DESIGN
-----------------------------

A squashfs filesystem consists of a maximum of nine parts, packed together on a
byte alignment:

	 ---------------
	|  superblock 	|
	|---------------|
	|  compression  |
	|    options    |
	|---------------|
	|  datablocks   |
	|  & fragments  |
	|---------------|
	|  inode table	|
	|---------------|
	|   directory	|
	|     table     |
	|---------------|
	|   fragment	|
	|    table      |
	|---------------|
	|    export     |
	|    table      |
{'fraction_non_alphanumeric': 0.13116957941232957, 'fraction_numerical': 0.009218359900134435, 'mean_word_length': 2.5476839237057223, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4538907', 'n_tokens_mistral': 1743, 'n_tokens_neox': 1586, 'n_words': 651}