dCore is a live Linux system based on Tiny Core Linux. It consists of a minimal base install that provides the necessary tools to set up and configure a fully personalized system. Automated scripts are used to download Debian packages directly from Debian or Ubuntu repositories and convert them into SCEs. The default shell is Ash, the default text editor is vi. When booting into graphics a control panel, basic text editor and multiple terminal emulators are available. Most system administration is performed via CLI (command line interface). It can be installed frugally onto a drive for persistence and works with a variety of boot loaders.
An SCE (self-contained extension) 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). They are imported from dCore, Debian or Ubuntu repositories. Loading them links it's contents into the RAM mounted file system for use. 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. Review the dCore Extension Management section for more information.
Most newly created SCEs work. Even the Gnome Desktop Environment was recently tested to function well. If necessary, most software can be made to work with additional tweaking or a startup script, created by the dCore developer. Select prebuilt extensions can also be found in the dCore repository by using the
Tiny Core Linux was founded and initially developed by Robert Shingledecker, a former Damn Small Linux (DSL) developer. The first stable release was in January 2009. In October 2012, Robert (forum member roberts) first announced what would become dCore, originally developed as a system to port Tiny Core to the Arm architecture.
Jason Williams (forum member Jason W) began helping with dCore development in late 2012/early 2013, ported it to x86 and added an Ubuntu-based dCore. Jason continues to be the primary developer with support from other Tiny Core developers to maintain the shared base. Active development continues and regular updates are released. Community members perform testing, provide feedback and assistance. Everyone is a volunteer.
Click links to review current dCore stable releases and release candidates, which retrieve packages from their respective Debian and Ubuntu repositories. All current offerings receive dCore support plus regular Debian/Ubuntu security and software updates.
Main developer Jason W has too much energy! To provide slightly older offerings and stay current, which Debian calls oldstable and stable respectively. To provide freedom to access software from Debian or Ubuntu, which have diverged in recent years.
Experiment with a new system, learn something new, use something unique, build a system from almost scratch without compiling from source, contribute at a grass roots level. dCore is a minimal install that has access to vast Debian and Ubuntu repositories. It is extensible, customizable and can become a lean CLI home server, specialty machine or full-blown desktop. The system is transparent and relatively simple by design. Scripts can be audited and extensions inspected. It utilizes minimal drive space and system resources with few background services. It reflects most Unix philosophies.
The most common way of using dCore is a frugal installation. This loads the root file system from initrd into RAM and links extensions into it. Persistence is achieved by adding files from an archive. This keeps the installation modular, consisting of individual files for kernel, initrd, extensions and persistence an a storage device. Persistent files may also be set up on a separate partition for quicker access, such as using boot codes for persistent /home and /opt.
Alternatively dCore can be used in cloud mode like Tiny Core, although this would result in a base boot only and require re-importing desired extensions at every boot or manually loading them from an external source (eg. another partition or USB device). Without a persistent setup, all configuration settings would be lost upon shutdown.
A traditional hard drive installation, referred to by founder Robert Shingledecker as 'scatter mode' eventually causing 'system rot', is not supported or encouraged. It defeats the philosophy and purpose of the system, a highly modular, pristine boot environment that is easy to modify and maintain.
As dCore is derived from Tiny Core Linux, there are more similarities than differences. Both share an almost identical base system and are minimal by design. dCore is able to directly access the vast up-to-date Debian and Ubuntu repositories. This allows for easy package installation and security updates without compiling from source. Tiny Core is more mature and runs a little leaner (less drive space, extensions may use less dependencies). It is more GUI friendly for system management (Apps utility is excellent) and more amenable to custom compiling for fine-grained control over software and dependencies utilized.
Without formal benchmarking system performance is reasonably similar, although running comparable software Tiny Core will boot a little faster and utilize less drive space. Extensions from the Tiny Core repository are typically stripped more than Debian/Ubuntu repository software. In addition, dCore automatically installs all basic dependencies specified by Debian/Ubuntu. It also requires drive space to download and store Debian packages and package indexes, extract data and build SCE extensions.
As dCore SCEs are self-contained a system may have the same dependencies located in multiple SCEs, unless advanced strategies are utilized to minimize this duplication. It should be noted this only affects drive space not RAM usage. If drive space is limited, strategies include moving the TCE (Tiny Core extension directory) to a larger partition, installing leaner software, unpacking Debian packages in RAM, purging Debian packages after an SCE is built, making a new SCE dependent on another to share common dependencies and/or using a list file to create an SCE mega-extension (multiple packages into one large SCE that share any duplicate dependencies).
System requirements depend on intended use and software utilized. Although dCore should run on most low specification hardware (eg. earlier Pentiums), it is a modern system using a recent kernel. A minimum of 64 MB RAM is recommended for a CLI/text only system and 256-512mb for a graphic system. Better hardware is preferred. A swap partition or file is recommended for systems with < 1 GB RAM and dCore automatically utilizes an existing Linux swap partition if present. A swap file can be created in graphic mode via Control Panel → Swapfile Tool. For a persistent frugal installation a 1 GB partition is adequate for a basic desktop, although 2-5 GB is preferred for a larger installation and/or running heavier software. Most graphic, sound, ethernet and wireless hardware is supported. Additional information can be found on the dCore Base Installation page.
Previously x86, Arm V7hf, Allwinner-A10, GK802 and Allwinner-A20 were supported, still available from Tiny Core Linux ports. Present development is focused on x86 architecture. As noted above, most graphic, sound, ethernet and wireless hardware is supported. Post on the forum if encountering difficulties.
Although not optimized for this hardware, dCore runs well on 64 bit systems. Note dCore began with the Allwinner A10 architecture and was later ported to x86, where most of the development and testing occurs, which still benefits A10. It can be ported to 64 bit, although the restraint is the developer's time and hardware resources.
Download dCore from the Tiny Core Linux ports page, select desired hardware (dCore x86 or dCore Arm).
Use above link, in the case of x86 hardware navigate to the flavor of your choice. Experienced users may download the base file system and kernel individually (eg. 11mb dCore-jessie.gz, 3mb vmlinuz-jessie), manually copy them to the desired boot directory, configure and boot with an existing boot loader. This will boot into a CLI environment only until a TCE directory (Tiny Core extension directory for SCE extensions) with graphic software is setup.
Otherwise download either the small dCore ISO (eg. 16mb dCore-jessie.iso) or larger dCorePlus ISO (eg. 74mb dCorePlus-jessie.iso). The smaller ISO consists of the base file system and kernel with a additional isolinux files for live booting. It will initially only boot into a CLI environment until a TCE directory is set up to download and import extensions, such as Xorg and a Window Manager.
The larger dCorePlus ISO contains these same files plus an ~57mb mega-SCE that includes tce-setdrive, Xvesa, Xtc, Xprogs, wireless, flwm_topside, b43-fwcutter, dosfstools, iw, wireless-3.16.6-tinycore and aterm. This will boot into a graphic environment running Xvesa and the lightweight flwm_topside Window Manager with support for most wireless hardware. If desired, this default SCE can later be removed by the user and replaced by the software of choice. The dCorePlus ISO is recommended for most new users.
The ISO releases are based on a relatively recent stable dCore release. As dCore is in active development, experienced users who want to track or participate in development (audit scripts, submit patches, test and feedback) should utilize the latest release candidate instead. After dCore is installed, stable updates can be downloaded by running
version -c or
version -r for release candidates.
The usual installation method is to download the desired dCore ISO and either burn it onto a bootable CD/DVD or use the dd command to transfer ISO contents to the USB device (Windows users see dd for Windows). Always exercise caution when using the dd command, it is destructive and selecting an incorrect drive will wipe data. Note UNetbootin is not supported. Ensure the computer BIOS is set to boot from the desired medium and review the onscreen dCore boot instructions. A TCE directory will need to be set up to create a persistent system. A frugal install and boot loader will need to be installed to boot from a traditional hard drive. Review the dCore Base Installation page for more information.
No need to burn a CD/DVD or get a USB stick. Simply download the base file system (dCore-*.gz) and kernel (vmlinuz-*) to the desired boot directory. A small seperate boot partition may be preferred (<100mb) but is not necessary. Boot the pre-existing Linux install where the existing boot manager's configuration files reside and modify the boot configuration. More information and examples can be found on the dCore Base Installation page.
If the system requires a wireless connection download and use the larger dCorePlus ISO, presently only available in dCore-jessie, which includes wireless tools. Alternatively, temporarily use a wired connection to import then configure all necessary wireless software. For more information review the dCore Wireless section.
Review the dCore Basic Usage Guide.
Numerous Window Managers and Desktop Environments work on dCore, review the dCore X Window System page.
If the documentation was followed:
- A TCE directory should be set up.
- xorg-all and a supported Window Manager should be imported.
- /etc/sysconfig/tcedir/sceboot.lst should contain xorg-all and the Window Manager.
- The boot loader should use the desktop=<desired_window_manager> boot code (eg. desktop=flwm).
If this fails try utilizing kernel modules for graphic chips:
uname -rto confirm kernel version.
sce-import -b graphics-<your_kernel_version>-tinycore.
If unsuccessful, like any Linux distribution, additional configuration will be required, which may include trialing:
- An /etc/X11/xorg.conf file (run sudo Xorg -configure, place as /etc/X11/xorg.conf) or /etc/X11/Xorg.conf.d/ entry, add files to backup for reboot persistence.
- A custom xorg.conf file, default configuration often does not work, may include disabling/enabling graphic options, changing resolution or monitor frequency, etc.
- A known working xorg.conf file from another distribution on the same hardware.
- The vesa driver, as an old graphic chip may have lost official support.
Review /var/log/Xorg.0.log for hints after a failed
startx attempt. If still problems review online Xorg documentation or post on the forum for assistance.
If using a supported Window Manager the built-in Control panel (System Tools → Control Panel) has an 'SCE Tools' button to auto-launch
sce-import and other commonly used SCE management commands. Otherwise from a terminal run cpanel or sce-tools. This is most suitable for new users, those that prefer graphic applications or those that do not require fine-grained control over SCE extension management.
Traditionally dCore extensions are managed via command line using the dCore ''sce-import'' Command. As software is usually installed for use at boot time, a user would typically run
sce-import -b SCE (eg. sce-import -b nano), where SCE is the desired Debian package name. Running simply
sce-import will allow searching for the starting characters of a desired package name. Running
sce-import -c will allow searching for packages that contain the desired search characters. The desired Debian package and dependencies are downloaded directly from the applicable Debian or Ubuntu repository and the SCE creation process can be monitored in the terminal. An imported SCE still needs to be loaded into the filesystem for use, review the dCore ''sce-load'' Command and dCore ''sce-ondemand'' Command.
The dCore ''sce-import'' Command can be used to search for most package names. Otherwise familiarity with Debian and Ubuntu packages is beneficial and internet research may be required. Simple example, user wishing to install the game 'rogue' needs to know it is from the bsdgames-nonfree package. Use these links or a search engine to find desired packages: https://www.debian.org/distrib/packages and http://packages.ubuntu.com/. Searching package 'descriptions' is usually most useful.
Debian based dCores automatically have access to the main, contrib, non-free and security repositories. Ubuntu based dCores automatically have access to the main, universe, multiverse and security repositories. dCore does not utilize a sources.list file. Additional repositories can be added in /opt/debextra/. Simply create a non-executable appropriately named text file containing the exact repository information for each repository added. This repository will then be accessible via
sce-import to search and install software. Additional information can be found in the dCore Repositories wiki link and dCore Extra Repositories sub-forum.
Scripts that make up the dCore tools for importing and handling extensions are available at http://git.tinycorelinux.net, most relevant scripts can be found in /usr/bin. This link summarizes the most recent 4.2.9 kernel configuration. This forum thread briefly explains how a base file system (initrd) is created for an upcoming dCore release. Important scripts at the heart of the Tiny Core base system can be found in /etc/init.d/, including tc-config and tc-functions.
dCore makes it easy to get a system running. The user determines the level of security required, dependent on use case. There are numerous facets to system security, which can not be adequately addressed within the scope of a FAQ page. Numerous online resources are available regarding Linux security and hardening. Some noteworthy mentions:
- Available boot codes include secure (set password), protect (password encrypt backup), noautologin.
- BIOS, boot loader and login passwords can be configured.
- An alternate user name can be specified.
- A firewall can be installed and configured.
- Running from a live CD/DVD ensures the initrd and kernel remain untampered.
- By default only the TCE partition is mounted after boot.
- SCE md5sum files can be copied to other media and periodically checked against the extensions.
- Removing an SCE removes all it's files and dependencies, aside from any configuration files.
- A base install runs with few background processes.
- Most networking/sharing applications are not in base (eg. Samba, NFS, SSH, browser, chat).
- The user decides what software gets installed.
- Scripts, in-house software and SCEs are transparent and accessible for audit.
- The user is free to audit Debian/Ubuntu repository source code, modify and custom compile if desired.
- Using removable media allows the installation to be securely stored for safekeeping.
dCore is presently used primarily for desktops, laptops and home servers. Theoretically, if set up and configured correctly a lean dCore install should have a small attack surface. Most tools offered by Debian and Ubuntu work with dCore and regular software updates are easy to complete. As dCore is in active development and bug fixes are ongoing, it is not yet as stable as more mature Linux distributions. It would be prudent to run a test server for several weeks prior to making a formal decision. Feedback is appreciated via the forum. More information can be found on the Server Applications wiki page.
Visit the forum and review old posts, note the dCore specific sub-forums. Request assistance on the forum. Provide a reasonable summary of the issue and if applicable mention what was tried, dCore flavor and version (available via
version), install method, hardware utilized, etc. Please review the Tiny Core forum rules before posting. There are numerous online articles about how to ask a good question and how to get help with a technical problem.