UPX stands for the "Ultimate Packer for eXecutables". Its home page is http://upx.sourceforge.net/ .
Overview from their web site.
UPX is a versatile executable packer with the following features:
- excellent compression ratio: typically compresses better than WinZip/zip/gzip, use UPX to decrease the size of your distribution !
- very fast decompression: more than 10 MB/sec even on my old Pentium 133
- no memory overhead for your compressed executables
- safe: you can list, test and unpack your executables. Also, a checksum of both the compressed and uncompressed file is maintained internally.
- portable: UPX is written in portable endian-neutral C++
- extendable: because of the class layout it's very easy to add new executable formats or new compression algorithms
- free: UPX is distibuted with full source code under the GNU General Public License, and may be used freely even with commercial programs.
- universal: UPX can pack a number of executable formats:
atari/tos
djgpp2/coff
dos/com
dos/exe
dos/sys
linux/386
rtm32/pe
tmt/adam
watcom/le (supporting DOS4G, PMODE/W, DOS32a and CauseWay)
win32/pe