Главная
Study mode:
on
1
Intro
2
What is Code Golf?
3
But What is Executable Code Golf?
4
Example: Paint in 16 bytes
5
My Hobby: Making 256B Animations
6
Many Different Categories
7
State of the Art 1kB to 8kB (Windows v. Linux)
8
XLINK project (1) • Goal: Produce an open source link-time compressor non-Windows platforms
9
PAQ Compression Algorithm
10
Arithmetic Range Coding Properties
11
Context Modeling and Context Mixing
12
Sparse n-gram Context Modeling . For each bit to decode
13
Complete Decoder Specification • Entropy Segment data structure that describes decoder problem
14
Why does this work better than LZ based compression?
15
Anatomy of an Object / Library File
16
XLINK Implementation • Linux linker has many implementation concerns
17
Programming in MS-DOS
18
Cannot access enough memory for hash table
19
Need 32-bit registers for more accurate EC
20
Hash function too slow for use on 386
21
i386 PAQ Decompression Stub (255 bytes)
22
Why should I care about binary compression in 2019?
23
Future Directions
Description:
Explore executable code golf techniques for creating tiny binaries in constrained systems during this 42-minute conference talk from linux.conf.au. Dive into the challenges of rewriting algorithms and data structures to minimize binary size, and learn about alternatives to common executable packers like UPX. Discover the XLINK project, an open-source compressing linker implementing PAQ-based compression for older DOS embedded platforms and experimental 32-bit ELF targets. Gain insights into the PAQ compression algorithm, assembly code for decompression, and the advantages of applying compression during linking. Examine size-optimization tricks available at link-time, open research problems in executable compression, and potential future developments like individual function compression for patching existing binaries. Ideal for developers working on embedded or IoT applications with limited disk space and memory.

Executable Code Golf - Making Tiny Binaries for Constrained Systems

linux.conf.au
Add to list