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