|This article relies too much on references to primary sources. (May 2009) (Learn how and when to remove this template message)|
|Original author(s)||Nigel Cunningham|
|Stable release||3.14 / March 16, 2014|
|License||GNU General Public License|
TuxOnIce (formerly known as Suspend2) is an implementation of the suspend-to-disk (or hibernate) feature which is available as patches for the 2.6 Linux kernel. During the 2.5 kernel era, Pavel Machek forked the original out-of-tree version of swsusp (then at approximately beta 10) and got it merged into the vanilla kernel, while development continued in the swsusp/Suspend2/TuxOnIce line. TuxOnIce includes support for SMP, highmem and preemption. Its major advantages over swsusp are:
- It has an extensible architecture that allows for arbitrary transformations on the image and arbitrary backends for writing the image;
- It prepares the image and allocates storage prior to doing any storage and accounts for memory and storage usage very carefully, thereby becoming more reliable;
- Its current modules for writing the image have been designed for speed, combining asynchronous I/O, multithreading and readahead with LZF compression in its default configuration to read and write the image as fast as hardware is able;
- It has an active community supporting it via a wiki, mailing lists and irc channel (see the TuxOnIce website);
- It is more flexible and configurable (via a /sys/power/tuxonice interface);
- Whereas the current swsusp (and uswsusp) implementations support writing the image to one swap device only, TuxOnIce supports multiple devices in any combination of swap files and swap partitions. It can also write the image to an ordinary file, thereby avoiding potential race issues in freeing memory when preparing to suspend.[dubious ]
- It supports encryption by various methods;
- It can store a full image of memory (resulting in a more responsive system post-resume), while uswsusp and swsusp write at most half the amount of RAM.
TuxOnIce was originally called 'Suspend2' because after the beta releases (at the time when Pavel forked the code base), there was a 1.0 release and then a 2.0 release. The name 'Suspend2' developed as a contraction of 'Software Suspend 2.x'.
Some efforts have been made over time to merge TuxOnIce into the vanilla kernel, but these have been opposed by Pavel, primarily (it seems) because Pavel believes much of the suspend-to-disk process can and should be run from userspace (see uswsusp), while Nigel Cunningham thinks this code belongs in the kernel. Nigel has stated both his desire and frustration in getting the TuxOnIce specific features merged back into mainline and is currently not actively pursuing for it.