Искусство программирования для Unix
Шрифт:
19.5.4. General Public License
19.5.5. Mozilla Public License
20 Будущее: опасности и перспективы
20.1. Сущность и случайность в традиции Unix
20.2. Plan 9: каким представлялось будущее Unix
20.3. Проблемы в конструкции Unix
20.3.1. Unix-файл представляет собой только большой блок байтов
20.3.2. Слабая поддержка GUI-интерфейсов в Unix
20.3.3. Удаление файлов в Unix необратимо
20.3.4. Unix предполагает статичную файловую систему
20.3.5. Конструкция системы управления задачами была плохо реализована
20.3.6. В Unix API не используются исключительные
20.3.7. Вызовы ioctl(2) и fcntl(2) являются препятствиями
20.3.8. Модель безопасности Unix, возможно, слишком примитивна
20.3.9. Unix имеет слишком много различных видов имен
20.3.10. Файловые системы могут считаться вредными
20.3.11. На пути к глобальному адресному пространству Internet
20.4. Проблемы в окружении Unix
20.5. Проблемы в культуре Unix
20.6. Причины верить
А Глоссарий аббревиатур
Б Список литературы
В Персональный вклад
Г Корни без корней: Unix-коаны Мастера Фу
Предисловие редактора
Мастер Фу и десять тысяч строк
Мастер Фу и Скрипт Кидди
Мастер Фу рассуждает о двух дорогах
Мастер Фу и консультант по методологии
Мастер Фу рассуждает о графическом пользовательском интерфейсе
Мастер Фу и фанатик Unix
Мастер Фу рассуждает о природе Unix
Мастер Фу и конечный пользователь
Дополнительная информация
Сноски
notes
1
2
3
4
5
6
7
Искусство программирования для Unix
ISBN 5-8459-0791-8 (рус.)
Книги, подобные этой, редко появляются на прилавках магазинов, поскольку за ними стоит многолетний опыт работы их авторов. Здесь описывается хороший стиль Unix-программирования, многообразие доступных языков программирования, их преимущества и недостатки, различные IPC-методики и инструменты разработки. Автор анализирует философию Unix, культуру и основные традиции сформированного вокруг нее сообщества. В книге объясняются наилучшие практические приемы проектирования и разработки программ в Unix. Вместе с тем описанные в книге модели и принципы будут во многом полезны и Windows-разработчикам. Особо рассматриваются стили пользовательских интерфейсов Unix-программ и инструменты для их разработки. Отдельная глава посвящена описанию принципов и инструментов для создания хорошей документации.
Книга будет полезной для широкой категории пользователей ПК и программистов.
Вдохновившим меня Кену Томпсону и Деннису Ритчи
Unix — не столько операционная система, сколько история. —Нил Стефенсон (Neal Stephenson)
Существует огромная разница между знаниями и опытом. Знания позволяют определить необходимые действия аналитическим путем, тогда как опыт делает верные действия рефлекторными, едва ли требующими осознанных размышлений вообще.
Целью книги является попытка преподнести читателям аспекты разработки программ в Unix, которые интуитивно известны экспертам данной операционной системы. Поэтому в данной книге, в отличие от большинства других книг о Unix, рассматривается меньше технических подробностей и больше вопросов коллективной культуры, как в явной, так и в скрытой ее формах, а также ее осознанные и неосознанные традиции. Данная книга не дает ответов на вопросы о том, "как сделать что-либо", она не является сборником документов how-to, скорее в ней собраны ответы на вопросы наподобие "почему это следует сделать" (why-to).
Подход why-to обладает большой практической важностью, поскольку слишком многие программы проектируются неудачно. Для большинства из них характерен большой размер, чрезвычайная сложность сопровождения и чрезмерные трудности при переносе на новые платформы или расширении, которое не было предусмотрено создавшими их программистами. Данные проблемы являются симптомами ошибочного проектирования. Авторы надеются, что эта книга позволит популяризировать некоторые относящиеся к Unix знания в области хорошего проектирования.
Книга разделена на четыре части: "Контекст", "Проектирование", "Реализация" и "Сообщество". В первой части ("Контекст") освещены философские и исторические аспекты, способствующие созданию основы и заинтересованности для восприятия последующего материала. Во второй части ("Проектирование") принципы философии Unix разворачиваются в более специфические рекомендации, касающиеся проектирования и реализации. В третьей части ("Реализация") основное внимание уделено программному обеспечению Unix. Четвертая часть ("Сообщество") касается межличностного взаимодействия и соглашений, которые делают Unix-культуру столь эффективной в своей области.
Поскольку данная книга посвящена коллективной культуре, автор с самого начала не планировал создавать ее в одиночестве. Читатели заметят, что текст включает в себя высказывания выдающихся Unix-разработчиков, основателей традиций Unix. Эти светила были приглашены прокомментировать и обсудить текст в ходе длительного процесса публичного рассмотрения книги.
Используя слово "мы", автор не пытается показаться всеведущим, а старается отразить тот факт, что в книге предпринята попытка ясного выражения опыта всего сообщества.