Системное программное обеспечение. Учебно-методическое пособие
.pdfo Загружаются библиотеки, указанные в переменной среды окружения
LD_PRELOAD;
o Просматриваются каталоги, указанные в параметрам исполняемого файла (DT_RPATH, DT_RUNPATH);
o Используются каталоги, указанные в переменной
LD_LIBRARY_PATH;
o Просматривается файл /etc/ld.so.cache;
o Осуществляем поиск в стандартных каталогах - /lib и /usr/lib.
Файл /etc/ld.so.cache формируется утилитой ldconfig, которая для этого использует текстовый файл /etc/ld.so.conf и параметры командной строки. В файле /etc/ld.so.conf в каждой строке указывается путь к каталогу, который необходимо просмотреть для поиска требуемой библиотеки.
ЛАБОРАТОРНАЯ РАБОТА № 3
Цель
Укрепить навыки разработки приложений с использованием разделяемых библиотек, понять принципы конфигурирования подсистемы управления динамическими библиотеками.
Задание
1.Напишите программу, которая динамически выделяет 100 блоков памяти по 1000 байт каждый и затем освобождает их. Продемонстрируйте работоспособность Вашей программы.
2.Напишите динамическую библиотеку, в которой реализуйте две функции: malloc и free. Функция malloc выделяет (с использованием стандартной функции malloc из библиотеки GLIBC) запрашиваемый блок памяти до тех пор, пока не будет выделено 77 блоков. Далее любой вызов функции malloc приводит к ошибке выделения памяти. Функция free печатает на экране сообщение о количестве выделенных блоков памяти и освобождает запрашиваемый блок.
3.Используя принудительную загрузку библиотек, продемонстрируйте работу созданной в п.2 библиотеки на примере созданной в п.1 программы.
Контрольные вопросы
1.Что такое динамическая библиотека? В чем её отличие от статической?
2.Что такое динамическое связывание и динамическая загрузка?
3.Для чего используется дескриптор RTLD_NEXT?
4.Какие переменные среды окружения используются загрузчиком динамических библиотек?
ЗАКЛЮЧЕНИЕ
Учебное пособие разработано в соответствии с требованиями государственного стандарта. Оно предназначено в первую очередь для студентов высших учебных заведений всех форм обучения, в чьи учебные планы включен курс по разработке программного обеспечения, например, «Системное программное обеспечение».
Вучебном пособии рассмотрены общие вопросы по разработке и отладке программного обеспечения, раскрыты возможности, достоинства и недостатки отладчика GDB и библиотеки GLIBC.
Кроме общих вопросов, рассмотрены основные приёмы создания и использования динамических библиотек.
Кроме этого, учебное пособие способствует:
• углублению и закреплению знаний;
• формированию навыков практического применения знаний;
• профессионально грамотному изложению своих мыслей.
Вконце каждого раздела имеются задания на лабораторную работу и контрольные вопросы для самопроверки.
Учебное издание
Мамойленко Сергей Николаевич Ефимов Александр Владимирович
Системное программное обеспечение
Учебно-методическое пособие
Редактор С.С. Александров Корректор И.Л. Гончарова
Принято редакционно-издательским советом № 2 от 19.06.2018, подписано в печать 27.06.2018,
п. л. 2,1, заказ № 80, 33 стр., электронная версия – 615 Кб
Редакционно-издательский отдел СибГУТИ 630102, г. Новосибирск, ул. Кирова, 86, офис 105 тел. (383) 269-83-56
