The linux-tiny patchset is a series of patches against the 2.6 mainline Linux kernel to reduce its memory and disk footprint, as well as to add features to aid working on small systems. Target users are developers of embedded system and users of small or legacy machines such as 386s and handhelds.
To the degree possible, the patchset should serve as a staging ground for patches, until they can be mainlined. Therefore, over time the set of patches will fluctuate as new patches are submitted, and other patches are mainlined.
- Project home page: Linux Tiny
- Project mailing list: Mailing List
- Linux-tiny Presentation by Matt Mackall, delivered at CELF's Technical Conference in April 2005.
- https://elinux.org/images//8/83/Pdf.gif Linux-tiny revival presentation given by Tim Bird at the Japan Technical Jamboree #16 in August 2007
- This presentation describes the current status of the Linux-tiny patches, describes the improved memory accounting feature, gives some size number for various config options, and describes the project revival effort.
- A new LWN.net article is at: LWN Article (Sep 2007), By Jake Edge
- The same article is at LinuxWorld at: http://www.linuxworld.com/news/2007/100307-kernel.html
- A Linux Weekly News article about the project is at: LWN Article (Dec 2003)
Last release (for 2.6.23)
A recent Linux-tiny patchset release is available here: Media:Tiny-quilt-2.6.23-0.tar.bz2
See Linux Tiny Patch Details for information about the status of individual sub-patches.
These instructions were for the Linux-tiny release for 220.127.116.11. Adjust accordingly for a different kernel version.
- wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.tar.bz2
- tar -xjf linux-2.6.22.tar.bz2
- wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-18.104.22.168.bz2
- wget http://elinux.org/images/7/79/Tiny-quilt-22.214.171.124-1.tar.gz
- cd linux-2.6.22
- bzcat ../patch-126.96.36.199.bz2 | patch -p1
- tar -xzf ../Tiny-quilt-2.6.22-5-1.tar.gz
- quilt push -a
- cd ..
- mv linux-2.6.22 linux-188.8.131.52-tiny1
Here is a short shell script for making a tiny-quilt release: Media:release-tiny
- Linux 184.108.40.206:
- Linux 220.127.116.11:
- Linux 18.104.22.168
- Linux 2.6.0 to 2.6.14:
- Older Linux-tiny patchsets can be downloaded from: Linux Tiny Patchset
How to use
In the Kernel Size Tuning Guide, there is a lot of information about how to measure kernel size, and how to use the kernel patches and configuration items provided by Linux-tiny.
Test Project and Results
There is an test for Linux-tiny (and kernel configuration option results, in general). Some test results from this test are available from the CE Linux Forum test lab, at: http://testlab.celinuxforum.org/otlwiki/ConfigSizeTestResults
The CELF System Size working group has worked extensively with the Linux-tiny patch set. There is a script to produce a report of size reductions for the individual patches in the patchset, and results from various vendors about their use of Linux-tiny. See Linux Tiny Test Project
Old usage notes
There are some miscellaneous usage notes at: Linux Tiny Notes
Ideas and patch candidates
The Linux-tiny patches apply against the Linux kernel, and are provided under the GNU General Public License (GPL), version 2 only . (This is the same license as the Linux kernel.)
Original Announcements and e-mail
The original (Dec 11, 2003) announcement about the patchset, to the kernel mailing list, is available here:
Here are some other announcements from Matt Mackall to LKML:
Note that currently, the smallest kernel that is reported in this thread is 197K compressed.