Difference between revisions of "Linux Tiny"

From eLinux.org
Jump to: navigation, search
(add link to new LWN article)
(Resources)
 
(31 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
== Introduction ==
 
== Introduction ==
The linux-tiny patchset is a series of patches against the 2.6 mainline Linux kernel to reduce its memory
+
The goal of the linux-tiny project is to reduce the memory
and disk footprint, as well as to add features to aid working on small systems. Target users are
+
and disk footprint of the mainstream Linux kernel, 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.
+
developers of embedded system and users of small or legacy machines such as 386s and handheld devices.
  
To the degree possible, the patchset should serve as a staging ground for patches, until they can
+
Patch releases against the mainstream Linux kernel have been discontinued. Instead of spending a valuable amount of time carrying patches forward
be mainlined.  Therefore, over time the set of patches will fluctuate as new patches
+
from one kernel version to the next, we chose to focus on a few patches and spend our time trying to get them merged into the mainline kernel.
are submitted, and other patches are mainlined.
+
 
 +
Visit the [[Tiny-FAQ|FAQ]] for more information.
  
 
== Resources ==
 
== Resources ==
* Project home page: [http://www.selenic.com/tiny-about/ Linux Tiny]
+
New project home page (as of 2011) : http://tinylab.org/
* Project mailing list: [http://selenic.com/mailman/listinfo/linux-tiny Mailing List]
+
* [[Image:Alert.gif]]  [http://tree.celinuxforum.org/CelfPubWiki/TechConference2005Docs?action=AttachFile&do=get&target=linux-tiny.pdf Linux-tiny Presentation] by Matt Mackall, delivered at CELF's Technical Conference in April 2005.
+
* {{pdf|Linux-tiny-revival-jamboree16.pdf|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.
+
  
== News ==
+
New git archive for patches (as of 2011)
* A new LWN.net article is at: [http://lwn.net/Articles/251573/ LWN Article (Oct 2007)]
+
* git://gitorious.org/tinylab/tinylinux.git
** The same article is at LinuxWorld at: http://www.linuxworld.com/news/2007/100307-kernel.html
+
* @https://gitorious.org/tinylab/tinylinux
* A Linux Weekly News article about the project is at: [http://lwn.net/Articles/63516/ LWN Article (Dec 2003)]
+
  
== Original Announcements and e-mail ==
+
New discussion group:
The original (Dec 11, 2003) announcement about the patchset, to the kernel mailing list, is available here:
+
* tinylab [at] googlegroups [dot] com
* [http://lwn.net/Articles/62858/ Announcement]
+
** Subscribe by sending an empty email to tinylab+subscribe [at] googlegroups. com
  
Here are some other announcements from Matt Mackall to LKML:
+
=== Old Resources ===
*[http://www.ussg.iu.edu/hypermail/linux/kernel/0312.3/0454.html 2.6.0-tiny1 Dec 27, 2003]
+
*[http://www.ussg.iu.edu/hypermail/linux/kernel/0401.0/0403.html 2.6.1-rc1-tin1 Jan 2, 2004]
+
*[http://www.ussg.iu.edu/hypermail/linux/kernel/0401.0/1256.html 2.6.1-rc1-tiny2 Jan 6, 2004]
+
  
Recent discussion thread on lkml is summarized at: [http://kt.zork.net/kernel-traffic/latest.html#6 LKML Thread Summary]
+
* Project mailing list: [http://selenic.com/mailman/listinfo/linux-tiny Mailing List], [http://selenic.com/pipermail/linux-tiny/ archives]
The thread is available at [http://www.google.com/groups?hl=en&lr=&ie=UTF-8&threadm=19Kuz-872-3%40gated-at.bofh.it&rnum=1&prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26selm%3D19Kuz-872-3%2540gated-at.bofh.it here]
+
* Kernel Size Report presentation by Matt Mackall at Embedded Linux Conference in April 2008. [http://free-electrons.com/pub/video/2008/elc/elc2008-matt-mackall-kernel-size.ogg Video] is available.
 +
* [http://free-electrons.com/pub/conferences/2008/elc/linux-tiny.pdf Linux-tiny presentation] by Thomas Petazzoni ([http://free-electrons.com Free Electrons]) at Embedded Linux Conference in April 2008. [http://free-electrons.com/pub/video/2008/elc/elc2008-thomas-petazzoni-linux-tiny.ogg Video] is available.
 +
* [http://free-electrons.com/articles/linux-tiny/ Linux-tiny presentation] by Michael Opdenacker ([http://free-electrons.com Free Electrons]) at Embedded Linux Conference Europe in November 2007.
 +
* {{pdf|Linux-tiny-revival-jamboree16.pdf|Linux-tiny revival}} presentation given by Tim Bird at the Japan Technical Jamboree #16 in August 2007
 +
* [http://tree.celinuxforum.org/CelfPubWiki/TechConference2005Docs?action=AttachFile&do=get&target=linux-tiny.pdf Linux-tiny Presentation] by Matt Mackall, delivered at CELF's Technical Conference in April 2005.
  
Note that currently, the smallest kernel that is reported in this thread is 197K compressed.
+
== News ==
 +
* A LWN.net article is at: [http://lwn.net/Articles/251573/ LWN Article (Sep 2007), By Jake Edge]
 +
* Michael Opdenacker was announced as the new maintainer.
 +
** See the [http://lkml.org/lkml/2007/9/19/342 project revival message to the kernel mailing list]
 +
* A Linux Weekly News article (2003) about the project is at: [http://lwn.net/Articles/63516/ LWN Article]
  
== Download ==
+
== Old patch releases ==
=== Last release (for 2.6.22.5)  ===
+
A recent Linux-tiny patchset release is available here: [[Media:Tiny-quilt-2.6.22.5-1.tar.gz]]
+
 
+
See [[Linux Tiny Patch Details]] for information about the status of individual sub-patches.
+
 
+
=== Installation Instructions ===
+
These instructions were for the Linux-tiny release for 2.6.22.5.  Adjust accordingly
+
for a different kernel version.
+
 
+
To apply the above patches, you need the referenced kernel (2.6.22) and quilt.
+
Follow these steps:
+
* 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-2.6.22.5.bz2
+
* wget http://elinux.org/images/7/79/Tiny-quilt-2.6.22.5-1.tar.gz
+
* cd linux-2.6.22
+
* bzcat ../patch-2.6.22.5.bz2 | patch -p1
+
* tar -xzf ../Tiny-quilt-2.6.22-5-1.tar.gz
+
* quilt push -a
+
* cd ..
+
* mv linux-2.6.22 linux-2.6.22.5-tiny1
+
 
+
=== Auxiliary tools ===
+
Here is a short shell script for making a tiny-quilt release: [[Media:release-tiny]]
+
 
+
=== Older releases ===
+
  
 +
=== Old release downloads ===
 +
* Linux 2.6.23.0:
 +
** [[Media:Tiny-quilt-2.6.23-0.tar.bz2]]
 +
* Linux 2.6.22.5:
 +
** [[Media:Tiny-quilt-2.6.22.5-1.tar.gz]]
 
* Linux 2.6.22.1:
 
* Linux 2.6.22.1:
 
** [[Media:Tiny-quilt-2.6.22.1-1.tar.gz]]
 
** [[Media:Tiny-quilt-2.6.22.1-1.tar.gz]]
Line 69: Line 49:
 
* Linux 2.6.0 to 2.6.14:
 
* Linux 2.6.0 to 2.6.14:
 
** Older Linux-tiny patchsets can be downloaded from: [http://selenic.com/tiny/ Linux Tiny Patchset]
 
** Older Linux-tiny patchsets can be downloaded from: [http://selenic.com/tiny/ Linux Tiny Patchset]
 +
 +
=== Installation Instructions ===
 +
These instructions were for the Linux-tiny release for 2.6.23.  Adjust accordingly
 +
for a different kernel version.
 +
 +
To apply the above patches, you need the referenced kernel (2.6.23)
 +
and [http://savannah.nongnu.org/projects/quilt quilt]
 +
([http://www.suse.de/~agruen/quilt.pdf overview]).
 +
Follow these steps:
 +
<pre>
 +
$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.tar.bz2
 +
$ tar -xjf linux-2.6.23.tar.bz2
 +
$ wget http://elinux.org/images/3/3c/Tiny-quilt-2.6.23-0.tar.bz2
 +
$ cd linux-2.6.23
 +
$ tar -xjf ../Tiny-quilt-2.6.23-0.tar.bz2
 +
$ quilt push -a
 +
$ cd ..
 +
$ mv linux-2.6.23 linux-2.6.23-tiny1
 +
</pre>
 +
 +
=== Auxiliary tools (for Linux-tiny developers) ===
 +
Here is a short shell script for making a tiny-quilt release: [[Media:release-tiny]]
  
 
== How to use ==
 
== How to use ==
 
In the [[Kernel Size Tuning Guide]], there is a lot of information about how to
 
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.
 
measure kernel size, and how to use the kernel patches and configuration items provided by Linux-tiny.
 +
 +
  
 
== Test Project and Results ==
 
== Test Project and Results ==
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
+
There is a test for Linux-tiny (and kernel configuration option results, in general).
in the patchset, and results from various vendors about their use of Linux-tiny. See [[Linux Tiny Test Project]]
+
Some test results from this test were previously available from the CE Linux Forum test lab, at:
 +
http://testlab.celinuxforum.org/otlwiki/ConfigSizeTestResults (link is now broken).
  
 +
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]]
 
There are some miscellaneous usage notes at: [[Linux Tiny Notes]]
  
Line 83: Line 93:
 
See [[Linux Tiny Patch Ideas]]
 
See [[Linux Tiny Patch Ideas]]
  
== License ==
 
The Linux-tiny patches apply against the Linux kernel, and are provided under the GNU General
 
Public License (GPL), version 2 only [http://www.fsf.org/licensing/licenses/info/GPLv2.html].  (This is the same license as the Linux kernel.)
 
  
[[Category: Linux Tiny]]
+
 
 +
== Original Announcements and e-mail ==
 +
The original (Dec 11, 2003) announcement about the patchset, to the kernel mailing list, is available here:
 +
* [http://lwn.net/Articles/62858/ Announcement]
 +
 
 +
Here are some other announcements from Matt Mackall to LKML:
 +
*[http://www.ussg.iu.edu/hypermail/linux/kernel/0312.3/0454.html 2.6.0-tiny1 Dec 27, 2003]
 +
*[http://www.ussg.iu.edu/hypermail/linux/kernel/0401.0/0403.html 2.6.1-rc1-tin1 Jan 2, 2004]
 +
*[http://www.ussg.iu.edu/hypermail/linux/kernel/0401.0/1256.html 2.6.1-rc1-tiny2 Jan 6, 2004]
 +
 
 +
Recent discussion thread on lkml is summarized at: [http://kt.zork.net/kernel-traffic/latest.html#6 LKML Thread Summary].
 +
The thread is available at [http://www.google.com/groups?hl=en&lr=&ie=UTF-8&threadm=19Kuz-872-3%40gated-at.bofh.it&rnum=1&prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26selm%3D19Kuz-872-3%2540gated-at.bofh.it here].
 +
 
 +
Note that currently, the smallest kernel that is reported in this thread is 197K compressed.
 +
 
 +
 
 +
[[Category:Linux Tiny]]

Latest revision as of 00:14, 18 April 2012

Introduction

The goal of the linux-tiny project is to reduce the memory and disk footprint of the mainstream Linux kernel, 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 handheld devices.

Patch releases against the mainstream Linux kernel have been discontinued. Instead of spending a valuable amount of time carrying patches forward from one kernel version to the next, we chose to focus on a few patches and spend our time trying to get them merged into the mainline kernel.

Visit the FAQ for more information.

Resources

New project home page (as of 2011) : http://tinylab.org/

New git archive for patches (as of 2011)

New discussion group:

  • tinylab [at] googlegroups [dot] com
    • Subscribe by sending an empty email to tinylab+subscribe [at] googlegroups. com

Old Resources

News

Old patch releases

Old release downloads

Installation Instructions

These instructions were for the Linux-tiny release for 2.6.23. Adjust accordingly for a different kernel version.

To apply the above patches, you need the referenced kernel (2.6.23) and quilt (overview). Follow these steps:

 $ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.tar.bz2
 $ tar -xjf linux-2.6.23.tar.bz2
 $ wget http://elinux.org/images/3/3c/Tiny-quilt-2.6.23-0.tar.bz2
 $ cd linux-2.6.23
 $ tar -xjf ../Tiny-quilt-2.6.23-0.tar.bz2
 $ quilt push -a
 $ cd ..
 $ mv linux-2.6.23 linux-2.6.23-tiny1

Auxiliary tools (for Linux-tiny developers)

Here is a short shell script for making a tiny-quilt release: Media:release-tiny

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 a test for Linux-tiny (and kernel configuration option results, in general). Some test results from this test were previously available from the CE Linux Forum test lab, at: http://testlab.celinuxforum.org/otlwiki/ConfigSizeTestResults (link is now broken).

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

See Linux Tiny Patch Ideas


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:

Recent discussion thread on lkml is summarized at: LKML Thread Summary. The thread is available at here.

Note that currently, the smallest kernel that is reported in this thread is 197K compressed.