Сегодня я задумалась о том, что происходит, когда запускаешь в Linux простую программу «Hello World» на Python.
print("hello world")
Вот как это выглядит в командной строке:
$ python3 hello.py
hello world
Но внутри происходит гораздо больше. Я объясню, что там творится, и, что гораздо важнее, расскажу об инструментах, при помощи которых вы сами сможете исследовать происходящее. Мы воспользуемся readelf
, strace
, ldd
, debugfs
, /proc
, ltrace
, dd
и stat
. Я не буду рассматривать относящиеся к Python части, только объясню, что происходит при выполнении динамически компонуемых исполняемых файлов.
Читать полностью »