Ресурсы для разработки операционной системы [закрыто]
Я планирую написать операционную систему, и я не очень много знаю об операционных системах. Есть ли хорошие ресурсы или книги, чтобы читать, чтобы я мог учиться? Каковы ваши рекомендации?
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, которая является хорошей вещь.
Я думаю, тебе стоит начать с чего-то подобного.
ОС Дэв сайт богат информацией, если вы хотите начать программировать свой собственный ОС
Концепции Операционной Системы Это книга, которую мы использовали в Университете. Это довольно уродливо, но информация внутри хорошо объясняет (от базового управления памятью, до того, как ОС решает, что выполнять или как избежать тупика). Довольно широкий.
в то время как старые, эти книги очень хорошие:
дизайн операционной системы с Xinu
дизайн операционной системы-Internetworking с XINU, Vol. II
alt-текст http://ecx.images-amazon.com/images/I/51MTVNE1PHL._SL500_AA240_.jpg
3: http://Operating проектирование системы-Internetworking с XINU, Vol. II
посмотри 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, но я думаю, что это полезная задача и действительно помогает вам увидеть, как на самом деле не требуется так много строк для создания рабочей ОС.
Я бы рекомендовал посмотреть на встроенные операционные системы и построить встроенную ОС. Он будет иметь дело с основными концепциями без накладных расходов современного настольного процессора.
прошлой весной я написал многозадачную встроенную ОС в качестве окончательного проекта, это проще, чем вы могли бы подумать.
помимо книг, есть много сайтов, которые изучают развитие ОС
BrokenThorn Развлечения находится на этом веб-сайте, который изучает OS dev из базы