Чтение онлайн

на главную - закладки

Жанры

Программирование для Linux. Профессиональный подход

Самьюэл Алекс

Шрифт:

В системах GNU/Linux большинство таких программ разработано в рамках проекта GNU. [1] Многие из них были написаны раньше чем появилось ядро Linux. Цель проекта GNU — "создание полноценной операционной системы наподобие UNIX оснащенной бесплатным программным обеспечением" (цитата с Web-узла www.gnu.org).

Ядро Linux и GNU программы составляют очень мощную комбинацию которую чаще всего называют просто "Linux". Но без GNU-программ система не будет работать, как и без ядра. Поэтому во многих случаях мы говорим GNU/Linux.

1

GNU — это рекурсивный акроним, который расшифровывается как GNU's Not UNIX (GNU — это не UNIX).

Общая лицензия GNU

Исходные тексты программ, приведенные в этой книге, распространяются на условиях общей лицензии GNU (GPL, GNU General Public License), которая приведена в приложении Е, "Общая лицензия GNU". Таким же способом лицензируется большинство бесплатных программ, особенно в рамках GNU/Linux, например ядро системы. Прежде чем использовать представленные исходные тексты, ознакомьтесь с условиями данной лицензии.

Общая лицензия GNU обсуждается на Web-узле

www.gnu.org/copyleft
наряду с другими лицензиями на бесплатное распространение программного обеспечения. Найти информацию о лицензиях на распространение программ с открытым кодом можно по адресу
http://www.opensourсе.org/licenses/index.html
.

Для кого предназначена эта книга

Эта книга предназначена для трех категорий читателей.

■ Возможно, наш читатель является разработчиком, имеющим опыт создания программ для GNU/Linux и стремящимся узнать о более сложных возможностях и особенностях системы. Таких читателей заинтересуют главы, посвященные программированию процессов и потоков, а также межзадачному программированию и взаимодействию с аппаратными устройствами. Мы поможем им сделать свои программы быстрее, надежнее и безопаснее.

■ Возможно, наш читатель является разработчиком, имеющим опыт программирования для другой UNIX-системы и желающим создавать программы для GNU/Linux. Такой читатель уже знаком со стандартными API-функциями, и ему нужно узнать об особенностях системы, ее ограничениях, дополнительных возможностях и специфических соглашениях.

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

Эта книга не является исчерпывающим руководством или справочником по программированию в GNU/Linux Мы применяем обучающий подход, последовательно излагал самые важные концепции и методики и приводя примеры их использования. В разделе 1.5, "Поиск дополнительной информации", указано, где можно найти дополнительную информацию по данной теме.

Поскольку в книге рассматриваются довольно сложные вопросы, мы предполагаем, что читатели знакомы с языком программирования С и знают, как использовать функции стандартной библиотеки языка С. Этот язык является основным средством разработки программного обеспечения для GNU/Linux Большинство команд и функций, описанных в книге. а также большая часть ядра Linux написаны на С.

Изложенная в книге информация и равной степени применима к программам написанным на C++, так как этот язык является надмножеством языка С Библиотечные функции языка С являются основным "средством общения" в среде GNU/Linux.

Те, кто уже программировали в UNIX, возможно, сталкивались с низкоуровневыми функциями ввода-вывода (

open
,
read
,
stat
и т.д.). Они отличаются от стандартных библиотечных функций языка С (
fopen
,
fprintf
,
fscanf
и др.). Оба семейства функций находят применение в GNU/Linux, поэтому мы не будем делать акцент на каком-то одном семействе. Низкоуровневые функции описаны в приложении Б, "Низкоуровневый ввод-вывод".

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

Соглашения, принятые в книге

В книге используются следующие типографские соглашения.

■ Новые термины выделяются курсивом.

■ Тексты программ, названия функций, переменных и других элементов "компьютерного языка" выделены моноширинным шрифтом, например

printf("Hello, world!\n")
.

■ Имена команд, файлов и каталогов также даны моноширинным шрифтом, например

cd /
.

■ Когда мы показываем взаимодействие пользователя с интерпретатором команд, то ставим в начале строки приглашения символ

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

% uname

Linux

система выдала приглашение

%,
пользователь ввел команду
uname
, а система ответила выдачей строки
Linux
.

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

http://www.advancedlinuxprogramming.com
.

Мы писали программы в Red Hat Linux версии 6.2. В этот дистрибутив входит ядро Linux версии 2.2.14, GNU-бнблиотека языка С версии 2.1.3 и семейство компиляторов EGCS версии 1.1.2. Приведенные программы в общем случае должны работать и в других версиях Linux, в частности в ядре версии 2.4 и с GNU-библиотекой языка С версии 2.2.

От издательства

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

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

Поделиться:
Популярные книги

Сирийский рубеж 2

Дорин Михаил
6. Рубеж
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Сирийский рубеж 2

Чужая семья генерала драконов

Лунёва Мария
6. Генералы драконов
Фантастика:
фэнтези
5.00
рейтинг книги
Чужая семья генерала драконов

Я все еще не царь. Книга XXVI

Дрейк Сириус
26. Дорогой барон!
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Я все еще не царь. Книга XXVI

Точка Бифуркации IV

Смит Дейлор
4. ТБ
Фантастика:
героическая фантастика
городское фэнтези
попаданцы
5.00
рейтинг книги
Точка Бифуркации IV

Законы Рода. Том 9

Мельник Андрей
9. Граф Берестьев
Фантастика:
городское фэнтези
попаданцы
аниме
дорама
фэнтези
фантастика: прочее
5.00
рейтинг книги
Законы Рода. Том 9

Подросток

Достоевский Федор Михайлович
Проза:
русская классическая проза
9.09
рейтинг книги
Подросток

Ермак. Телохранитель

Валериев Игорь
2. Ермак
Фантастика:
альтернативная история
7.00
рейтинг книги
Ермак. Телохранитель

Последний Герой. Том 3

Дамиров Рафаэль
3. Последний герой
Фантастика:
попаданцы
альтернативная история
фантастика: прочее
5.00
рейтинг книги
Последний Герой. Том 3

Сирота

Ланцов Михаил Алексеевич
1. Помещик
Фантастика:
альтернативная история
5.71
рейтинг книги
Сирота

Приказано выжить!

Малыгин Владимир
1. Другая Русь
Фантастика:
боевая фантастика
попаданцы
альтернативная история
7.09
рейтинг книги
Приказано выжить!

Двойник короля 12

Скабер Артемий
12. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Двойник короля 12

Третье правило диверсанта

Бычков Михаил Владимирович
Фантастика:
постапокалипсис
5.67
рейтинг книги
Третье правило диверсанта

Эволюционер из трущоб. Том 10

Панарин Антон
10. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 10

Кодекс Охотника. Книга VI

Винокуров Юрий
6. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга VI