Tiny Core Base > TCB Talk

Sugestion: XZ compression in kernel + tcz; squashfs with xz + biger block size

<< < (2/7) > >>

nick65go:
hi andyj, agreed, run from RAM is a very strong advantaje, sorry that  i missed to list it in TC strong points! (like in other distro like alpine linux, etc)

As for laptops (same as for embeded systems) i would rather prefer to boot with kernel+modules (xz compressed) and change-root in x86 for almost appls; exception maybe for appls such as servers(SQL, MariaDB), SMP parallel proccessing (librreoffice-calc) or video/audio editors (blending?) or virtual machine hosts (qemu, vbox).
Only where x64 make the difference visible.

hi jazzbiker, corebook is beautiful. it was written with tc x86 in mind  :); i agree, MOUNTING squash tcz does not matter much; but as i specified, LOADING them in RAM, then mounting from RAM (copy flags) will matter for a 6MB core. the overhead gz versus xz matters for x86, not so much for x64, do you agree?

So, I repeat my main dilema: What target CPU/audience is TCx64 for in 2019?
maybe i am wrong - something like intel core-duo 1.7ghz with 2 Mb RAM is a minimum taget audience for a useful MINIMUM linux from 2014 -> 5 years ago?
i take care of my devices, but maximum 5-6 years (they are designed to fail!, so the maintenace cost, -battery mostly- is not worth for me).
[ex: 30-50$ /batery /2years x 3-4 years = 100-200$ (a new pc), without considering video card overheating/fail, keyboard keys partialy functioning etc; sheet happnes over time.]

nick65go:

--- Quote ---squashfs-tools supports several compression formats, so you can try xz and others to see what difference it makes if you so wish  :)
--- End quote ---
thanks juanito, I did not know that you updated squashfs.tcz to have xz inside as an option. it was not for very long time. i will check again.

Rich:
Hi nick65go
For more information, try this ::):

--- Code: ---tc@box:~$ mksquashfs --help
SYNTAX:mksquashfs source1 source2 ...  dest [options] [-e list of exclude
dirs/files]

Filesystem build options:
-comp <comp> select <comp> compression
Compressors available:
gzip (default)
lzo
xz
zstd
-b <block_size> set data block to <block_size>.  Default 128 Kbytes
Optionally a suffix of K or M can be given to specify
Kbytes or Mbytes respectively
-no-exports don't make the filesystem exportable via NFS
-no-sparse don't detect sparse files
-no-xattrs don't store extended attributes (default)
-xattrs store extended attributes
-noI do not compress inode table
-noD do not compress data blocks
-noF do not compress fragment blocks
-noX do not compress extended attributes
-no-fragments do not use fragments
-always-use-fragments use fragment blocks for files larger than block size
-no-duplicates do not perform duplicate checking
-all-root make all files owned by root
-force-uid uid set all file uids to uid
-force-gid gid set all file gids to gid
-nopad do not pad filesystem to a multiple of 4K
-keep-as-directory if one source directory is specified, create a root
directory containing that directory, rather than the
contents of the directory

Filesystem filter options:
-p <pseudo-definition> Add pseudo file definition
-pf <pseudo-file> Add list of pseudo file definitions
Pseudo definitions should be of the format
filename d mode uid gid
filename m mode uid gid
filename b mode uid gid major minor
filename c mode uid gid major minor
filename f mode uid gid command
filename s mode uid gid symlink
-sort <sort_file> sort files according to priorities in <sort_file>.  One
file or dir with priority per line.  Priority -32768 to
32767, default priority 0
-ef <exclude_file> list of exclude dirs/files.  One per line
-wildcards Allow extended shell wildcards (globbing) to be used in
exclude dirs/files
-regex Allow POSIX regular expressions to be used in exclude
dirs/files

Filesystem append options:
-noappend do not append to existing filesystem
-root-becomes <name> when appending source files/directories, make the
original root become a subdirectory in the new root
called <name>, rather than adding the new source items
to the original root

Mksquashfs runtime options:
-version print version, licence and copyright message
-exit-on-error treat normally ignored errors as fatal
-recover <name> recover filesystem data using recovery file <name>
-no-recovery don't generate a recovery file
-quiet no verbose output
-info print files written to filesystem
-no-progress don't display the progress bar
-progress display progress bar when using the -info option
-processors <number> Use <number> processors.  By default will use number of
processors available
-mem <size> Use <size> physical memory.  Currently set to 503M
Optionally a suffix of K, M or G can be given to specify
Kbytes, Mbytes or Gbytes respectively

Miscellaneous options:
-root-owned alternative name for -all-root
-o <offset> Skip <offset> bytes at the beginning of the file.
Default 0 bytes
-noInodeCompression alternative name for -noI
-noDataCompression alternative name for -noD
-noFragmentCompression alternative name for -noF
-noXattrCompression alternative name for -noX

-Xhelp print compressor options for selected compressor

Compressors available and compressor specific options:
gzip (default)
  -Xcompression-level <compression-level>
<compression-level> should be 1 .. 9 (default 9)
  -Xwindow-size <window-size>
<window-size> should be 8 .. 15 (default 15)
  -Xstrategy strategy1,strategy2,...,strategyN
Compress using strategy1,strategy2,...,strategyN in turn
and choose the best compression.
Available strategies: default, filtered, huffman_only,
run_length_encoded and fixed
lzo
  -Xalgorithm <algorithm>
Where <algorithm> is one of:
lzo1x_1
lzo1x_1_11
lzo1x_1_12
lzo1x_1_15
lzo1x_999 (default)
  -Xcompression-level <compression-level>
<compression-level> should be 1 .. 9 (default 8)
Only applies to lzo1x_999 algorithm
xz
  -Xbcj filter1,filter2,...,filterN
Compress using filter1,filter2,...,filterN in turn
(in addition to no filter), and choose the best compression.
Available filters: x86, arm, armthumb, powerpc, sparc, ia64
  -Xdict-size <dict-size>
Use <dict-size> as the XZ dictionary size.  The dictionary size
can be specified as a percentage of the block size, or as an
absolute value.  The dictionary size must be less than or equal
to the block size and 8192 bytes or larger.  It must also be
storable in the xz header as either 2^n or as 2^n+2^(n+1).
Example dict-sizes are 75%, 50%, 37.5%, 25%, or 32K, 16K, 8K
etc.
zstd
  -Xcompression-level <compression-level>
<compression-level> should be 1 .. 22 (default 15)
tc@box:~$
--- End code ---

nick65go:
thanks rich, my fault, i did not check it, lesson learnt!

hiro:
try out zstd then, nick :)

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version