Город: Санкт-Петербург Новосибирск Казань Язык: Русский English

Низкоуровневый взгляд на динамические библиотеки и модели кода
Санкт-Петербург / осень 2017, посмотреть все семестры

Запишитесь на курс, чтобы получать уведомления и иметь возможность сдавать домашние задания. Для записи требуется регистрация на сайте.
Перейти к регистрации Войти

Этот мини-курс посвящен устройству динамических библиотек на низком уровне в современном 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

Дата и время Занятие Место Материалы
23 декабря
17:15–18:45
Лекция 1, Лекция ПОМИ РАН слайды,  видеодругое
23 декабря
19:00–20:30
Лекция 2, Лекция ПОМИ РАН видео
24 декабря
11:15–12:45
Лекция 3, Лекция ПОМИ РАН видео
24 декабря
13:00–14:30
Лекция 4, Лекция ПОМИ РАН видео
24 декабря
15:30–17:00
Лекция 5, Лекция ПОМИ РАН видео