ЛекториумМедиатека
Личный кабинет

Низкоуровневый взгляд на динамические библиотеки и модели кода

Этот мини-курс посвящен устройству динамических библиотек на низком уровне в современном 64-разрядном окружении. Будут рассмотрены следующие вопросы:

— Зачем нужен компоновщик и динамический загрузчик.

— Релокация.

— Структура ELF-файлов: секции, сегменты. Таблицы символов.

— Отличие статического и динамического связывания.

— Position Independent Code.

— Global Offset Table и Program Linkage Table.

— Как описывается интерфейс динамических библиотек.

— Процесс разрешения символов.

— Оптимизация динамических библиотек.

— Small, Medium, Large Code Models и как они изменяются в условиях Position Independent Code.

Будут использоваться языки С и ассемблера, желательно их базовое понимание. Для иллюстрации мы напишем несколько примеров библиотек на них.

Литература по теме:

— Zhirkov, I. Low-Level Programming: C, Assembly, and Program Execution on Intel® 64 Architecture
— Drepper, U. How to write shared libraries
— Bendersky, E. Understanding x64 code models

Лекции

5
  1. Низкоуровневый взгляд на динамические библиотеки и модели кода. Лекция 1
  2. Низкоуровневый взгляд на динамические библиотеки и модели кода. Лекция 2
  3. Низкоуровневый взгляд на динамические библиотеки и модели кода. Лекция 3
  4. Низкоуровневый взгляд на динамические библиотеки и модели кода. Лекция 4
  5. Низкоуровневый взгляд на динамические библиотеки и модели кода. Лекция 5

Онлайн-курсы по программированию

3