# UPX

> free and open source executable packer software

**Wikidata**: [Q1325011](https://www.wikidata.org/wiki/Q1325011)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/UPX)  
**Source**: https://4ort.xyz/entity/upx

## Summary
UPX (Ultimate Packer for Executables) is a free and open-source software utility for compressing executable files. Its primary purpose is to reduce the file size of a program, which can decrease storage requirements and download times. The software supports a wide variety of executable formats across multiple operating systems and hardware architectures.

## Key Facts
- **Primary Use:** Executable compression
- **Creator:** Markus F.X.J. Oberhumer
- **License:** GNU General Public License, version 2.0 or later, with special exceptions for commercial use.
- **Latest Stable Version:** 4.0.0 (released October 28, 2022)
- **Programming Language:** Assembly language
- **Supported Operating Systems:** Linux, Microsoft Windows, macOS, DOS, Atari TOS
- **Supported Hardware Platforms:** Motorola 68000, MIPS architecture, PowerPC

## FAQs
### Q: What is UPX used for?
A: UPX is used for executable compression. It takes a compiled program file and packs it into a smaller, compressed version that decompresses itself in memory when run, functioning identically to the original.

### Q: Is UPX free for commercial use?
A: Yes, UPX is free for commercial use. While it is licensed under the GNU GPL v2+, it includes special exceptions that grant free usage for commercial programs, as stated in its license agreement.

### Q: What operating systems does UPX run on?
A: UPX supports a wide range of operating systems, including modern platforms like Microsoft Windows, Linux, and macOS, as well as older systems like DOS and Atari TOS.

## Why It Matters
UPX solves the problem of large executable file sizes, which is significant for software distribution and storage. By compressing program files, it makes them faster to download over networks and allows them to consume less disk space. This was particularly critical in the era of slower internet connections and limited storage capacity, but it remains relevant for embedded systems, mobile applications, and efficient software delivery.

Its cross-platform and cross-architecture support makes it a highly versatile tool for developers working on diverse systems. Furthermore, its open-source nature and commercial-friendly license have made it an accessible and widely adopted utility in the software development community. UPX provides a reliable way to optimize application size without altering the program's functionality, playing a key role in software optimization and deployment.

## Notable For
- **Broad Platform Support:** UPX is notable for its ability to handle numerous executable formats across a wide range of operating systems, including Windows, Linux, macOS, DOS, and Atari TOS.
- **Multi-Architecture Compatibility:** The software supports packing executables for various hardware architectures, such as the Motorola 68000, MIPS, and PowerPC.
- **In-Place Decompression:** Compressed executables do not require a separate decompression program. They decompress themselves directly into memory upon execution, making the process seamless for the end-user.
- **Commercial-Friendly Open Source License:** While licensed under the GNU GPL, UPX includes specific exceptions that explicitly permit its use for compressing commercial, closed-source applications free of charge.

## Body
### ### General Information
UPX, also known as the Ultimate Packer for Executables, is a free and open-source software utility created by Markus F.X.J. Oberhumer. Its function is executable compression. The software is distributed under the GNU General Public License, version 2.0 or later, but it includes special exceptions that allow it to be used freely on commercial programs.

### ### Technical Specifications
- **Programming Language:** UPX is written in assembly language.
- **Supported Operating Systems:**
    - Linux
    - Microsoft Windows
    - macOS
    - DOS
    - Atari TOS
- **Supported Platforms:**
    - Motorola 68000
    - MIPS architecture
    - PowerPC

### ### Version History
UPX has been in development for many years, with numerous stable releases. Some recent versions include:
- **Version 3.95:** Released August 26, 2018
- **Version 3.96:** Released January 22, 2020
- **Version 4.0.0:** Released October 28, 2022

### ### Availability
UPX is widely available for download and use.
- **Official Website:** https://upx.github.io
- **Source Code Repository:** https://github.com/upx/upx
- **Package Managers:** It is available in many popular package repositories, including:
    - Arch Linux (`upx`)
    - Debian/Ubuntu (`upx-ucl`)
    - Fedora (`upx`)
    - Gentoo (`app-arch/upx`)
    - Homebrew (`upx`)

## Schema Markup
```json
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "UPX",
  "alternateName": [
    "Ultimate Packer for Executables",
    "The Ultimate Packer for eXecutables"
  ],
  "description": "UPX is a free and open source executable packer software used for executable compression.",
  "url": "https://upx.github.io",
  "sameAs": [
    "https://en.wikipedia.org/wiki/UPX"
  ],
  "applicationCategory": "UtilitiesApplication",
  "softwareVersion": "4.0.0",
  "operatingSystem": [
    "Linux",
    "Microsoft Windows",
    "macOS",
    "DOS",
    "Atari TOS"
  ],
  "processorRequirements": [
    "Motorola 68000",
    "MIPS architecture",
    "PowerPC"
  ],
  "programmingLanguage": {
    "@type": "ComputerLanguage",
    "name": "assembly language"
  },
  "author": {
    "@type": "Person",
    "name": "Markus F.X.J. Oberhumer"
  },
  "license": "https://spdx.org/licenses/GPL-2.0-or-later.html",
  "codeRepository": "https://github.com/upx/upx"
}

## References

1. [Source](https://upx.github.io/upx-license.html)
2. [Source](https://upx.github.io/)
3. [User visible changes for UPX](https://upx.github.io/upx-news.txt)
4. [Release 3.91. 2016](https://github.com/upx/upx/releases/tag/v3.91)
5. [Release 3.92. 2016](https://github.com/upx/upx/releases/tag/v3.92)
6. [Release 3.93. 2017](https://github.com/upx/upx/releases/tag/v3.93)
7. [Release 3.94. 2017](https://github.com/upx/upx/releases/tag/v3.94)
8. [Release 3.00. 2016](https://github.com/upx/upx/releases/tag/v3.00)
9. [Release 3.95. 2018](https://github.com/upx/upx/releases/tag/v3.95)
10. [Release 3.96. 2020](https://github.com/upx/upx/releases/tag/v3.96)
11. [Release 3.99. 2022](https://github.com/upx/upx/releases/tag/v3.99)
12. [Release 4.0.0. 2022](https://github.com/upx/upx/releases/tag/v4.0.0)
13. [Release 4.0.1. 2022](https://github.com/upx/upx/releases/tag/v4.0.1)
14. [Release 4.0.2. 2023](https://github.com/upx/upx/releases/tag/v4.0.2)
15. [Release 4.1.0. 2023](https://github.com/upx/upx/releases/tag/v4.1.0)
16. [Release 4.2.0. 2023](https://github.com/upx/upx/releases/tag/v4.2.0)
17. [Release 4.2.1. 2023](https://github.com/upx/upx/releases/tag/v4.2.1)
18. [Release UPX 4.2.2. 2024](https://github.com/upx/upx/releases/tag/v4.2.2)
19. [Release 4.2.3. 2024](https://github.com/upx/upx/releases/tag/v4.2.3)
20. [Release 4.2.4. 2024](https://github.com/upx/upx/releases/tag/v4.2.4)
21. [Release UPX 5.0.0. 2025](https://github.com/upx/upx/releases/tag/v5.0.0)
22. [Release UPX 5.0.1. 2025](https://github.com/upx/upx/releases/tag/v5.0.1)
23. [Release UPX 5.0.2. 2025](https://github.com/upx/upx/releases/tag/v5.0.2)
24. [Release 5.1.0. 2026](https://github.com/upx/upx/releases/tag/v5.1.0)
25. Freebase Data Dumps. 2013
26. [Source](https://gitweb.gentoo.org/repo/gentoo.git/commit/app-arch/upx-ucl?id=dfd75bb94194a6e260391fef86df20f35307d57e)