Computer Nerd Kev

Home|About|Projects|Links


Projects > Tiny Core > Features

Tiny Core Linux Features

These notes summarise some unusual features of Tiny Core Linux, as observed by me.

Extensions

As the system's root file system is kept in RAM, software installed conventionally by coping files to standard locations is lost after a reboot. For adding software beyond that supplied in the base system, an equivalent to software packages is used, called extensions. Tiny Core Linux extensions are Gzip-compressed Squashfs 4.x archives which are loop-mounted from inside the "tce" directory residing on the partition of a physical drive to a directory in /tmp/tcloop. They use the ".tcz" file name extension.

By default all program files inside a mounted extension are symlinked to locations within the /usr/local directory of the root file system in RAM. Alternatively in copy2fs mode the contents of the extension are copied to the root file system, so that the data is thereafter always accessed from RAM until the next reboot. In either case the extensions remain read-only, so they are always restored to their original state after each reboot.

Extensions and their dependencies are downloaded and installed (until next reboot) with the tce-load command. Copy2fs mode is applied to all extensions if a file named copy2fs.flg is in the "tce" directory, or to any extensions listed in a copy2fs.lst file there. At boot-time, all extensions listed in the onboot.lst file inside the "tce" directory are automatically installed. This causes a delay during the boot process which can be minimised by configuring extensions in "ondemand" mode, where instead of loading at boot-time, extensions are automatically loaded when their associated executable/command is first run.

Extensions are maintained in an official repository which can be browsed using either the GUI "Apps" or the CLI "tce-ab". These browsers are focused on retreval and don't allow management of extensions already downloaded or added to onboot.lst. "Apps" supports updating individual extensions, or the tce-update command can be used for a batch update of all extensions previously downloaded (except for any which are excluded by listing them in "tcz-black.lst" in the tce directory).

The extensions repository is community-maintained and different sets of software are available for the different supported architectures. 'Lightweight' software with minimal size and system requirements is well represented, including some older programs such as the first versions of XMMS and Emelfm which use the old GTK version 1 graphics toolkit library. However in many cases these extensions have been compiled for much earlier versions of Tiny Core and ported forwards over the years, so compatibility issues occasionally arise.

In some cases shell scripts are available that automatically generate new extensions from binaries published by software publishers, such as for Firefox, so that installation of these isn't lost after rebooting.

dCore

The dCore variant of Tiny Core has a similar architecture to the standard version, while attempting to maintain compatibility with ".deb" packages from Debian and Ubuntu, which can be automatically converted into its SCE (Self-Contained Extension) package format. This allows dCore users access to a vastly greater selection of packaged software than is available for standard Tiny Core. Tiny Core's TCZ extensions are not supported in dCore.

Like Tiny Core's TCZ format, SCEs are compressed SquashFS filesystems loop-mounted for read-only access. However unlike TCZ extensions, SCEs include the contents of all dependencies of the Debian package on which they are based. SCEs are therefore self-contained, but significantly larger than equivalent TCZ extensions.

Graphical Environment

The standard graphical environment in Tiny Core Linux uses a modified version of the TinyX X server, forked from the Xorg project before the relevent code was removed. This provides small Xvesa (x86) and Xfbdev (x86, x86_64) X server executables for unaccelerated graphics. The full Xorg server and its hardware-accelerated graphics drivers can be installed from TCZ extensions, as well as Wayland.

Graphical system tools developed specifically for Tiny Core, such as the "Apps" extension browser, use the lightweight FLTK graphics toolkit. The default window manager is also the FLTK-based FLWM, although various alternatives are available as TCZ extensions.


Home|About|Projects|Links


Content Copyright Kevin Koster 2023