Вход/Регистрация
Программирование для Linux. Профессиональный подход
вернуться

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

Шрифт:

Своим успехом ОС Linux обязана также философии UNIX, Многие программные компоненты. появившиеся в AT&T UNIX и BSD UNIX, продолжили свое существование в Linux и заложили основу для написания новых программ. Философия UNIX, заключающаяся в организации взаимодействия множества небольших утилит командной строки, является главным принципом организации ОС Linux, делающим эту систему столь мощной. Даже когда программы оснащены пользовательским интерфейсом, лежащие в их основе команды доступны для написания сценариев автоматизации. Множество сложных задач можно решить, объединяя существующие команды и программы в простых сценариях.

GNU и Linux

Операционная система 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, поэтому мы не будем делать акцент на каком-то одном семействе. Низкоуровневые функции описаны в приложении Б, "Низкоуровневый ввод-вывод".

  • Читать дальше
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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