Ресурсы для разработки операционной системы [закрыто]

Я планирую написать операционную систему, и я не очень много знаю об операционных системах. Есть ли хорошие ресурсы или книги, чтобы читать, чтобы я мог учиться? Каковы ваши рекомендации?

15 ответов


мы использовали Эндрю Танненбаума Современные Операционные Системы в университете я посещал. Я настоятельно рекомендую его для четких объяснений компромиссов, присущих многим проектным решениям, с которыми вы столкнетесь. Эта книга немного более "справедливая и сбалансированная", чем книга Minix.

alt текст http://ecx.images-amazon.com/images/I/51DptFJH9NL._SL500_AA240_.jpg

Я также рекомендую эту книгу, потому что, несмотря на его net-знаменитая война пламени с Линусом Торвальдсом, немногие из его предубеждений проходят в книге. Кроме того, он довольно приличный писатель, и книга действительно интересная.


Внедрение Операционных Систем Программное Обеспечение Prentice

alt текст http://ecx.images-amazon.com/images/I/3125C47MR4L._SL500_AA180_.jpg

эта книга написана Таненбаумом, главным парнем за Minix, на котором был основан Linux. Он предоставляет хорошие обзоры для основных концепций ОС, таких как управление памятью, файловые системы, процессы и т. д. Концепции в этой книге тесно связаны с примерами ОС Minix, которая является хорошей вещь.

Я думаю, тебе стоит начать с чего-то подобного.



ОС Дэв сайт богат информацией, если вы хотите начать программировать свой собственный ОС


Концепции Операционной Системы Это книга, которую мы использовали в Университете. Это довольно уродливо, но информация внутри хорошо объясняет (от базового управления памятью, до того, как ОС решает, что выполнять или как избежать тупика). Довольно широкий.

alt текст http://ecx.images-amazon.com/images/I/51TJXR8CV3L._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU01_.jpg



посмотри HelenOS, который является с нуля микроядра на основе ОС, которая стремится быть полностью современной ОС. Disclamer, я вкладчик, я работаю над своей оболочкой с нуля.

HelenOS был портирован на ia32 / 64, SPARC, ARM и многое другое, его очень хорошо спроектирован и легко читается. Его все еще в зачаточном состоянии, но показывает один возможный дизайн, который действительно использует преимущества дизайна microkernel и решает многие проблемы в реализации microkernel (например, IPC).

Он также включает скрипты, которые автоматически настраивают правильную цепочку инструментов, необходимую для перекрестной компиляции. Его очень легко построить и работает очень хорошо в большинстве симуляторов (т. е. QEMU) или голого металла.

Я бы также изучил L4, Minix3 и GNU HURD (основанный на Mach), последний из которых является иллюстрацией ошибок дизайна при попытке использовать микроядро.

Если вы хотите пройти монолитный маршрут, просто изучите Linux.


Я настоятельно рекомендую взглянуть на класс операционных систем MIT. У этого есть много полезных ссылок и куча лабораторных упражнений, с которыми вы можете играть (включая автоматизированные сценарии оценки, поэтому вам не нужно быть студентом MIT, чтобы делать их).


учебник http://ecx.images-amazon.com/images/I/411E3CQQYZL._SS500_.jpg

Я операционные системы и промежуточное ПО: поддержка управляемого взаимодействия когда я был в колледже. Это, вероятно, один из лучших учебников по этому предмету.



разработка собственной 32-битной операционной системы Ричардом А. Берджессом. Подробно рассказал о загрузчиках, настройке этих странных регистров памяти и управления процессами и т. д. Это было отличное чтение в 1996 году, когда я думал, что попробую написать простую ОС с нуля, но, возможно, уже устарел, имея дело только с первыми поколениями процессоров класса Pentium.


Если я правильно помню, Powerup для Bash подскажите HOWTO содержит много информации, которая будет полезна для этого. Так же как и старые версии Linux с нуля HOWTO, но в последних версиях, которые были удалены.

вы также найдете много хорошей информации в понимание ядра Linux.


вы должны посмотреть в MINIX 3. Это операционная система, которая была написана, я считаю, менее чем 10 000 строк. Вы можете получить очень хорошее представление о том, как работает ОС с помощью одной из книг Таненбаума и понять, как работает MINIX 3. Вы можете перейти прямо к Linux, но я думаю, что это полезная задача и действительно помогает вам увидеть, как на самом деле не требуется так много строк для создания рабочей ОС.

http://www.minix3.org/


Я бы рекомендовал посмотреть на встроенные операционные системы и построить встроенную ОС. Он будет иметь дело с основными концепциями без накладных расходов современного настольного процессора.

прошлой весной я написал многозадачную встроенную ОС в качестве окончательного проекта, это проще, чем вы могли бы подумать.


помимо книг, есть много сайтов, которые изучают развитие ОС
BrokenThorn Развлечения находится на этом веб-сайте, который изучает OS dev из базы