Table of Contents
dCore vs Tiny Core Extensions
Based on Micro Core, dCore shares the same basic concepts and a similar minimal base. Just as Tiny Core is essentially Micro Core with additional extensions and a graphic environment, dCore also has a minimal base that is capable of importing extensions and booting into a graphic environment.
There are, however, several differences. The most obvious is how dCore handles packages and creates extensions. Unlike Tiny Core, dCore is capable of importing packages directly from Debian or Ubuntu repositories. Thus dCore can be thought of as *Core with access to the enormous realm of Debian or Ubuntu repositories.
Tiny Core
Tiny Core utilizes TCZ extensions (not supported by dCore). In the Into the Core book, TCZ extensions (type .tcz) are described as loop-mounted squashfs archives, with specified parameters, usually symlinked into the main file system. The archive can be either mounted and symlinked or copied to the file system (usually RAM) for faster execution. It consists of the direct file system tree that can be found when installing an application or library. It usually consists of the binary, desktop file, program icon and any required data files. These extensions are compiled by either a Tiny Core Linux developer or a user-contributor and are usually retrieved from Tiny Core's repositories using the Apps utility. Each TCZ is a single application or library that usually requires other TCZ extensions for functionality (ie. dependencies). Applying software updates requires re-compiling the relevant extension(s) and/or upgrading through Apps.
A Tiny Core extension description from ragingpenguin.com is quoted below (link not available). Tiny Core continues to utilize the TCZ extension format, although SCM extensions no longer appear to be utilized.
“The TCZ extension system appears to be based on the original MyDSL system made by Robert [Shingledecker, editor's note], and it works in much the same way. That means packages are attached to a temporary layered filesystem during boot, instead of being extracted directly into a permanent root directory. The packages themselves are read-only Squashfs archives, and can either be loaded into RAM for a performance boost, or just mounted. TCZ extensions can be considered “normal” packages. That is, they have dependencies, config files, and in some cases, they may even have setup scripts.
SCM extensions function like mount-only TCZs. SCM stands for Self Contained Module. It is basically a resurrection of the old .uci compressed image system that Robert made for DSL, except now the package files are SquashFS archives. Because SCMs are self contained, the packager or developer is free to experiment with hazardous or unavailable libraries, binaries, and scripts without breaking other parts of the system. Some SCMs may contain multiple binaries or libraries that are meant to work together. For example, an SCM for a media player may contain a lot of codecs and most (if not all) of the dependencies required for it to run. Other than that, SCMs can have dependencies, config files, and setup scripts just like TCZs.”
dCore
dCore uses the deb2sce script to transform Debian or Ubuntu packages into SCE extensions (self-contained extensions, type '.sce'). An SCE, therefore, consists of a converted Debian package and all it's dependencies, packed into it's own file system and compressed into a single file (SquashFS). This is similar to the SCM extension format quoted above. The contents of an SCE are transparent and once mounted can be inspected by exploring /tmp/tcloop/, otherwise copy the extension to a temporary directory and run unsquashfs SCE. The sce-update
command is used to check SCE(s) for updates, which calls sce-import
to re-import the updated extension. Like Tiny Core, a reboot is necessary to apply updates if the old version extension has already been loaded into RAM for usage.