Rambler's Top100 Service калинин.ru / комментарии / книги /  << 02.09.00 >>

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

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

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

Для тех кто не знает (неужели такие есть?): 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.
  Рядом в разделе:
Искусство программирования (08.09.00)
   Нет, я не собираюсь комментировать эту книгу. Потому что про нее столько всего сказано, что добавить просто больше нечего. Если вы...   >>>>
C & C++: правила программирования (27.08.00)
   Еще одна книга по C и C++, о которой мне хотелось бы рассказать. Она совсем тоненькая и маленькая, всего 270 страниц....   >>>>
  Рядом по дате:
mir.glas.apc.org/~awicon, награди себя сам (03.09.00)
   Сейчас в РуНете существует бесчисленное количество наград различной степени "тяжести". Вообще говоря, подразумевается, что иметь "награду" это очень почетно и достойно....   >>>>
1 сентября (01.09.00)
   Итак, свершилось. Первое сентября. Сами понимаете, что сегодняшний "опус" мог быть только в одном разделе, а конкретно --- в этом. Надо...   >>>>
  Содержание:
Заглавная страница
Мой блог
Мое резюме
Дайджест
Программирование
   C&C++
Сети
Unix
Алгоритмы
Оптимизация
Соревнования
Отвлеченно
XML
TeX
Просто так
Студенческое
Туризм
  Байки
Фотографии
Комментарии
   Книги
Web-ресурсы
Фильмы
Интернет
Программное обеспечение
Жизнь
Благодарности
Форум
Хронология
 
  В этом разделе:
High Perfomance Computing, second edition. (05.07.01)
   Название книги можно перевести как "Высокопроизводительные вычисления" и эта тематика в русскоязычной литературе не освещена совсем. Традиционно считается, что самой важной...   >>>>
Плагиат (19.06.01)
   В последнее время мне стало казаться, что с моим сайтом что-то не в порядке. Вроде, текст есть, живые люди тоже иногда...   >>>>
TCP/IP Illustrated, volume I. The Protocols (22.04.01)
   И опять, книга, о которой мне хочется рассказать, насколько мне известно, отсутствует в русском переводе. Тем не менее, в разделе сетевого...   >>>>
Decline and Fall of the American Programmer (28.02.01)
   Эдвард Йордон является одним из самых известных специалистов в области создания больших программных систем. Широко известна его нотация, предназначенная для структурного...   >>>>
Unix internals: the new frontiers (03.12.00)
   Хочу сразу же предупредить, что эта книга, насколько мне известно, в переводе на русский язык не существует, поэтому прошу прощения, если...   >>>>
Операционная система Unix (31.10.00)
   Unix получил очень широкое распространение в современном компьютерном мире. При этом, даже если большая часть домашних компьютеров работает под управлением операционной...   >>>>
Язык UML, рукводство пользователя (29.09.00)
   UML (Unified Modeling Language, унифицированный язык моделирования) является еще одной популярной аббревиатурой, которой очень часто пользуются, не понимая того, что за...   >>>>
Содержание раздела полностью...
   Примерно в тоже время
mir.glas.apc.org/~awicon, награди себя сам (03.09.00)
   Сейчас в РуНете существует бесчисленное количество наград различной степени "тяжести". Вообще говоря, подразумевается, что иметь "награду" это очень почетно и достойно....   >>>>
1 сентября (01.09.00)
   Итак, свершилось. Первое сентября. Сами понимаете, что сегодняшний "опус" мог быть только в одном разделе, а конкретно --- в этом. Надо...   >>>>
Хронология полностью...
   Содержание
Заглавная страница
Мой блог
Мое резюме
Дайджест
Программирование
  C&C++
Сети
Unix
Алгоритмы
Оптимизация
Соревнования
Отвлеченно
XML
TeX
Туризм
  Байки
Фотографии
Комментарии
  Книги
Web-ресурсы
Фильмы
Интернет
Программное обеспечение
Жизнь
Студенческое
Просто так
Благодарности
Форум
Хронология
© 2000-2008, Andrey L. Kalinin
mailto:andrey@kalinin.ru
Rambler's Top100