UNIX. Профессиональное программирование, 3-е издание

UNIX. Профессиональное программирование, 3-е издание

У. Ричард Стивенс Стивен Раго

     14

бумажная книга Лучший выбор

44.36 USD 39.03 USD

вы экономите 5.33 USD (12%).


В корзину


Наличие на складе:

Склад в Москве

Ожидаемое поступление (если вы сделаете заказ прямо сейчас): 28.11.2024; планируемая отправка: 29.11.2024

Склад в С.-Петербурге

Ожидаемое поступление (если вы сделаете заказ прямо сейчас): 25.11.2024; планируемая отправка: 26.11.2024


Дорого? Есть книга от других продавцов от 13.3 USD



Издательство: Символ-Плюс
Серия: High tech
Дата выхода: декабрь 2013
ISBN: 978-5-93286-216-2
Объём: 1104 страниц
Масса: 1400 г
Размеры(В x Ш x Т), см: 24 x 17
Обложка: мягкая
Переводное издание: Advanced Programming in the UNIX Environment, 3rd Edition
Язык оригинала: английский
ISBN оригинала: 978-0-321-63773-4
Место в рейтинге продаж: 9

«UNIX. Профессиональное программирование» – это подробнейшее справочное руководство, которое на протяжении 20 лет помогает профессиональным программистам на языке С писать исключительно эффективный и надежный код. Стив Раго, коллега Рича Стивенса, вновь полностью обновил классический труд, сохранив точность и стиль оригинала. Новое, третье, издание охватывает современные ведущие платформы, отражает новейшие технические достижения и передовую практику и соответствует 4-й версии Single UNIX Specification. Помимо основ (файлы, каталоги и процессы) рассматриваются более сложные темы, такие как обработка сигналов и терминальный ввод/вывод, многопоточная модель выполнения и межпроцессное взаимодействие с применением сокетов. Третье издание охватывает более 70 новых интерфейсов, включая функции POSIX асинхронного ввода/вывода, циклические блокировки, барьеры и семафоры POSIX. Примеры протестированы на 4-х наиболее популярных платформах: Solaris 10, Mac OS X 10.6.8 (Darwin 10.8.0), FreeBSD 8.0 и Ubuntu 12.04 (основана на ядре Linux 3.2). Описания более 400 системных вызовов и функций сопровождаются короткими примерами законченных программ, которые наглядно демонстрируют порядок их применения, входные аргументы и возвращаемые значения. С целью закрепить полученные знания представлено несколько конкретных примеров, занимающих целые главы и отражающих уровень развития современных версий UNIX.

 

 

Предисловие

 

Введение

 

Прошло почти восемь лет, как я приступил к обновлению первого издания, и за эти годы многое изменилось.

 

  • К моменту публикации второго издания организация The Open Group выпустила спецификацию Single UNIX Specification в редакции 2004 года, включив в нее два блока изменений. В 2008 The Open Group выпустила новую версию спецификации Single UNIX Specification, дополнив основные определения, добавив новые и удалив устаревшие интерфейсы. В нее была включена версия 7 спецификации Base Specification, и в 2009 она была опубликована как версия POSIX.1 2008 года. В 2010 была опубликована 4 версия спецификации Single UNIX Specification, куда вошло обновленное определение интерфейса библиотеки curses.
  • Организация The Open Group сертифицировала как UNIX-системы версии 10.5, 10.6 и 10.8 операционной системы Mac OS X, выполняющиеся на аппаратной архитектуре Intel.
  • Компания Apple Computer прекратила разработку Mac OS X для платформы PowerPC. Начиная с версии 10.6 (Snow Leopard, снежный барс) новые версии операционной системы выпускались только для платформы x86.
  • Были открыты исходные коды операционной системы Solaris, чтобы повысить ее конкурентоспособность с популярной открытой моделью разработки, которой следуют FreeBSD, Linux и Mac OS X. Когда в 2010 Oracle Corporation купила Sun Microsystems, она прекратила разработку OpenSolaris. Вследствие этого сообществом Solaris был образован проект Illumos с открытыми исходными кодами на основе OpenSolaris, в рамках которого было продолжено развитие системы. За дополнительной информацией обращайтесь по адресу http://www.illumos.org.
  • В 2011 был обновлен стандарт языка C, но, так как системы еще не переориентировались на него, мы продолжим ссылаться на стандарт 1999 года.
  •  

    Особо следует отметить, что платформы, использовавшиеся в качестве примеров во втором издании, значительно устарели. В этом, третьем издании, я буду опираться на следующие платформы:

     

    1. FreeBSD 8.0, наследница 4.4BSD, от Computer Systems Research Group из Калифорнийского университета в Беркли, работающая на 32-разрядном процессоре Intel Pentium.

     

    2. Linux 3.2.0 (дистрибутив Ubuntu 12.04), свободно распространяемая UNIX-подобная операционная система, работающая на 64-разрядном процессоре Intel Core i5.

     

    3. Apple Mac OS X, версия 10.6.8 (Darwin 10.8.0), работающая на 64-разрядном процессоре Intel Core 2 Duo. (Ядро Darwin основано на ядрах FreeBSD и Mach.) Я выбрал версию для платформы Intel, потому что последние версии Mac OS X больше не поддерживают платформу PowerPC. Недостаток этого выбора в том, что появился перекос в сторону Intel. А при обсуждении проблем разнородности весьма полезно иметь процессоры с различными характеристиками, такими как порядок следования байтов и размер целого числа.

     

    4. Solaris 10 (производная от System V Release 4) от Sun Microsystems (ныне Oracle), работающая на 64- разрядном процессоре UltraSPARC IIi.

     

     

    Изменения в третьем издании

     

    Одним из значительных изменений в версии POSIX.1-2008 спецификации Single UNIX Specification является присваивание интерфейсам, имеющим отношение к STREAMS, статуса устаревших. Это - первый шаг на пути удаления интерфейсов из будущих версий стандарта. По этой причине я скрепя сердце удалил из этого издания книги все, что относилось к STREAMS. Я не считаю это изменение удачным, потому что интерфейсы STREAMS выглядят более привлекательными на фоне сокетов и во многих отношениях являются более гибкими. Должен признать, что я не могу быть полностью беспристрастным, когда дело доходит до механизма STREAMS, но у меня нет причин оспаривать понижение его значимости в современных системах:

     

  • Linux не включает поддержку STREAMS в базовую систему, хотя существуют пакеты (LiS и OpenSS7), добавляющие эту функциональность;
  • хотя Solaris 10 включает поддержку STREAMS, Solaris 11 использует реализацию сокетов, уже не опирающуюся на интерфейсы STREAMS;
  • Mac OS X не включает поддержку STREAMS;
  • FreeBSD не включает поддержку STREAMS (и никогда не включала).
  •  

    После удаления материала, связанного с механизмом STREAMS, появилась возможность добавить обсуждение новых тем, таких как POSIX-совместимый асинхронный ввод/вывод.

     

    Второе издание книги охватывало ядро Linux версии 2.4. В этом издании я использую версию 3.2. Самое большое отличие между этими версиями заключается в подсистеме управления потоками выполнения. В версии Linux 2.6 поддержка потоков выполнения была реализована на основе Native POSIX Thread Library (NPTL), которая делает потоки выполнения в Linux более похожими на потоки выполнения в других системах.

     

    Если говорить в общем, в это издание было включено более 70 новых интерфейсов, в том числе и интерфейсов асинхронного ввода/вывода, взаимоблокировки (spin locks), барьеры (barriers) и семафоры POSIX. Описание наиболее устаревших интерфейсов было удалено, кроме некоторых, распространенных повсеместно.

     

     

    Отзывы читателей

     

    Незаменимая классика! 23 августа 2013

     

    В 1992 году Ричард Стивенс (W. Richard Stevens) написал книгу «Advanced Programming in the UNIX Environment» (APUE), которая была опубликована издательством Addison-Wesley в 1993. В 2005 году Стивен Раго (Stephen A. Rago) подготовил второе издание, точнее отражающее положение дел в UNIX и UNIX-подобных системах. В 2013 году Раго подготовил обновленное 3 издание – предмет этого отзыва.

     

    Книга APUE ориентирована на читателей с опытом программирования на языке C в ОС UNIX. Она включает главы с длинными примерами действующих приложений и способна одновременно играть роль учебника и ценного справочника.

     

    Немногие авторы пользовались таким авторитетом в сообществе специалистов, как Рич Стивенс, поэтому любой отзыв о его книгах должен включать несколько слов о нем самом. Работы Стивенса обычно возглавляют список «рекомендованной литературы», когда речь идет о сетевых взаимодействиях по протоколу TCP/IP или о программировании для UNIX. Стивенс ушел из жизни 1 сентября 1999 года. Кроме APUE он написал также книги «UNIX Network Programming» (том 1: «API» и том 2: «IPC») и «TCP/IP Illustrated» (том1: «Protocols», том 2: «Implementation» и том 3: «TCP/T, HTTP, NNTP, Unix Domain Protocols».) Стивенс был посмертно награжден престижной премией «Lifetime Achievement Award» общества USENIX за его необычайный талант преподавания и широту души.

     

    Стивен Раго, взявший на себя грандиозный труд переиздания книги APUE Стивенса, работал в Bell Laboratories как разработчик UNIX SVR4. Его первый контакт с Ричем Стивенсом состоялся по электронной почте и касался опечатки в первой книге Стивенса «UNIX Network Programming». Позднее Стивенс выступал в качестве технического рецензента книги Раго «UNIX System V Network Programming». Раго, в свою очередь, взял на себя роль технического рецензента первого издания книги APUE и отлично справился с подготовкой второго и третьего изданий этой книги.

     

    Третье издание, подготовленное Стивеном Раго, включает следующие изменения:

     

    • Теперь книга охватывает 4 версию единой спецификации UNIX (Single UNIX Specification, SUS).

    • Было убрано описание интерфейсов STREAMS, признанных устаревшими в SUS POSIX.1-2008.

    • Обсуждение ведется на основе следующих платформ: FreeBSD 8.0, Linux 3.2.0 (дистрибутив Ubuntu 12.04), Mac OS X 10.6.8 (Darwin 10.80.0) и Solaris 10.

    • В ядре Linux 2.6 был выполнен переход на поддержку Native POSIX Thread Library (NPTL).

    • «Если говорить в общем, в это издание было включено более 70 новых интерфейсов, в том числе и интерфейсов асинхронного ввода/вывода, циклические блокировки (spin locks), барьеры (barriers) и семафоры POSIX. Описание наиболее устаревших интерфейсов было удалено, кроме некоторых, распространенных повсеместно.»

     

    Стивенс считал, что лучший способ изучения кода – его чтение, и его книги отражают эту философию. Первое издание содержало главу «Взаимодействие с PostScript-принтером», которая включала законченную программу для взаимодействия с принтером, подключенным к компьютеру через последовательный порт RS-232. Большинство современных принтеров обеспечивают возможность доступа через сетевой интерфейс, поэтому во втором и третьем изданиях Раго изменил главу так, чтобы она отражала современные возможности, и вместе с тем сохранил ее первоначальный замысел.

     

    Эта книга не является косметическим обновлением предыдущего издания. От начала и до конца ясно видно, как бережно относится Раго к первоначальному тексту и дополняет его новыми сведениями, отражающиеми изменения, произошедшие в последние несколько лет; он также сумел сохранить оригинальный простой и понятный стиль, свойственный Стивенсу.

     

     

    Отличное обновление замечательной книги. 14 октября 2013


    Джефф Мартин (Jeff Martin)

     

    Книга «Advanced Programming in the UNIX Environment» (APUE) уже давно является эталонным справочником для тех, кто ищет информацию о системах программирования в среде UNIX. Лишь недавно мне была передана копия последнего издания книги для рецензии, но я уже достаточно давно знаком с этой книгой.

     

    Пусть вас не смущает слово «UNIX» в названии книги – примеры, что приводятся в ней, одинаково хорошо работают на следующих платформах: Linux, Solaris, FreeBSD и Apple Mac OS X. Знания, полученные из этой книги, пригодятся во многих (если не во всех) современных операционных системах. Факт выхода третьего издания является ярким свидетельством качества материала и стиля его изложения. Если вы еще не знакомы с понятиями, представленными в этой книге, или просто желаете иметь точный и надежный справочник, третье издание APUE – верный выбор. Загляните в другие отзывы и вы увидите слова «классика», «библия» и «незаменимая». Книга удостоена такой характеристики небезосновательно, и она определенно заслуживает вашего внимания, если вы испытываете интерес к обсуждаемой в ней теме.

     

     

    Я обожаю ее! 7 сентября 2013


    Л. Фезенден (L. Fesenden)

     

    Бог мой, насколько великолепна эта книга!

     

    Книга «Advanced Programming in the Unix Environment» Стивенса и Раго, выдержавшая три издания, по сути является Библией по программированию в UNIX. Я не могу себе представить более или менее серьезного разработчика для UNIX/Linux/**ux, не имеющего своего экземпляра этой книги или, по крайней мере, не слышавшего о ней.

     

    Это – *не* легкое чтиво. Это – серьезный справочник. Она является воплощением мечты большого специалиста, и вы наверняка захотите познакомиться с языком C, чтобы извлечь из нее максимум возможного.

     

    Здесь вы найдете описание внутренних механизмов и идей, заложенных в эту операционную систему, как они действуют или как должны действовать, а также примеры кода. Наименее технической является первая обзорная глава. Она знакомит с такими понятиями, как ввод/вывод, файлы/каталоги, процессы, обработка ошибок и системные вызовы. Последующие главы посвящены более узким и специальным темам, таким как управление процессами, демоны, сигналы, многопоточное программирование и др. Как я уже сказал, в них приводится МАССА весьма специальной информации. Поэтому, если вы пишете что-то большее, чем простые сценарии, эта книга содержит то, что вам обязательно пригодится. Однако из вышесказанного не следует, что программисты – единственные, кто сможет извлечь пользу из этой книги. Даже не понимая примеры кода, читатель сможет получить достаточно полное представление об особенностях функционирования этой фантастической операционной системы. Я отношу себя именно к этой категории читателей. У меня есть некоторый опыт программирования на C, но, читая эту книгу, я обнаружил, что использую эту книгу с целью понять, как действуют внутренние механизмы.

     

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