Глава 1. " Прежде чем вы начали..." 1.1 Типографские соглашения. - Выделенный шрифт используется для обозначения определений, предупреждений и ключевых слов в языке. - Курсив используется для обозначения вставок и введений для новых статей. - Наклонный шрифт используется для обозначения мета-переменных в тексте, особенно в командной строке: ls - l [foo] где [foo] - имя файла,как /bin/cp.Иногда довольно сложно в тексте заметить наклонный шрифт, и соответствующее выражение берется в [---]. - Шрифт печатной машинки используется для отображения ответной информации компьютера: ls -l /bin/cp [-rwxr-xr-x 1 root wheel 12104 Sep 25 15:53 /bin/cp] также он используется для примеров в кодах Си для обозначения системных команд и для описания конфигурационных файлов. Иногда для наглядности эти примеры помещаются в рамку. - В <---> скобки берется нажатая клавиша: Для продолжения нажмите. - Звездочка на полях выделяет место, требующее особого внимания. 1.2 Необходимые знания для изучения книги. Для того, чтобы понять эту книгу, вы должны хотя бы поверхностно знать Си. Это означает, что вы можете читать программы на Си, не уделяя внимания справочникам. Вы должны уметь писать простейшие программы на Си и понимать структуры, указатели и макросы, атак же прототипы ANSI C. Вы должны также представлять тексты стандартной библиотеки ввода/вывода, так как стандартные библиотеки не доступны в ядре. Некоторые часто используемые функции ввода/вывода были переписаны внутри ядра и они по возможности описываются далее. Также вам нужен хороший текстовый редактор, перекомпилирование ядра Linux и умение выполнять простейшие задачи системного администратора, такие как включение информации в /dev/. 1.3 Наставление читателю. В этой части приводятся некоторые полезные при прочтении вещи. Статические переменные. Всегда определяйте статические переменные. Масса почти случайных ошибок возникает из - за игнорирования статических переменных. Т.к. ядро на самом деле не является запускаемой программой, сегмент bss не всегда обнуляется в зависимости от метода загрузки. Невозможность использования libc. Библиотека libc не доступна в ядре, однако некоторые функции из нее были продублированы. Смотрите разделы книги, в которых эти функции документированы. В основном, это разделы 3 и 9. /\ Linux - это не UNIX. \/ Linux - система, написанная не для коммерческого распространения.