Оптимизация приложения "Hello world"

В заметке "Hello from a libc-free world!" рассмотрен вопрос неоптимальной компоновки простейшего приложения на языке Си, возможности которого ограничены присвоением переменной текста "Hello world". При компиляции такой программы в GCC результирующий исполняемый файл имеет размер 11 Кб. При попытке разобраться почему так много, выяснилось, что компилятор использует вызов libc, даже если функции данной библиотеки не используются в самой программе.

При сборке "gcc -nostdlib -o hello hello.c" размер программы сократился до 1 Кб, но такая программа перестала выполняться корректно. Для исправления ситуации был сформирован упрощенный блок инициализации (подпрограмма _start). В сети также доступно более подробное руководство по сокращению исполняемых файлов в формате ELF.

Полный текст статьи читайте на OpenNet