Искусство программирования для Unix
Шрифт:
20.6. Причины верить
В будущем операционной системы Unix много проблем. Хотели бы мы действительно изменить его?
За более чем тридцатилетнюю историю мы преуспели в разрешении многих трудностей. Мы были первопроходцами лучших практических приемов программной инженерии. Мы создали сегодняшние Internet и Web. Мы создали крупнейшие, наиболее сложные и самые надежные программные системы из когда-либо существовавших. Мы пережили монополию IBM и выступили против монополии Microsoft.
Однако не все это можно назвать
Но мы всегда стремительно возвращались. Мы делаем ошибки, но мы учимся на своих ошибках. Мы передали нашу культуру через поколения; мы впитали многое из лучшего опыта ранних академических хакеров, ARPANET-экспериментаторов, энтузиастов мини-компьютеров и множества других культур. Движение открытого исходного кода возродило силу и идеализм наших ранних лет, и сегодня мы сильнее и многочисленнее, чем когда-либо.
До сих пор доводы против Unix-хакеров всегда были в краткосрочном выигрыше, но проигрывали в долгосрочной перспективе. Мы можем победить, если решимся на это.
А Глоссарий аббревиатур
В данном приложении даны определения наиболее важных аббревиатур, используемых в основном тексте книги.
API
Application Programming Interface. Программный интерфейс приложений. Набор процедурных вызовов, который обменивается данными со связываемой библиотекой процедур или ядром операционной системы, или их комбинацией.
BSD
Berkeley System Distribution, или Berkeley Software Distribution. Дистрибутив системы Беркли, или дистрибутив программного обеспечения Беркли. Документальные свидетельства неоднозначны. Общее название дистрибутивов Unix, выпущенных Computer Science Research Group в Калифорнийском университете в Беркли в период между 1976 и 1994 годами, а также Unix-систем с открытым исходным кодом, генетически происходящих от данных дистрибутивов.
CLI
Command Line Interface. Интерфейс командной строки. Считается некоторыми архаичным, но остается весьма полезным в мире Unix.
CPAN
Comprehensive Perl Archive Network. Полный сетевой архив Perl-программ. Центральный Web-репозиторий Рег1-модулей и расширений <http: //cpan. org>.
GNU
GNU's Not Unix! GNU — не Unix! Рекурсивная аббревиатура для проекта фонда свободного программного обеспечения (Free Software Foundation) по созданию клона Unix с полностью свободным программным обеспечением. Данный проект не достиг абсолютного успеха, однако в его рамках создано множество основных инструментов современной Unix-разработки, включая редактор Emacs и коллекцию компиляторов GNU (GNU Compiler Collection).
GUI
Graphical User Interface.
IDE
Integrated Development Environment. Интегрированная среда разработки. Автоматизированные инструментальные средства разработки с GUI-интерфейсом для создания кода, описания средств и быстрого просмотра структур данных. В Unix данные средства не получили широкого распространения по причинам, описанным в главе 15.
IETF
Internet Engineering Task Force. Инженерная группа по решению конкретной задачи в Internet. Орган, ответственный за определение Internet-протоколов, таких как TCP/IP. Свободная, коллегиальная организация, главным образом состоящая из технических специалистов.
IPC
Inter-Process Communication. Межпроцессное взаимодействие. Любой метод передачи данных между процессами, запущенными в отдельных адресных пространствах.
MIME
Multipurpose Internet Mail Extensions. Многоцелевые расширения почтового стандарта в Internet. Ряд документов RFC, которые описывают стандарты для внедрения двоичных и многокомпонентных сообщений в почту стандарта RFC-822. Кроме использования для передачи почты, MIME-формат используется в качестве нижнего уровня для важных протоколов уровня приложений, включая HTTP и ВЕЕР.
ОО
Object Oriented. Объектно-ориентированный. Стиль программирования, при котором код и управляемые им данные инкапсулируются в изолированные (теоретически) контейнеры — объекты. В противоположность данному стилю, в необъектно-ориентированном программировании внутреннее устройство структур данных и кода отображается более свободно объектно-ориентированное.
OS
Operating System. Операционная система. Базовое программное обеспечение машины. Именно оно управляет задачами, распределяет пространство памяти и предоставляет пользователю стандартный интерфейс для управления приложениями. Средства, предоставляемые операционной системой, и ее общая философия проектирования чрезвычайно сильно оказывают влияние на стиль программирования и техническую культуру, которая формируется вокруг машин, поддерживающих данную систему.
Portable Document Format. Переносимый формат документов. PostScript-язык для управления принтерами и другими устройствами, формирующими изображение. PDF представляет собой последовательность PostScript-страниц, упакованных с аннотациями таким образом, что его можно легко использовать в качестве формата отображения.
PDP-11
Programmable Data Processor 11. Программируемый процессор данных 11. Вероятно, единственная наиболее успешная конструкция мини-компьютера в истории; непосредственный предшественник компьютеров VAX. Впервые был представлен в 1970 году, последний PDP-11 появился в 1990 году. Данный мини-компьютер был первой крупной Unix-платформой.