• Четвертая часть дополняет информацию предыдущих частей. Она включает описания некоторых важных библиотек, которые предоставляют интерфейсы, более зависимые от ядра. По сути, эти библиотеки не являются специфическими для Linux, но некоторые из них используются чаще в системах Linux, чем в других системах.
Если вы уже знакомы с программированием в Linux или Unix, можете читать главы этой книги в любом порядке, пропуская то, что вас не интересует. Если вы не знакомы с Linux или Unix, большинство глав будут полезны, но для начала рекомендуется чтение глав 1, 2, 4, 5, 9, 10, 11 и 14, поскольку они предоставляют большинство информации, знание которой необходимо для чтения других глав. В частности, в главах 10, 11 и 14 формируется основа модели программирования в Unix и Linux.
Следующие книги, несмотря на то, что некоторые темы в них совпадают, в основном дополняют данную книгу, будучи проще, сложнее, либо рассматривая сходные темы.
• The С Programming Language, second edition (Язык программирования С (Си), Брайан У. Керниган, Деннис М. Ритчи, ИД "Вильямс", 2005 год) [15]. Кратко обучает стандартному программированию на ANSI С с небольшой ссылкой на операционную систему. Она предназначена для читателей, имеющих навыки программирования.
• Practical С Programming [27]. Обучает программированию и стилю С шаг за шагом. Это пособие для начинающих, предназначенное для тех, кто не имеет никакого опыта программирования.
• Programming with GNU Software [19]. Представляет собой введение в среду программирования GNU, включающее главы, посвященные запуску компилятора С, отладчика, утилиты make и системы управления исходным кодом RCS.
• Advanced Programming in the UNIX Environment [35]. Охватывает наиболее важные системы Unix и системы, подобные Unix, однако предшествует появлению Linux. В книге рассматривается материал, аналогичный представленному в двух заключительных глав настоящей книги: системные вызовы и библиотеки совместного использования. Кроме того, в ней предложено множество примеров и объясняются различия между версиями Unix.
• UNIX Network Programming [33]. Подробно рассматривает сетевое программирование, включая традиционные виды организации сетей, недоступных в Linux. Во время чтения этой книги особое внимание следует уделять интерфейсу сокетов Беркли (см. главу 17), который обеспечивает максимальную переносимость. Эта книга пригодится, если возникнет потребность в модификации кода для переноса сетевой программы Linux в среду какой-нибудь новой разновидности Unix.
• A Practical Guide to Red Hat Linux 8 [32]. Книга почти на 1500 страниц, содержащая информацию о применении Linux, программировании оболочки и системном администрировании. Несмотря на то что в названии книги упоминается Red Hat Linux 8, большинство содержащейся в ней информации относится ко всем разновидностям Linux. Она также содержит краткую ссылку на многие утилиты, содержащиеся в системе Linux.
• Linux in a Nutshell [31]. Предоставляет краткую информацию об утилитах.
• Linux Device Drivers, second edition [28]. Обучает написанию драйверов устройств Linux как тех, кто знаком с кодом операционной системы, так и тех, кто с ним не знаком.
Полный список рекомендуемой литературы можно найти в конце книги.
Все исходные коды данной книги являются производными от тщательно протестированных рабочих примеров. Исходные коды доступны на сайте http://ladweb.net, а также на сайте издательства. Для ясности в некоторых коротких фрагментах кода оставлены проверки лишь наиболее типичных ошибок, а не всех возможных. Тем не менее, в загружаемых кодах вы найдете проверки всех существенных ошибок.
В книге рассматриваются функции, которые должны использоваться, а также их совместимость. Мы также рекомендуем пользоваться справочной документацией, большая часть которой должна присутствовать в вашей системе. В главе 3 описаны способы поиска онлайновой информации о вашей системе Linux.
Операционная система Linux стремительно развивается, и ко времени прочтения книги некоторые факты могут измениться. Данная книга была написана с учетом ядра Linux 2.6 и библиотеки GNU С версии 2.3.
Второе издание
Ниже перечислены добавления и модификации, появившиеся во втором издании книги.
• Вся книга была обновлена с учетом новой спецификации Unix версии 6 — обновленной версии стандарта POSIX.
• Небольшие фрагменты исходного кода примеров приводятся с номерами строк, облегчая ориентирование в соответствии с полным исходным кодом.
• Глава 1 содержит обновленную и расширенную историю разработки Linux.
Читать дальше