Embedded Linux Size Reduction Techniques
Talkat Embedded Linux Conference + OpenIoT Summit North America 2017 · on Tuesday, 2017-02-21· at 11:30· Broadway III/IV·
summary
Make tinyconfig plus -Os and a few build tweaks produce a kernel that boots with 4 MB RAM on QEMU (ZImage ~400 KB, unstripped ~1+ MB); LTO saves about 2–3% while Clang is ~5% smaller than GCC for large binaries; musl outperforms glibc (statically linked busybox ~183 KB with musl vs ~755 KB with glibc); Toybox yields ~84 KB for the same utilities where BusyBox is ~100 KB.
AI-written summary · about
chapters (26)
- 0:00Introduction
- 0:46Why reduce size
- 2:49Why this talk
- 4:25How small is a Linux kernel
- 5:39GCC
- 6:56Link Time Optimizations
- 9:40clang vs GCC
- 10:58Arm vs Thumb
- 13:09Tiny Config
- 13:55Slub
- 14:47Kernel Size
- 17:08Testing
- 20:00Elementor
- 21:15LTO
- 21:55Clank
- 22:05Kernel xip
- 23:52Kernel configuration options
- 24:56nmsizesort
- 25:41LLVM Linux
- 26:59User Space
- 29:29Toybox
- 30:05Busybox
- 34:23Optimizing libraries
- 37:20Conclusions
- 38:44Recent achievements
- 47:02References
related talks
40mInspecting and Optimizing Memory Usage in Linux
41mZephyr RTOS: Under 1KB of RAM
41mZephyr RTOS: Under 1KB of RAM
51mDemystifying Memory: A Practical Tutorial on Managing & Optimizing Memory in Zephyr
48mThe Cost of Security: Measuring and Reducing Boot-Time Impact
55mCode Size Compiler Optimizations and Techniques for Embedded Systems
51mDemystifying Memory: A Practical Tutorial on Managing & Optimizing Memory in Zephyr
24mSoftware Optimization for Early Linux Boot for Time Critical...
