Linux üzerinde minimum boyutlu ELF dosyaları üretildi
Öne çıkanlar
- Standart GCC ile üretilen 4 kilobaytlık temel ikili dosya 368 bayta kadar küçültüldü.
- C çalışma zamanı ve standart kütüphane bağımlılıkları tamamen kaldırıldı.
- Program sonlandırma işlemi doğrudan int 0x80 sistem çağrısıyla gerçekleştirildi.
Yazılım geliştirici Brian Raiter, x86 mimarisindeki Linux sistemlerde ELF biçimli çalıştırılabilir dosyaların boyutunu minimuma indiren yöntemleri paylaştı. Çalışmada yalnızca işletim sistemine 42 çıkış kodunu döndüren son derece basit bir C programı temel alındı ve dosya boyutu adım adım incelendi.
İlk olarak standart GCC derleyicisiyle üretilen ve yaklaşık 4 bin bayt olan ikili dosya, sembollerin temizlenmesi ve optimizasyon bayraklarıyla 2 bin 600 bayt seviyesine çekildi. Ardından C standart kütüphanesi ile çalışma zamanı başlangıç kodları devre dışı bırakıldı. Program doğrudan Nasm kullanılarak x86 montaj dilinde yazıldı ve standart sistem çağrısı mekanizması olan int 0x80 üzerinden işletim sisteminin exit çağrısına bağlandı.
Montaj talimatlarının daha az yer kaplayan alternatiflerle değiştirilmesi ve bağlayıcının doğrudan çağrılması sonucunda, çalıştırılabilir dosyanın boyutu 368 bayta kadar düşürüldü. İncelemede, dosya boyutunun büyük kısmını program kodunun kendisinden ziyade ELF başlıkları, yorum bölümleri ve bellek hizalama dolgularının oluşturduğu görüldü.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.