- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF115:DrBrown1
Материал из Linuxformat.
Книги и баги
- Архитектура ядра Linux, или 6 000 000 строк исходного кода ядра, помещенные в 45 000 строк прозы.
Еще в 1977 году Джон Лайонз [John Lions] написал книгу (или типа того) под названием «Комментарии к 6-й редакции UNIX с исходным кодом» (Commentary on UNIX 6th Edition, with Source Code), зачитанный экземпляр которой хранится у меня до сих пор. В 1986 году Морис Бах [Maurice Bach] описал внутренности System V Unix в своей книге «Структура операционной системы UNIX» (Design of the UNIX Operating System), а в 1989 Леффлер, МакКьюзик, Карелз и Куотермен проделали то же самое для 4.3 BSD. Позднее, в 1995 году, Берни Гудхарт [Berny Goodheart] в очередной раз объяснил код System V в своей книге «Тайна магического сада раскрыта» (The Magic Garden Explained).
Моя неизлечимая страсть к покупке книг побудила меня заплатить хорошие деньги за 1300-страничный труд Вольфганга Мауэрера [Wolfgang Mauerer] «Архитектура ядра Linux» (Linux Kernel Architecture), опубликованный издательством Wrox. Книга содержит всеобъемлющее описание работы ядра Linux и, как и ее предшественницы, предоставляет подробные комментарии к исходному кода ядра, в данном случае, версии 2.6.24. Так как в ядре 6-й редакции Unix было всего 9000 строк исходного кода, а в ядре Linux версии 2.6.24 их больше 6 000 000, то стоявшая перед Мауэрером задача была посложнее задачи Лайонса.
Легкое чтение
В книге приведено и описано множество фрагментов кода ядра, все на языке C, и, пожалуй, лучше всего читать ее с исходниками Linux под рукой. Оглавление выглядит как программа университетского курса компьютерных дисциплин: имеются разделы по управлению процессами и планированию задач, управлению памятью, виртуальной памяти, блокировкам и межпроцессному взаимодействию, и т.д. Другие разделы, такие как «Драйверы устройств», «Модули» и «Семейство файловых систем ext», ближе к Linux. Акцент во всех случаях сделан на реализацию внутри ядра, а примеров того, что Мауэрер называет «пользовательским» (‘userland’) программированием, сравнительно немного.
Такой книге трудно не дать десяти баллов. Если вы опытный разработчик ядра, студент факультета информационных технологий или просто полагаете, что на свете есть вещи поинтереснее судоку, купите ее. А если нет, то не покупайте.