Глава 15, «Отладка»,
описывает основы отладчика GDB, передает как можно больше нашего опыта в этой области и рассматривает несколько полезных инструментов для осуществления различных видов отладки.
Глава 16, «Проект, связывающий все воедино»,
представляет значительный проект по программированию, который использует почти все, рассмотренное в книге.
Несколько приложений освещают представляющие интерес темы, включая лицензии для использованного в данной книге исходного коде.
Приложение А, «Научитесь программированию за десять лет»,
ссылается на знаменитое высказывание: «Москва не сразу строилась» [7] В оригинале: «Rome wasn't built in a day» — Примеч. перев.
. Также и квалификация в Linux/Unix и понимание этих систем приходит лишь со временем и практикой. С этой целью мы включили это эссе Петера Норвига, которое мы горячо рекомендуем.
Приложение В, «Лицензия Caldera для старой Unix»,
охватывает исходный код Unix, использованный в данной книге.
Приложение С, «Общедоступная лицензия GNU»,
охватывает исходный код GNU, использованный в данной книге.
Соглашения об обозначениях
Как и в любой книге на компьютерную тему, для передачи информации мы используем определенные соглашения об обозначениях. Определения или первое использование термина выделяется курсивом, как слово «Определения» в начале этого предложения. Курсив используется также для выделения , для цитирования других работ и комментариев в примерах. Переменные элементы, такие, как аргументы или имена файлов, выглядят таким образом. Иногда мы используем жирный шрифт, когда нужно усилитьмысль.
Вещи, находящиеся на компьютере, обозначаются моноширинными шрифтом, как в случае имен файлов ( foo.c
) и названий команд ( ls
, grep
). Короткие фрагменты, которые вы вводите, дополнительно заключаются в одинарные кавычки: ' ls -l *.с
'
$
и >
являются первичным и вторичным приглашениями оболочки Борна и используются при отображении интерактивных примеров. Ввод пользователя выделяется другим шрифтом от обычного вывода компьютера в примерах. Примеры выглядят следующим образом:
$ ls -1/* Просмотр файлов. Опция - цифра 1, а не буква l */
foo
bar
baz
Мы предпочитаем оболочку Борна и ее варианты (ksh93, Bash) по сравнению с оболочкой С; соответственно на всех наших примерах показана лишь оболочка Борна. Знайте, что правила применения кавычек и переноса на следующую строку в оболочке С другие; если вы используете ее, то на свой страх и риск! [8] См. справочные страницы csh (1) и tcsh (1) и книгу Using csh & tcsh , by Paul DuBois, O'Reilly & Associates. Sebastopol, CA. USA, 1995. ISBN 1-56592-132-1 — Примеч. автора .
При ссылках на функции в программах мы добавляем к имени функции пустую пару скобок: printf()
, strcpy()
. При ссылке на справочную страницу (доступную по команде man), мы следуем стандартному соглашению Unix по написанию имени команды или функции курсивом, а раздела — в скобках после имени обычным шрифтом: awk (1), printf (3) [9] Соответствующие справочные страницы можно посмотреть с помощью man 1 awk и man 3 printf — Примеч. науч. ред .
.
Где получить исходные коды Unix и GNU
Вы можете захотеть получить копни программ, которые мы использовали в данной книге, для своих собственных экспериментов и просмотра. Весь исходный код доступен через Интернет, а ваш дистрибутив GNU/Linux содержит исходный код для инструментов GNU.
Код Unix
Архивы различных «древних» версий Unix поддерживаются Обществом наследства UNIX (The UNIX Heritage Society — TUHS), http://www.tuhs.org
.
Наибольший интерес представляет возможность просматривать архив старых исходных кодов Unix через веб. Начните с http://minnie.tuhs.org/UnixTree/
. Все примеры кода в данной книге из седьмого издания исследовательской системы UNIX, известной также как «V7».
Сайт TUHS физически расположен в Австралии, хотя имеются зеркала архива по всему миру — см. http://www.tuhs.org/archive_sites.html
. Эта страница также указывает, что архив доступен для зеркала через rsync
. (Если у вас нет rsync
, см. http://rsync.samba.org/
: это стандартная утилита на системах GNU/Linux.)
Чтобы скопировать весь архив, потребуется примерно 2-3 гигабайта дискового пространства. Для копирования архива создайте пустой каталог, а в нем выполните следующие команды:
mkdir Applications 4BSD PDP-11 PDP-11/Trees VAX Other
rsync -avz minnie.tuhs.org::UA_Root .
rsync -avz minnie.tuhs.org::UA_Applications Applications
Читать дальше