Есть ли ОС, которые достаточно просты для изучения? [закрыто]

19

Мне бы очень хотелось понять, как работает операционная система за кулисами. Тем не менее, я думаю, что ядро ​​большинства ОС с открытым исходным кодом слишком сложное для целей обучения, даже для программиста, работающего полный рабочий день, для обучения. Существуют ли какие-либо "простые" ОС, предназначенные только для обучения?

DotNetStudent
источник
pdos.csail.mit.edu/6.828/2011/xv6.html
Роберт Харви
codeproject.com/KB/system/MakingOS.aspx
Джереми Томпсон
Я нашел это в своем поиске, никогда не пробовал. pdos.csail.mit.edu/6.828/2012/xv6.html, очевидно, он был написан для замены Unix v6 в качестве инструмента обучения.
Ctrl-Alt-Delor

Ответы:

28

Minix Эндрю Таненбаума (см. Проектирование и внедрение операционных систем ) предназначен именно для такого рода целей. Другая (хотя и довольно устаревшая) возможность - прочитать книгу Lion's Book , которая охватывает Unix V6 (полный Unix, но достаточно старая версия, которая все еще достаточно проста для довольно простого изучения). Очевидными недостатками последнего является то, что используемый им C довольно устарел, поэтому даже довольно опытные программисты на C могут найти части, которые несколько трудно читать, и вы не можете планировать, что современный компилятор переваривает код.

Джерри Гроб
источник
7
MINIX 3 не является учебным пособием, и микроядро MINIX 3 определенно не легко понять. По словам Таненбаума, только MINIX 1 был учебным пособием.
Сакиск
10

Вы должны рассмотреть современную Unix-подобную операционную систему Xv6, используемую в курсе ОС в MIT. Похоже, что с ним также связан некоторый материал курса.

Он работает в эмуляторах Bochs и Qemu x86. Я сделал эту часть. Это было весело.

Брюс Эдигер
источник
7

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

DeveloperDon
источник
3

В моем университете мы изучили NachOS . Это отличная ОС с открытым исходным кодом для обучения. Вы также можете найти много университетских упражнений на NachOS для обучения.

Nachos - это учебное программное обеспечение для обучения на курсах по операционным системам для студентов и, возможно, выпускников. В дистрибутив Nachos входят:

  • Обзорный документ
  • Простой базовый код для работающей операционной системы
  • Симулятор для типовых назначений персональных компьютеров / рабочих станций
  • Учебник по C ++ (Nachos написан в простом для изучения подмножестве C ++, и этот учебник помогает научить программистов C нашему подмножеству)

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

пользователь
источник
0

Посмотрите на KOS (Kid OD) и SOS (Простая ОС). Обе операционные системы предназначены для обучения внутренним частям операционной системы. KOS является «отцом» SOS и был построен на основе опыта, полученного от KOS.

Эти проекты легли в основу многих образовательных статей в Linux Magazine France.

На веб-сайте KOS вы также можете найти страницу, на которой вы можете скачать исходные коды других простых ОС.

barjak
источник
0

Если вы в семействе технологий .NET, вы можете проверить Singularity . Он не обновлялся с 2008 года, но его можно загрузить в виде исходного кода и в формате ISO с CodePlex здесь .

Джесси С. Слайсер
источник
Конкретная причина для downvote, downvoter ? Ссылки все еще живы, и это простая ОС, написанная на языке высокого уровня.
Джесси С. Slicer
0

Люди могут понять все CP / M и ранние версии DOS. После этого все вышло из-под контроля, и никто больше ничего не знает. Они не были предназначены для обучения , как работает ОС , но многие люди действительно узнают , что из этих ОС.

Джо Дос
источник
1
Подумайте о том, чтобы добавить некоторые ссылки или дополнительные неподтвержденные данные, чтобы подтвердить свой ответ. Или добавьте некоторые дополнительные детали, чтобы указать, почему версия X более понятна, чем версия Y.
-1

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

Питер Б
источник