Rambler's Top100 Service Этот текст распечатан с домашней странички Андрея Калинина (www.kalinin.ru).
Оригинал статьи находится по этому адресу: http://www.kalinin.ru/comment/books/02_09_00.shtml


Ядро Linux в комментариях

02.09.00

  Иллюстрация
  Обложка книги.
  Обложка книги.

Есть вещи, которые, как мне кажется, будут интересны любому программисту. В частности, это объяснение того, как устроены реально работающие программные системы. И не просто "какие-то", а удачные и часто используемые.

Для тех кто не знает (неужели такие есть?): Linux (расшифровывается как Linux Is Not UNiX) является ядром операционной системы. Если говорить очень грубо, то ядро это такая программа, которая отвечает за выполнение процессов, обеспечивает доступ к системным ресурсам, определяет некоторый набор функций, позволяющий прикладным программам абстрагироваться от конкретной конфигурации компьютера и т.д. В общем, это "главная программа".

Linux является ядром операционной системы GNU/Linux --- под GNU в данном случае подразумевается набор системных утилит, которые работают при помощи ядра Linux. Эта операционная система является одной из самых популярных Unix-подобных свободно распространяемых операционных систем.

Таким образом, Linux является как раз ярким примером "удачной" программы, учитывая то, что его исходные тексты доступны любому желающему для изучения или изменения.

В своей заметке от 14.08.00 я писал о том, что интерес к исходным текстам это неправильный интерес, по той простой причине, что действительно хорошо написанный код является редкостью и чаще можно просто перенять чужие ошибки, а не чему-то научиться.

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

Тут стоит обратить внимание на эту книгу. "Ядро Linux в комментариях" является тем редким случаем, когда название соответствует содержанию. То есть, в книге действительно рассматривается исходный текст некоторых элементов ядра Linux'а "строчка за строчкой". В принципе, комментарии очень подробные и многие из них не только объясняют то, почему сделано имено так, но и показывают путь для возможных улучшений.

Я не считаю, что книга является обязательной при изучении исходных текстов Linux'а. Хотя бы потому, что в ней написаны, по сути, простые вещи... но как и в случае "Правил программирования" эти "простые вещи" иногда настолько неочевидны, что требуют многословных пояснений. Так что подобная книга, несомненно, чрезвычайно полезна, потому что просто заставляет думать читателя в нужном направлении.

Организация книги достаточно забавна: все дело в том, что первая половина занята распечаткой в две колонки исходного текста Linux'а ;) Сами комментарии к функциям (по строчкам исходников) расположены во второй половине книги.

На самом деле, книга действительно интересная. Читается относительно тяжело (потому что приходиться постоянно "прыгать" между страницами с комментариями и исходным текстом).

Резюме

Я так считаю, что книга будет интересна многим. Это действительно интересная тема: изучение (причем, детальное изучение) исходных текстов Linux'а. Можно спорить о стиле кода (бытует вполне оправданное мнение, что исходные тексты FreeBSD более качественные), но это не умаляет достоинств книги. Тем более, что это единственная на сегодняшний день книга подобной тематики.

Ссылки по теме

http://www.kernel.org Официальный сайт распространения последних версий ядра Linux.
http://www.hurd.ru HURD является проектом другого ядра, построенного на иных концепциях, чем Linux.

©2000-2001 by Andrey L. Kalinin,
andrey@kalinin.ru