Как программа попадает в память: от execve до main
Вы когда-нибудь задумывались, что происходит после того, как вы нажимаете Enter в терминале Linux? Вводите ./myprogram и...
Что именно происходит дальше? Как ядро находит файл? Как загружает его в память? Кто вызывает main? И как на всё это посмотреть вживую?
Разберемся на примере пустой программы empty_sleep. Она ничего не делает, просто запускается и завершается через 30 секунд. В ней нет лишнего кода и мы сможем сосредоточиться только на процессе загрузки. Всё, что мы увидим, относится к большинству динамически скомпилированных программ в Linux.
В этой статье покажу как с помощью strace в реальном времени проследить путь программы от execve до _start и main.
Читать далееИсточник: Хабрахабр
Похожие новости
- AI-пентестер: охотник или добыча
- [Перевод] Изнурительно подробное руководство по SSH (лишь те аспекты, которые я нахожу полезными)
- Сибирскому провайдеру погрозили пальцем за утечку данных десятков тысяч пользователей
- Безопасность GitHub Actions: модель угроз, атаки и меры защиты. Часть 1
- GDDRHammer и GeForge— анатомия атак, превративших видеопамять в оружие
- Spark_news: 85% фрилансеров не знают, что такое полноценный отдых
- [Перевод] YellowKey: zero-day эксплойт полностью обходит стандартную защиту BitLocker в Windows 11
- Почему ИИ-боты более уязвимы, чем их базовые LLM-модели?
- Spark_news: Компании в сфере туризма и ПО стали драйверами рекламного рынка
- Air Production: Как построить ecom для мебельного ритейла с каталогом в 100 000 SKU и 2 млн конфигураций товаров