Core Concepts

On behalf of the Tiny Core Team, welcome. Please take the time to read this document and understand the philosophies behind Tiny Core.

One quick user beware: Tiny Core is not a turn-key operating system. At least initially, almost all users will require internet access to the online repository.

Philosophies


As a quick summary, Tiny Core:
Loads itself into RAM from storage, then mounts applications on storage, or installs applications to RAM from storage. See a diagram of the Tiny Core file architecture. --- Or view a video overview

Tiny Core is different because users are not encouraged to perform a 'traditional', hard-drive installation of the operating system. Sure, a hard drive installation is possible, but Tiny Core is designed to run from a RAM copy created at boot time. Besides being fast, this protects system files from changes and ensures a pristine system on every reboot. Easy, fast, and simple renew-ability and stability is a principle goal of Tiny Core.

Frugal install


Frugal is the typical installation method for Tiny Core. That is it is not a traditional hard drive installation, which we call "scatter mode", because all the files of the system are scattered all about the disk. With frugal, you basically have the system in two files, e.g., bzImage and tinycore.gz whose location is specified by the boot loader. Any user files and extensions are stored outside the base OS.

Boot codes


Depending upon how how Tiny Core is installed (GRUB, LILO, CD, USB stick ...), users have the option to use boot codes on each reboot (CD, etc), or to store those codes in a boot configuration file (GRUB, LILO, etc.).

Boot codes (boot arguments) affect how Tiny Core operates by defining options at boot-time. There are lots of boot codes. To view all the available options, peruse the boot code lists by pressing F2, F3 or F4 at the CD boot prompt.

The boot code base is notable. Use base to simulate Default Mode and skip all application extension installing or mounting. This is a useful tool for trouble-shooting, extension building, upgrading ... and just checking out how fast Tiny Core can boot on your hardware.

USB and External Storage Devices Special Requirements


Tiny Core can be instructed to search for data on external devices at boot time:
a USB pen drive, compact flash, or other portable media. Below, the Mode Descriptions discuss Personal Persistent Repositories of extensions (PPR) or Installed applications (PPI) - those are prospects for external storage.

Sometimes, hardware doesn't wake up fast enough for Tiny Core's boot sequence, though. If the hardware doesn't wake up in time, Tiny Core will move on and finish booting without that data.

If you use a PPR or PPI on external media, it may be necessary to use the boot code waitusb=5 or similar. This pauses the pauses the boot process for five seconds, waiting for slow devices to register with the system bus.

Dependency Checking and Downloading


Tiny Core makes application-getting as easy as possible. The Appbrowser provides application details from individual .info files - this is enlightening reading material when choosing applications. Always read the .info files, and re-read them before upgrading to catch changes and concerns.

Dependencies are the pieces (other applications) required for an application. In short, the Tiny Core Appbrowser will take care of downloading and checking dependencies for you.

Modes of Operation


The Modes of Operation mix up how Tiny Core Loads, Mounts, and Installs at boot time (see Philosophies, above, if you want to clarify what those three things mean here). Tiny Core has three main Modes:
Again, some may say there is a "Traditional Mode: Install to Hard Drive", but that's not really a Mode at all. If you want to do it, go right ahead. It's just not one of the original goals of the project, so expect the normally slim documentation to be slimmer.
Details on each Mode follow in the "Mode Descriptions" below.

The Default Mode: Cloud/Internet


By default, Tiny Core Linux operates like a Cloud/Internet client. In Default Mode:

Since Cloud/Internet Mode operates out of RAM, it runs fast. Cloud/Internet Mode is nomadic and quick-booting. Application extensions are lost on reboot, but only the system files have to be restored.
If you would like applications stored locally and set up on each reboot, then consider the Mount and Copy Modes.

The Mount Mode of Operation: TCE/Install


This is the most widely used and recommended method for using Tiny Core.

See an overview of the system architecture of this mode.


In Mount Mode:

Unless specified with a boot code of tce=xdyz Tiny Core will searche for and uses the /tce of downloaded extensions. Applications stored in the /tce are optionally mounted at boot time.

Tiny Core uses the Appbrowser to place application extensions in this tce/ and flag them as either "OnBoot" (mount at boot) or "On Demand" (do not mount at boot, but create a special menu section for easy access and display an icon if available).

To establish the tce/ boot with the one time boot code of tce= (see the wiki and forum topics on the tce= boot code.

The Copy Mode of Operation: TCE/Install + copyfs indicator


If you haven't, read the Mount Mode description above.

See an overview of the system architecture of this mode.


In Copy Mode:

Copy Mode briefly extends the boot time to gain some of the RAM-run speed of Default Mode and the persistence of a pure Mount Mode.

In Copy Mode, it is important to note that extensions can be either mounted or copied into RAM. The Appsaudit program makes this flexibility possible by keeping track of user selections.

Backup/Restore and Other Persistence Options:


Aside from the Mount Mode and the tce directory of application extensions, Tiny Core supports persistent/permanent:
Backup and Restore of personal settings, and
Persistent /home and /opt directories.

Backup/Restore


Tiny Core includes filetool for saving personal settings and data. The text file /opt/.filetool.lst lists files and directories to be backed up at power down and restored at reboot. The list may be changed manually (using vi, nano, etc) or via the scripts in the Tools menu; note that the entry for /opt/filetool.lst should never be removed from the list itself. filetool also supports exclusion of particular files via /opt/xfiletool.lst.

By default, filetool.lst includes the entire home/tc directory, and xfiletool.lst excludes some unnecessary caches and temporary directories.

filetool writes backup mydata.tgz. The location of mydata.tgz can be initially set using the boot option restore=hdXY, restore=hdXY/directory, or, after boot, by selecting Backup/Restore from the Control Panel. If the restore code is no used, Tiny Core will search for mydata.tgz in available root directories at boot. Conversely, the boot option norestore ignores any existing backup files, a useful tool for trouble-shooting and upgrading.

Further settings and configurations are stored or executed using /home/tc/.xsession, /home/tc/.profile, /opt/bootlocal.sh, and /opt. Search the forum and wiki for information on these and other custom settings files.

Persistent Home


Just as Tiny Core offers persistence options for downloaded application extensions, so does it for your home directory. These are set using boot codes/options.

home=hdXY will automatically setup /home/tc to "bind" to /mnt/hdXY/tchome. When using the home boot code, mydata.tgz is not created - personal data backups must occur in a more traditional way. The home boot code lets Tiny Core coexist with other Linux installations by inserting the tc user directory under a pre-existing /home directory. Be careful, as the initial use of the boot code will creat this directory and its content. Also, Tiny Core cannot auto-detect a persistent home directory, so the home boot option is always required.

Bottom Matter


If you have made it this far, congratulations! You're ready to get Tiny Core and get started. Browse the wiki, the forums, the download pages, and join the community conversation.

Welcome from the Tiny Core Team.