10 лучших книг про разработку ОС

10 лучших книг про разработку ОС

Just code IT

Часто приходится слышать вопрос: «Что почитать, чтобы начать писать свою ОС?»

Выяснилось, что у каждого из нас, группы авторов канала, есть свои любимые книги на эту тему!



Классические книги Эндрю Таненбаума

Мы посоветуем сразу три:

 1. «Операционные системы. Разработка и реализация»;

 2. «Современные операционные системы»;

 3. «Архитектура ЭВМ»

Первая повествует о архитектуре микроядерной ОС Minix 3. Одной из самых распространенных ОС в мире! Что, не слышали? Именно эта операционная система исполняется на чипах Intel ME (Management Engine), которые установлены в большинство современных x86-компьютеров! Хотя изначально Minix создавался в учебных целях.

Кстати, именно с Minix началась история другой популярной операционной системы. Именно благодаря невозможности довести Minix до уровня ОС, пригодной для повседневного использования, финский студент Линус Торвальдс начал проект своего ядра Linux.

Линус читал первое издание книги и она вдохновила его на путь разработки своей системы.

«Современные операционные системы» хорошо дополняют информацию из первой книги, расширяя ее описанием распространенных современных ОС.

«Архитектура ЭВМ» поможет разобраться в тонкостях работы железа. Без этого операционную систему разработать не удастся!


xv6: a simple, Unix-like teaching operating system

Расс Кокс достаточно известен в мире разработки ОС: он был одним из активных разработчиков легендарной ОС Plan 9. Вместе с коллегами из MIT он ведет практический курс 6.828 об архитектуре операционных систем.

Книга Расса и его коллег, Франса Каашоека и Роберта Морриса хорошо дополняет курс, описывая устройство операционной системы xv6.

xv6 — порт Unix v6 для современного железа. Какое-то время в качестве основной платформы на курсе использовали привычные x86, но позже перешли на RISC V.

Эта книга замечательна своей лаконичностью — всего 110 страниц хорошо иллюстрированного текста, который не предполагает у читателя глубоких знаний о устройстве оборудования и операционных систем.

xv6 — хороший пример реальной системы, в которой можно разобраться за короткий срок.

Не лишним будет ознакомиться и с самим курсом 6.828.


Четыре книги про устройство ядра Linux

Для новичков отлично подойдет книга Роберта Лава «Ядро Linux. Описание процесса разработки».

Книга хорошо описывает как архитектуру основных подсистем ядра Linux, так и процесс его разработки. Прочитав ее, вы узнаете, как подготовить свой патч к ядру и отправить его в LKML.

Достаточно популярна книга «Understanding the Linux Kernel» за авторством Д.Бовета и М.Чезати («Ядро Linux» в русском издании). Книга изобилует примерами кода, описанием структур данных ядра. Внутреннее устройство Linux хорошо дополняется азбукой архитектуры ЭВМ. Авторы понимают, что без понимания железа с устройством ОС разобраться будет непросто.

Отличная книга, вышедшая только на английском — «Professional Linux Kernel Architecture» Вольфганга Маурера. Большинство подсистем ядра в ней рассмотрены невероятно детально. Например, в книге приводится подробный разбор устройства современного планировщика потоков CFS (Completely Fair Scheduler), рассматриваются сложные места в менеджере виртуальной памяти.

Классическая книга издательства O'REILLY «Linux Device Drivers» повествует о архитектуре ядра Linux и разработке для него драйверов. Большинство глав дополняется простыми примерами драйверов устройств, которые можно собственноручно собирать и расширять.

К сожалению, большинство книг про ядро Linux сильно устарели, хотя большинство концепций ядра не сильно изменились. Всегда можно откатиться в истории git на подходящую версию и погрузиться в ее изучение.


Про ядро Windows

Конечно, самая популярная книга на тему устройства Windows NT — «Внутреннее устройство Windows» Марка Руссиновича, Дэвида Соломона и Алекса Ионеску. Лучше ищите современное англоязычное издание, ведь издательство Питер выпустило под видом целой книги только один из двух томов.

Так как код современного ядра Windows закрыт (хотя существует Windows Research Kernel для университетов), авторы демонстрируют тонкости его архитектуры через использование ядерного отладчика и специализированные утилиты, позволяющие «пощупать» возможности ядра снаружи.


Selfie

Трудно описать, что такое Selfie. Этот проект создали в департаменте компьютерных наук университета Зальцбурга. Авторы проекта придумали Selfie в качестве основы для своих курсов по разработке ОС, компиляторов и систем виртуализации.

В одном файле, написанном на подмножестве языка C, авторам удалось реализовать компилятор этого самого подмножества (C*), виртуальную машину редуцированного RISC-V, операционную систему, гипервизор и среду символьного исполнения.

Все эти подпроекты описаны в хорошо структурированном курсе. Он доступен в виде книги-презентации на 500 слайдов (качается с iCloud очень долго)!


OSDEV WIKI

Ну вот, кажется набралось уже 10 позиций. Бонусом укажем место в интернете, откуда можно начать свои изыскания, если очень хочется быстро что-нибудь попробовать!

Большинство разработчиков-любителей начинают свой путь с этого сайта. Здесь собраны материалы практически на любые темы, связанные с архитектурой компьютера и операционных систем. Есть здесь и список активных проектов, в которых можно даже поучаствовать! А на форуме постояльцы всегда помогут разобраться с трудностями, которые обязательно встретятся на этом тернистом пути.

Report Page