Kniga-Online.club

Виктор Костромин - Linux для пользователя

Читать бесплатно Виктор Костромин - Linux для пользователя. Жанр: Программное обеспечение издательство -, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

Библиотеки бывают статическими, разделяемыми и динамическими. Статическая библиотека - это библиотека, код которой встраивается в программу при компиляции. Код разделяемой библиотеки не встраивается в программу, а загружается в память одновременно с программой и программа получает доступ к функциям этой библиотеки. Динамические библиотеки - разновидность разделяемых, но библиотечные функции загружаются в память только тогда, когда из программы поступит вызов соответствующей функции. В процессе выполнения программы они могут выгружаться и заменяться другими функциями из той же или другой библиотеки. Имена статических библиотек обычно имеют суффикс.a, а имена разделяемых библиотек - суффикс.so, за которым следует старший и младший номера версии. Имя может быть любой строкой, которая однозначно характеризует библиотеку. Обычно имена библиотек начинаются с lib. Примеры: libm.so.5 - общая математическая библиотека, libX11.so.6 - библиотека для работы с системой X Window. Библиотека libc.so.5 компонуется автоматически, в то время как большинство других библиотек необходимо явно указывать в командной строке при вызове программы gcc. Это делается через опцию -l, за которой следует уникальная часть имени библиотеки, например, для вызова математической библиотеки достаточно указать -lm.

Многие системные библиотеки располагаются в системных каталогах, например, в /usr/lib и /lib, но некоторые могут располагаться и в других местах. Список этих каталогов помещается в файл /etc/ld.so.conf. Каждый раз, когда разделяемая библиотека изменяется или инсталлируется вновь, нужно выполнять команду ldconfig, чтобы обновить файл /etc/ld.so.conf, а также ссылки на него. Если библиотека инсталлируется из RPM-пакета, это обычно делается автоматически, хотя и не всегда.

При компиляции больших программ, использующих фрагменты исходного кода, расположенные в разных файлах, бывает очень трудно отследить, какие файлы нужно перекомпилировать, а какие только компоновать. В таких случаях очень помогает утилита make, которая автоматически определяет, следует ли компилировать файл исходного кода, по дате его последней модификации. Утилита make оперирует файлами, исходя из их зависимости друг от друга. Эти зависимости определяются файлом с именем makefile. Строка файла makefile состоит из трех частей: имени целевого файла, списка файлов, от которых он зависит, и команды. Если какой-либо файл из списка изменился после целевого файла, то выполняется указанная в строке команда. В строке может быть указано несколько команд. Обычно команда - это вызов компилятора для компиляции файла исходного кода или компоновки файлов объектного кода. Строки, определяющие зависимости, отделяются друг от друга пустой строкой.

10.3.2. Инсталляция пакетов ПО из исходных текстов

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

Непосредственно процесс инсталляции пакета состоит из следующих шагов:

1. Перейти (с помощью команды cd) в каталог, содержащий исходные коды устанавливаемого пакета.

2. Выполнить команду ./configure, которая осуществляет конфигурирование пакета в соответствии с вашей системой. Процесс выполнения этой команды занимает довольно длительное время, причем команда выдает на экран сообщения о том, какие именно особенности системы испытываются.

3. Выполнить команду make, для того, чтобы скомпилировать пакет.

4. После этого можно выполнить (это шаг не является обязательным) команду make check, которая вызывает запуск процедур самотестирования, которые поставляются с пакетом.

5. Выполнить команду make install для установки программ, а также файлов данных и документации.

6. Заключительный этап состоит в выполнении команды make clean, которая удаляет промежуточные объектные и двоичные файлы из каталога с исходными кодами. Для удаления временных файлов, которые создала команда configure (после чего пакет можно компилировать для другого типа компьютеров), надо выполнить команду make distclean.

В большинстве случаев выполнение этой последовательности команд достаточно для установки нового пакета.

Основная проблема, с которой приходится сталкиваться при инсталляции программ из исходных кодов, связана с конфликтами версий: для вновь устанавливаемого пакета требуются новые версии каких-то системных утилит, которые пока еще не установлены в вашей системе. Более того, часто возникает целая цепочка (или даже дерево): для программы нужна какая-то новая версия утилиты, для последней нужно обновить еще какие-то утилиты, и т. д.. Но, если вы не очень давно устанавливали (или обновляли) дистрибутив, то таких проблем не возникает, и обновление пакета пройдет без затруднений. Желаю вам успеха!

Глава 11. Русификация и шрифты

Может возникнуть вопрос: а надо ли подробно разбирать вопрос русификации, не лучше ли просто сразу установить русифицированный дистрибутив? Тем более, что в последних версиях дистрибутивов Red Hat Cyrillic Edition, ASPLinux и AltLinux русификация выполнена на вполне приемлемом уровне. Однако, даже в случае установки русифицированного дистрибутива вы имеете шанс столкнуться с проблемой русификации на последующих этапах. Может получиться так, что новая версия нерусифицированного дистрибутива появится раньше, чем соответствующий русифицированный вариант, и вы захотите его установить. Не всегда хочется дожидаться пока выйдет русская версия. Русификация может нарушиться при обновлении отдельных программных пакетов. У меня, например, что-то случилось с русификацией после установки XFree86 версии 4.0.1. Таким образом, задача русификации может встать перед любым пользователем ОС Linux.

Когда я начинал работать с ОС Linux, самым лучшим материалом по русификации был "The Linux Cyrillic HOWTO" Александра Беликова (Версия 4.2 b2, Декабрь 11, 1998) в переводе Е.М. Балдина. Кроме этого HOWTO были доступны только материалы со странички Леонида Кантера. Однако оба этих источника уже в то время существенно устарели, так как в Red Hat версии 6 изменились даже команды выбора шрифта. Переводчик "The Linux Cyrillic HOWTO" Е. Балдин в настоящее время создает свой вариант HOWTO по кириллизации [П13.1]. Думаю, что в ближайшее время (когда автор закончит работу над ним) он станет исчерпывающим источником сведений по этому вопросу[22]. Очень полезен также RU.LINUX.FAQ [П13.16]. Настоящая глава во многом следует этим двум основным источникам..

Начать надо с двух замечаний. Во-первых, поскольку способы вывода информации на экран в графическом и текстовом режимах принципиально различны, придется отдельно рассмотреть вопрос о русификации текстового и графического режима. Во-вторых, в системе Linux существуют два конкурирующих пакета управления консольными шрифтами и клавиатурой:

• kbd (ftp://ftp.win.tue.nl/pub/linux/utils/kbd/ или ftp://ftp.kernel.org/pub/linux/utils/kbd/)

• и consoletools (http://lcr.sourceforge.net).

В разных дистрибутивах применяются или один, или другой. Например, в Red Hat 4.х и 5.x для русификации консоли применялся пакет kbd. В Red Hat 6.x применяется уже другой пакет - consoletools. Приводимое ниже описание ориентировано, в основном, на пакет consoletools.

11.1. Предварительные сведения

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

11.1.1 Вывод символов на экран

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

Текстовый режим

Работа экранного драйвера текстового режима основана на использовании 16 битовой кодировки символов UNICODE (UCS2). Изображение каждого символа, соответствующего любому двухбайтовому коду кодировки UNICODE, представляется матрицей из нолей и единиц размером 8 столбцов на H строк (обычно H принимает значения 8, 14 или 16). Единица в этой матрице соответствует светящейся точке на экране, а ноль - затемненной точке. Каждая строка этой матрицы кодируется одним байтом. Совокупность таких матриц (точнее, их байтовых представлений) для всех символов UNICODE образует таблицу экранного шрифта (Screen Font Map - SFM). Файл, в котором хранится такая таблица, может содержать шрифт одного размера по высоте (H) или шрифты нескольких размеров.

Перейти на страницу:

Виктор Костромин читать все книги автора по порядку

Виктор Костромин - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Linux для пользователя отзывы

Отзывы читателей о книге Linux для пользователя, автор: Виктор Костромин. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*