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

StackOverflow https://stackoverflow.com/questions/254149

  •  05-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

 alt text

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

Другие советы

Внедрение программного обеспечения Prentice для операционных систем

 alt text

Эта книга написана Таненбаумом (Tanenbaum), главным парнем Minix, на котором основан Linux. В нем содержатся хорошие обзоры основных понятий ОС, таких как управление памятью, файловые системы, процессы и т. Д. Понятия, изложенные в этой книге, тесно связаны с примерами ОС Minix, что очень хорошо.

Я думаю, вы должны начать с чего-то подобного.

веб-сайт Os dev богат информацией, если вы тоже хотите начать программировать свою собственную ОС,

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

 alt text

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

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

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

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

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

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

учебник http://ecx.images-amazon.com/ изображения / I / 411E3CQQYZL._SS500_.jpg

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

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

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

Вы также найдете много полезной информации в Понимании ядра Linux .

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

http://www.minix3.org/

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top