UPX is a portable, extendable, high-performance executable packer for several different executable formats. It achieves an excellent compression ratio and offers very fast decompression. Your executables suffer no memory overhead or other drawbacks. UPX supports vmlinuz/386, linux/elf386, linux/386, win32/pe, dos/exe, djgpp2/coff, and many more.
UPX, the Ultimate Packer for eXecutables, is an open source executable packer (EXE packer) supporting a number of file formats. It is free software, released under the GNU General Public License.