Core ConceptsOn 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.
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 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.
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
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:
- Default Mode: Cloud/Internet
- Mount Mode: TCZ/Install
- Copy Mode: TCZ/Install + copy2fs.flg/lst
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:
- Tiny Core boots entirely into RAM.
- Users run the Appbrowser to browse the repository and download applications.
- Application Extensions (downloaded applications) last only for the current session.
- Tiny Core just uses as much RAM as possible.
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
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:
- Applications are stored locally in a directory named tce on a
persistent store, .e..g, a supported disk partition (ext2,ext3.ext4,vfat, or fat)
- Applications are optionally mounted on reboot (see onboot.lst in forum and wiki).
- Mounting applications saves RAM for other uses.
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:
- Application Extensions are copied into RAM instead of mounted.
- Applications can be RAM-loaded in bulk (copy2fs.flg), selectively loaded into RAM (copy2fs.lst), or mounted.
- The Appsaudit program tracks installation/loading options (bulk copy, selective copy, etc).
- Boot times are longer, since copying to RAM takes more time than mounting.
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.
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.
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.
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.