Библиотека сайта rus-linux.net
На главную -> MyLDP -> Программирование и алгоритмические языки
Ulrich Drepper "Как писать разделяемые библиотеки" | ||
Вперед |
Как писать разделяемые библиотеки
Оригинал: "How To Write Shared Libraries"Автор: Ulrich Drepper
Дата публикации: December 10, 2011
Перевод: Н.Ромоданов
Дата перевода: март 2013 г.
Краткое содержание
Сегодня разделяемые библиотеки используются повсюду. Разработчики пользуются ими для разных целей и разрабатывают их точно также, как и приложения. Но проблема в том, что для создания просто хорошо написанного кода на многих платформах требуется применять дополнительные методы. Еще больше знаний нужно при создании оптимизированного кода. Настоящая статья познакомит вас с необходимыми правилами и методами. Кроме того будет представлено понятие стабильности интерфейса ABI (Application Binary Interface — интерфейс двоичных приложений) и будет рассказано, как стабильностью управлять.
Оглавление
- 1. Предисловие
- 1.1. Немного истории
- 1.2. Переход к формату ELF
- 1.3. Как реализован формат ELF?
- 1.4. Запуск: ядро
- 1.5. Использование динамического компоновщика
- 1.5.1. Процесс перемещения
- 1.5.2. Перемещения символов
- 1.5.3. Хеш таблица в стиле GNU
- 1.5.4 Область поиска
- 1.5.5. Таблицы GOT и PLT
- 1.5.6. Запуск конструкторов
- 1.6. Итоговая оценка затрат для ELF
- 1.7. Измерение производительности ld.so
- 2. Оптимизация объектов DSO
- 2.1. Определения данных
- 2.2 Управление экспортом
- 2.2.1. Используем static
- 2.2.2. Определение глобальной видимости
- 2.2.3. Определение посимвольной видимости
- 2.2.4. Определение видимости для классов C++
- 2.2.5. Использование таблиц символов экспорта
- 2.2.6. Парамерт -export-symbols программы Libtool
- 2.2.7. Избегайте использовать экспортируемые символы
- 2.3. Сокращение имен символов
- 2.4. Выбор правильного типа данных
- 2.4.1. Сравниваем указатели и массивы
- 2.4.2. const - всегда константа
- 2.4.3. Массивы указателей данных
- 2.4.4. Массив указателей на функции
- 2.4.5. Таблицы виртуальных функций языка C++
- 2.5. Улучшение генерируемого кода
- 2.6. Улучшение безопасности
- 2.7. Простое профилирование интерфейса
- 3. Сопровождение интерфейсов API и ABI
- 3.1. Что такое интерфейсы API и ABI?
- 3.2. Обеспечение стабильности
- 3.3. Контроль версий ABI
- 3.4. Реструктурирование экспорта
- 3.5. Обработка совместимых изменений (GNU)
- 3.6. Обработка совместимых изменений (Solaris)
- 3.7. Несовместимые изменения
- 3.8. Использование DSO с контролем версий
- 3.9. Межобъектные взаимосвязи
- Приложение A. Вычисляемые перемещения
- Приложение B. Автоматический обработчик массивов указателей строк
- Приложение D. Ссылки. E. История версий статьи
Предыдущий раздел: | Следующий раздел: | |
Предисловие |