4.9.2 Оптимизации пространства, занимаемого приложениями

Предыдущая  Содержание  Следующая V*D*V

Оптимизация пространства, занимаемого приложениями, может быть эффективно выполнена с помощью следующих шагов:

 

Удаление лишнего кода в отдельных приложениях

Использование таких инструментов, как оптимизатор библиотек

Использование уменьшенных программ/дистрибутивов, нацеленных на использование во встраиваемых системах

Использование уменьшенной библиотеки языка Си, такой как uClibc

 

Оптимизатор библиотек

 

Этот инструмент предназначен для удаления из общих библиотек нежелательного кода. Вспомним из обсуждения общих библиотек в Главе 2, что разделяемые библиотеки могут содержать нежелательный код, который может быть никогда не  используемым, но всё же может расходовать драгоценное пространство для хранения. Оптимизатор библиотек представляет собой инструмент с открытым кодом, который используется в конце сборки для сканирования разделяемых библиотек и перестройки их так, чтобы они содержали только объектные файлы, необходимые для системы. Веб-сайт для разработки оптимизатора библиотек: http://libraryopt.sourceforge.net.

 

Тем не менее, оптимизатор библиотек не может быть использован в системах, в которых приложения должны загружаться и выполняться динамически (на встраиваемых системах это может случиться очень редко), так как библиотека языка Си может не содержать функций, необходимых для выполнения новых приложений.

 

Уменьшенные библиотеки языка Си

 

Библиотека языка Си является одним из важнейших компонентов пользовательского пространства; все приложения должны компоноваться с библиотекой языка Си для часто используемых функций. Стандартная библиотека языка Си libc.so и libc.a, которая доступна на веб-сайте GNU, часто называется glibc. Тем не менее, glibc предназначена в большей степени для настольных и серверных сред. Она содержит избыточный код, который не найдёт большого использования во встраиваемых системах, используя при этом дорогое место для хранения. По словам сопровождающего glibс, Ульриха Дреппера,

 

Как правило, что-то вроде glib или утилит gnu не будет использоваться во встраиваемых системах. ... Эти варианты на самом деле предназначены не для встраиваемых сред, а для систем, на которых работает Linux (например, [S]VGA, жёсткий диск, мышь, ОЗУ 64 Мб и тому подобное).

 

Есть две популярные альтернативы использованию glibc на встраиваемых системах: dietlibc и uclibc. Обе будут рассмотрены ниже.

 

Dietlibc: dietlibc - это небольшая библиотека языка Си, которая может быть загружена с http://www.dietlibc.org/

Uclibc: uclibc является очень популярной встраиваемой библиотекой языка Си. Этот проект был начат и поддерживается Эриком Андерсеном на Веб-сайте www.uclibc.org. Одной из важных особенностей uclibc является то, что она может быть использована как на процессорах с MMU, так и без MMU. Список процессоров, которые поддерживаются uclibc, включает в себя:
- x86
- ARM
- MIPS
- PPC
- M68K
- SH
- V850
- CRIS
- MicroBlaze ™

 

Предыдущая  Содержание  Следующая