Горячая вакансия: PCB engineer 80000 КА Работа
Я ищу работу в IT сфере ✈ Я ищу резюме в IT сфере ✈

Быстрая публикация IT события здесь

Приступая к работе с Embedded Linux - Часть четыре

Мы продолжаем нашу серию статей о том, как начать работать с Embedded Linux, если у Вас уже есть опыт работы со встроенными системами, но не Linux. Вы можете найти первую статью здесь, вторую статью тут, и третью статью здесь.

У Linux есть большой выбор библиотек, которые могут быть использованы для разработки приложений, и многие из этих библиотек могут быть использованы во встроенных системах. Вам может понадобиться использовать пакетный менеджер для установки библиотеки и связанный с ним пакет разработчика, содержащий заголовки. Некоторые библиотеки доступны как в статическом так и в динамическом варианте. Статические библиотеки соединены с Вашей программой, в то время как динамические загружаются по мере необходимости во время выполнения программы.
Каждый раз, когда я пишу что-либо, даже самые простые приложения, моим выбором в течение многих лет было обращение к книге «Продвинутое программирование в среде Unix» Ричарда Стивенса (Advanced Programming in the UNIX Environment W. Richard Stevens) Этот справочник был опубликован в 1992 году, до того, как был разработан Linux, был обновлен Стефаном Раго (Stephen A. Rago), третье обновление было в этом году. Linux перенял большую часть API и интерфейс у Unix, хотя реализация может быть другой. Другое пособие «Программный интерфейс Linux» М.Кериск (The Linux Programming Interface Michael Kerrisk.). Бесконечное описание более чем на 900 и 1500 страниц, хорошее «чтение на ночь», но если Вам надо знать мельчайшие подробности файлов или манипуляцию процессами, сигналами, потоками, внутренними или внешними процессами или сеть связи и синхронизации, и многое другое, то это лучшее издание для того, чтобы начать изучение. Также можно подписаться на он-лайн ресурсы, например форум Stack Overflow.
Это обширный открытый ресус по поддержке Linux как для обычного так и для встроенного окружения.
В проекте GNU ресурса Free Software Foundation поддерживается большое количество различных программных утилит и библиотек. Вы можете загрузить этот пакет отсюда: http://gnu.mirrors.pair.com/gnu, он автоматически будет соединять Вас с ближайшим отражением. SourceForge содержит свыше 300,000 проектов, многие из которых очень существенные. Freecode также имеет тысячи приложений с открытым исходным кодом. Последним из моего короткого списка будет ресурс GitHub, который предоставляет хостинг для хранения кода тысяч проектов.
Большинство библиотек или программ разработаны с использованием утилиты GNU «make», вместе со скриптами bash или поддержкой таких утилит как «automake» и «autoconf». В простейшем случае утилита «make» проверяет какие файлы надо компилировать и управляет (используя мейкфайлы написанные разработчиком) порядком, в котором это компилирование выполнено. Мейкфайлы могут быть достаточно сложными, с мейкфайлами вызывающими утилиту «make» для создания поддиректорий или рекурсивным вызовом себя. «Automake» генерирует мейкфайлы, идентифицирует зависимости или вызывает утилиту «libtool» создающую разделяемые библиотеки. «Autoconf» позволяет библиотекам или программам быть скомпилированными для различных целей и операционных систем или с разными опциями. Все это выходит за рамки этого обзора, но у Орейли (O'Reilley) есть отличные книги об утилиах «make» и «autotools».
Обычная последовательность построения большинства стандартных библиотек или программ для Вашей системы Linux это загрузка исходников обычно в форме файлов «tar», возможно заархивированых «gzip», «bzip2», или «xz». Если мне надо сделать свою собственную копию «diff», я сначала загружу пакет «diffutils» из GNU mirror. Обычно я использую браузер для сохранения пакета, но так же можно использовать утилиту «wget»:
  $ cd /tmp
  $ wget ftp://ftp.gnu.org/gnu/diffutils/diffutils-3.3.tar.xz
Разархивируйте файл и cd в полученную директорию:
  $ tar xfv diffutils-3.3.tar.xz
  $ cd diffutils-3.3 
(Если пакет имеет расширение «.gz» или «.tgz» вам надо будет добавить «z» после «xfv». Если у пакета расширение «.pz» добавьте «j») Многие пакеты содержать файлы README. Вам надо их прочитать его перед разработкой. Большинство пакетов используют настройки скрипта сгенерированные «autotools», но не все.
Построение большинства пакетов, таких как «diffutils» просто: необходимо ввести следующие команды:
  $ ./configure
  $ make
  $ make install
Первая команда вызывает настройки, которые будут анализировать Вашу систему и создавать мейкфайлы для постройки библиотеки или программы с учетом Вашей системы. Вторая команда вызывает «make», которая будет компилировать и связывать библиотеку или программу в рабочей директории. Третья команда будет устанавливать библиотеку или программу. Вообще, иногда могут быть ошибки в каждом из этих шагов. «Configure» может сказать Вам, что необходимо установить другие пакеты, или возможно заголовки для устанавливаемых библиотек. «Make» может остановить компиляцию из-за ошибки. Последний шаг может пытаться установить библиотеку или программу в защищенную директорию. В этом случае Вы можете запустить этот последний шаг в основной, или задать префикс «sudo», чтобы временно принять на себя привилегию. Альтернативный вариант, вы пожжете указать -- префикс настройки и указания на незащищенный каталог:
   $ ./configure --prefix=~/mydiff
Когда вы запускаете «make install», программа и любые другие файлы будут установлены в директории упомянутой в префиксе, в случае указания «mydiff» в домашнюю директорию.
Некоторые предостережения мы обсудим в будущем, это значит, что библиотеки и программы которые вы строите на Вашем родном окружении х86 Linux, могут так же быть построены для других процессоров, таких как ARM, PowerPC, или MIPS, или других настроек Linux, используя многие из тех же инструментов и техник.
Наше следующая статья расскажет о ядре Linux, как оно настроено, и как его собрать.

Перевод - Карпухина Татьяна
Компания "Работа КА"
Оригинал - [(-)]

➥ ✈

Поиск IT персонала. Давайте решать задачи вместе! rabota@rabota-ka.ru



HotLog Rambler's Top100 Яндекс.Метрика
Отправить комментарий
Яндекс.Метрика Яндекс цитирования

Сообщения на Email