Мне бы очень хотелось понять, как работает операционная система за кулисами. Тем не менее, я думаю, что ядро большинства ОС с открытым исходным кодом слишком сложное для целей обучения, даже для программиста, работающего полный рабочий день, для обучения. Существуют ли какие-либо "простые" ОС, предназначенные только для обучения?
operating-systems
DotNetStudent
источник
источник
Ответы:
Minix Эндрю Таненбаума (см. Проектирование и внедрение операционных систем ) предназначен именно для такого рода целей. Другая (хотя и довольно устаревшая) возможность - прочитать книгу Lion's Book , которая охватывает Unix V6 (полный Unix, но достаточно старая версия, которая все еще достаточно проста для довольно простого изучения). Очевидными недостатками последнего является то, что используемый им C довольно устарел, поэтому даже довольно опытные программисты на C могут найти части, которые несколько трудно читать, и вы не можете планировать, что современный компилятор переваривает код.
источник
Вы должны рассмотреть современную Unix-подобную операционную систему Xv6, используемую в курсе ОС в MIT. Похоже, что с ним также связан некоторый материал курса.
Он работает в эмуляторах Bochs и Qemu x86. Я сделал эту часть. Это было весело.
источник
Minix - отличный выбор и описан в одном из других ответов.
Xinu
Также рассмотрим XINU - XINU - это не Unix.
Это также UNIX пишется в обратном направлении.
Есть книга Дугласа Комера, которая, как мне показалось, была хорошо написана, хорошо проиллюстрирована и хорошо проработана.
Существует встроенный Xinu и веб-сайт о преподавании с помощью Xinu.
http://xinu.mscs.mu.edu/Teaching_With_Xinu
FreeRTOS
FreeRTOS - еще одна небольшая ОС, которая в наши дни очень любит. Он работает практически на всем. Если вы пришли с Марса и у вас не было процессора или платы eval, на которой он не работает, вы можете прочитать около 10 страниц документации, изменить около пяти файлов, связанных с прерываниями, таймерами и UART, и вы будете работать.
http://www.freertos.org/
Они утверждают, что он поддерживает 31 архитектуру и 18 цепочек инструментов. Мой опыт в конце 2009 года был хорошим, и я слышал, что с тех пор он значительно улучшился.
Другие ссылки
Подобные вопросы, которые могут иметь полезную информацию для вас, находятся здесь:
/programming/254149/how-do-you-write-a-basic-operating-system
Linux и многие другие разработки операционных систем находятся под влиянием UNIX, так что это видео, где первоначальные дизайнеры (Керниган, Ричи, Томпсон и другие) являются одновременно информативными и получают идеи дизайна прямо из источника.
http://techchannel.att.com/play-video.cfm/2012/2/22/AT&T-Archives-The-UNIX-System
Существует классический, но часто пересматриваемый учебник по операционным системам:
Silberschatz, Galvin, Gagne: концепции операционной системы, 7-е издание
Там могут быть более новые издания тоже. Я редко делаю ссылки на книги через продавца книг, но предварительный просмотр очень щедрый, поэтому, чтобы узнать больше об операционных системах, пожалуйста, проверьте:
http://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/0470128720
источник
В моем университете мы изучили NachOS . Это отличная ОС с открытым исходным кодом для обучения. Вы также можете найти много университетских упражнений на NachOS для обучения.
источник
Посмотрите на KOS (Kid OD) и SOS (Простая ОС). Обе операционные системы предназначены для обучения внутренним частям операционной системы. KOS является «отцом» SOS и был построен на основе опыта, полученного от KOS.
Эти проекты легли в основу многих образовательных статей в Linux Magazine France.
На веб-сайте KOS вы также можете найти страницу, на которой вы можете скачать исходные коды других простых ОС.
источник
Если вы в семействе технологий .NET, вы можете проверить Singularity . Он не обновлялся с 2008 года, но его можно загрузить в виде исходного кода и в формате ISO с CodePlex здесь .
источник
Люди могут понять все CP / M и ранние версии DOS. После этого все вышло из-под контроля, и никто больше ничего не знает. Они не были предназначены для обучения , как работает ОС , но многие люди действительно узнают , что из этих ОС.
источник
Иди почитай книгу о программировании на ассемблере. Вам не нужно становиться опытным в этом, но это научит вас многим внутренним принципам работы компьютера.
источник