Ядро Linux в комментариях
Есть вещи, которые, как мне кажется, будут интересны любому программисту. В частности, это объяснение того, как устроены реально работающие программные системы. И не просто "какие-то", а удачные и часто используемые. Для тех кто не знает (неужели такие есть?): Linux (расшифровывается как Linux Is Not UNiX) является ядром операционной системы. Если говорить очень грубо, то ядро это такая программа, которая отвечает за выполнение процессов, обеспечивает доступ к системным ресурсам, определяет некоторый набор функций, позволяющий прикладным программам абстрагироваться от конкретной конфигурации компьютера и т.д. В общем, это "главная программа". Linux является ядром операционной системы GNU/Linux --- под GNU в данном случае подразумевается набор системных утилит, которые работают при помощи ядра Linux. Эта операционная система является одной из самых популярных Unix-подобных свободно распространяемых операционных систем. Таким образом, Linux является как раз ярким примером "удачной" программы, учитывая то, что его исходные тексты доступны любому желающему для изучения или изменения. В своей заметке от 14.08.00 я писал о том, что интерес к исходным текстам это неправильный интерес, по той простой причине, что действительно хорошо написанный код является редкостью и чаще можно просто перенять чужие ошибки, а не чему-то научиться. Исходные тексты ядра это, конечно же, не пример того, как надо программировать "обычно". Потому что требования, выставляемые к ядру отличаются от тех, которые выдвигаются прикладным программам, но там настолько много интересных тонкостей, что это стоит внимательнейшего изучения. Тут стоит обратить внимание на эту книгу. "Ядро Linux в комментариях" является тем редким случаем, когда название соответствует содержанию. То есть, в книге действительно рассматривается исходный текст некоторых элементов ядра Linux'а "строчка за строчкой". В принципе, комментарии очень подробные и многие из них не только объясняют то, почему сделано имено так, но и показывают путь для возможных улучшений. Я не считаю, что книга является обязательной при изучении исходных текстов Linux'а. Хотя бы потому, что в ней написаны, по сути, простые вещи... но как и в случае "Правил программирования" эти "простые вещи" иногда настолько неочевидны, что требуют многословных пояснений. Так что подобная книга, несомненно, чрезвычайно полезна, потому что просто заставляет думать читателя в нужном направлении. Организация книги достаточно забавна: все дело в том, что первая половина занята распечаткой в две колонки исходного текста Linux'а ;) Сами комментарии к функциям (по строчкам исходников) расположены во второй половине книги. На самом деле, книга действительно интересная. Читается относительно тяжело (потому что приходиться постоянно "прыгать" между страницами с комментариями и исходным текстом). РезюмеЯ так считаю, что книга будет интересна многим. Это действительно интересная тема: изучение (причем, детальное изучение) исходных текстов Linux'а. Можно спорить о стиле кода (бытует вполне оправданное мнение, что исходные тексты FreeBSD более качественные), но это не умаляет достоинств книги. Тем более, что это единственная на сегодняшний день книга подобной тематики.
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
© 2000-2008, Andrey L. Kalinin mailto:andrey@kalinin.ru |
|