
Вы когда-нибудь задумывались, что происходит после того, как вы нажимаете Enter в терминале Linux? Вводите ./myprogram и...
Что именно происходит дальше? Как ядро находит файл? Как загружает его в память? Кто вызывает main? И как на всё это посмотреть вживую?
Разберемся на примере пустой программы empty_sleep. Она ничего не делает, просто запускается и завершается через 30 секунд. В ней нет лишнего кода и мы сможем сосредоточиться только на процессе загрузки. Всё, что мы увидим, относится к большинству динамически скомпилированных программ в Linux.
В этой статье покажу как с помощью strace в реальном времени проследить путь программы от execve до _start и main.
Читать далееИсточник: Хабрахабр
Источник: codebra
Другие материалы на сайте b.Z - Записки о гаджетах, людях и музыке