Выбрать главу

Спасибо следующим людям и организациям, которые обеспечили меня UNIX-системами, позволили проверить тестовые программы и уточнить детали для других реализаций UNIX: Энтони Робинсу (Anthony Robins) и Кэти Чандра (Cathy Chandra) — за системы тестирования в Университете Отаго в Новой Зеландии; Мартину Ландерсу (Martin Landers), Ральфу Эбнеру (Ralf Ebner) и Клаусу Тилку (Klaus Tilk) — за системы тестирования в Техническом университете Мюнхена в Германии; компании Hewlett-Packard за то, что сделала свободно доступными в Интернете свои системы testdrive; Полю де Веерду (Paul de Weerd) — за доступ к системе OpenBSD.

Искренне признателен двум мюнхенским компаниям и их владельцам, которые не только предоставили мне гибкий график работы и приветливых коллег, но и оказались исключительно великодушны, позволив мне пользоваться их офисами на время написания книги. Спасибо Томасу Кахабке (Thomas Kahabka) и Томасу Гмельху (Thomas Gmelch) из компании exolution GmbH, а отдельное спасибо — Петеру Феллингеру и Маркусу Хартингеру из компании jambit GmbH.

Спасибо за разного рода помощь, полученную от вас, Дэн Рэндоу (Dan Randow), Карен Коррел (Karen Korrel), Клаудио Скалмацци (Claudio Scalmazzi), Майкл Шюпбах (Michael Schüpbach) и Лиз Райт (Liz Wright). Благодарю Роба Суистеда (Rob Suisted) и Линли Кук (Lynley Cook) за фотографии, которые использованы на обложке.

Спасибо следующим людям, которые всевозможными способами подбадривали и поддерживали меня при работе над этим проектом: это Дебора Черч (Deborah Church), Дорис Черч (Doris Church) и Энни Карри (Annie Currie).

Спасибо сотрудникам издательства No Starch Press за все виды содействия этому внушительному проекту. Благодарю Билла Поллока (Bill Pollock) за то, что удалось договориться с ним с самого начала, за его незыблемую уверенность в проекте и за терпеливое сопровождение. Спасибо моему первому выпускающему редактору Меган Дунчак (Megan Dunchak). Спасибо корректору Мэрилин Смит (Marilyn Smith), которая обязательно найдет множество огрехов, несмотря на то что я изо всех сил стремлюсь к ясности и согласованности. Райли Хоффман (Riley Hoffman) всецело отвечал за макет и дизайн этой книги, а также взял на себя роль выпускающего редактора, когда мы вышли на финишную прямую. Райли милостиво вытерпел мои многочисленные запросы, касающиеся подходящего макета, и в итоге выдал превосходный результат. Спасибо!

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

Разрешения

Институт инженеров электротехники и электроники (IEEE) и компания The Open Group любезно предоставили право цитировать фрагменты текста из документов IEEE Std 1003.1, 2004 Edition (Стандарт IEEE 1003.1, версия 2004 года), Standard for Information Technology — Portable Operating System Interface (POSIX) (Стандарт информационных технологий — портируемый интерфейс операционной системы) и The Open Group Base Specifications Issue 6 (Базовые спецификации Open Group. Выпуск 6). Полную версию стандарта можно прочитать на сайте http://www.unix.org/version3/online.html.

Обратная связь

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

Майкл Тимоти Керриск

Мюнхен, Германия — Крайстчерч, Новая Зеландия

Август 2010 г.

mtk@man7.org

1. История и стандарты

Linux относится к семейству операционных систем UNIX. По компьютерным меркам у UNIX весьма длинная история, краткий обзор которой дается в первой половине этой главы. Рассказ начнется с обзора истоков UNIX и языка программирования C и продолжится рассмотрением двух направлений, приведших систему Linux к ее теперешнему виду: проекта GNU и разработки ядра Linux.

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