ELF実行ファイルを極限まで小さくする:368バイトへの挑戦

Creating Teensy ELF Executables for Linux (Or, "Size Is Everything")

LinuxのELF実行ファイルを可能な限り小さくする方法を、実際のコードとコマンドを交えて解説。C言語からアセンブリへ、そしてシステムコール直接呼び出しへと段階を踏み、初期の3998バイトから368バイトまで削減する過程を示します。この過程で、ELFファイル形式やLinuxの起動プロセス、システムコールの仕組みなど、内部動作の理解も深まります。

「私たちのプログラムは今や7バイトです。ELFファイルは本当に361バイトのオーバーヘッドを必要とするのでしょうか?」
  1. WalterGR

    パート2: https://www.muppetlabs.com/~breadbox/software/tiny/revisit.h...

    数ヶ月前にここで議論されました: https://news.ycombinator.com/item?id=48654411

    パート3: https://www.muppetlabs.com/~breadbox/software/tiny/somewhat....

  2. BruceEel

    これは実際とても楽しいです。Linuxではやったことがありませんが、WindowsのPE EXEファイルでも同様のトリックが可能です。特にWindows 95は非常に寛容でした。(今日の基準では非常に原始的な) バイナリエディタを使って、.textセクションをヘッダの途中から始まるようにしてみたら、なんと動きました。ある種の啓示でした。今日のローダーはセキュリティのためにもう少し厳格かもしれませんが、自分でローダーを作ればいいと思います :)

  3. davidwritesbugs

    このうちどれだけを賢いリンカで実現できるのだろうか?そこには多くのスキルがあるが、私たちのような一般の人々にとって、LLMはどうだろうか?

この日のほかの記事

2026-08-30