Троан Эрик В.
Шрифт:
• 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 как тех, кто знаком с кодом операционной системы, так и тех, кто с ним не знаком.
Полный список рекомендуемой литературы можно найти в конце книги.
Все исходные коды данной книги являются производными от тщательно протестированных рабочих примеров. Исходные коды доступны на сайтеа также на сайте издательства. Для ясности в некоторых коротких фрагментах кода оставлены проверки лишь наиболее типичных ошибок, а не всех возможных. Тем не менее, в загружаемых кодах вы найдете проверки всех существенных ошибок.
В книге рассматриваются функции, которые должны использоваться, а также их совместимость. Мы также рекомендуем пользоваться справочной документацией, большая часть которой должна присутствовать в вашей системе. В главе 3 описаны способы поиска онлайновой информации о вашей системе Linux.
Операционная система Linux стремительно развивается, и ко времени прочтения книги некоторые факты могут измениться. Данная книга была написана с учетом ядра Linux 2.6 и библиотеки GNU С версии 2.3.
Ниже перечислены добавления и модификации, появившиеся во втором издании книги.
• Вся книга была обновлена с учетом новой спецификации Unix версии 6 — обновленной версии стандарта POSIX.
• Небольшие фрагменты исходного кода примеров приводятся с номерами строк, облегчая ориентирование в соответствии с полным исходным кодом.
• Глава 1 содержит обновленную и расширенную историю разработки Linux.
• В главе 4 рассматриваются утилиты
• В главе 6 рассматривается библиотека GNU С (glibc) и стандарты, на которых она основана. Также в этой главе объясняется, как и почему следует использовать макросы проверки свойств. Кроме того, описываются основные системные вызовы, рассматриваемые во всех разделах книги; способы обнаружения возможностей системы во время выполнения; разнообразные интерфейсы, предоставляемые
• Глава 7 содержит значительно расширенную информацию об инструментах отладки памяти, включая новые свойства отладки памяти библиотеки GNU С, новую версию mpr и новый инструмент Valgrind.
• В главе 12 рассматриваются сигналы реального времени и контексты сигналов.
• В главе 13 документируются системные вызовы
• В главе 16 рассматривается и рекомендуется новый механизм распределения псевдотерминалов (Pseudo TTY). Также внимание уделяется системным базам данных
• В главе 17 рассматривается как IPv6, так и IPv4, включая новые интерфейсы системных библиотек для написания программ, которые могут равнозначно использовать IPv6 и IPv4. Также рассматриваются более ранние интерфейсы, которым уделялось внимание в первом издании, чтобы дать возможность поддерживать код, использующий эти интерфейсы, и переносить его в более новые интерфейсы. Кроме того, обсуждается более широкий набор функций, чем нужен для многих сетевых серверов, например, неблокирующая
• Глава 22 — это новая глава, в которой рассматриваются основные требования к написанию защищенных программ и объясняется, почему вопросы безопасности относятся ко всем программам, а не только к системным демонам и утилитам.
• Глава 23 содержит более полное обсуждение использования регулярных выражений, включая простую версию утилиты
• В главе 26 рассматриваются новейшие улучшения библиотеки