Два настоятельно рекомендуемых обучающих проекта: nand2tetris и MIT6.828.

Операционная система Принцип составления

nand2tetris

  • Сложность: ★★★★☆
  • Рекомендуем: ★★★★★

В проекте nand2tetris есть книга "Элементы компьютерных систем", а также есть видеоуроки на английском языке. Если с английским плохо, можно почитать книгу, содержание то же самое.

В этой книге в основном объясняются принципы работы компьютера (главы 1–5), принципы компиляции (главы 6–11) и знания, связанные с операционными системами (глава 12). Не читайте слишком много контента, на самом деле содержание этой книги очень легко понять, а перевод также очень мощный. За каждой главой есть соответствующие упражнения, для завершения которых требуется написать код, что можно назвать классическим сочетанием теории и практики.

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

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

Ведя читателя с нуля через 12 глав и проектов, эта книга постепенно создает базовую аппаратную платформу и современную иерархию программного обеспечения. В процессе читатели могут получить подробные сведения об архитектуре оборудования, операционных системах, языках программирования, компиляторах, структурах данных, алгоритмах и разработке программного обеспечения. Благодаря этому пошаговому подходу книга раскрывает важные компоненты знаний в области компьютерных наук и показывает, как теория и прикладные методы, представленные в других курсах, вписываются в общую картину.
Книга основана на модели разработки "сначала абстрагируйте, затем реализуйте". Каждая глава представляет ключевую аппаратную или программную абстракцию, метод реализации и фактический проект. Знания в области компьютерных наук, необходимые для выполнения этих проектов, рассматриваются в этой книге и требуют от читателя только опыта программирования. Вспомогательный веб-сайт, сопровождающий эту книгу, предоставляет инструменты и материалы, необходимые для создания всех аппаратных и программных систем, описанных в книге, а также 200 тестовых программ для 12 проектов.
Все содержание книги обширно, всесторонне подходит для компьютерных и соответствующих основных студентов, аспирантов, специалистов по техническому развитию, преподавателей и технических энтузиастов для справок и изучения.

Кроме того, порог для этой книги очень низок, если вы хорошо владеете языком программирования.

Эта книга научит вас шаг за шагом собирать полный компьютер, начиная с вентиля И-НЕ (главы 1–5); с главы 6 по главу 11 вам необходимо завершить три компилятора (ассемблер, компилятор VM, компилятор языка Jack); последняя глава должна завершить некоторые функции операционной системы.

Если вы выполните все проекты в этой книге, вы получите следующие достижения:

  • Соберите компьютер (запустите его на эмуляторе)
  • Реализовать язык и соответствующую стандартную библиотеку языка
  • Реализовать простой компилятор

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

MIT6.828

  • Сложность: ★★★★★
  • Рекомендуем: ★★★★★

Этот проект представляет собой курс по операционной системе с открытым исходным кодом Университета Массачусетского технологического института.П ДОС.Участвовал.Персик.Квота/6.828/2018/…

  • Шаг за шагом, от поверхностного к более глубокому, что облегчает принятие
  • Сочетая теорию и практику, каждая объясненная точка знаний имеет соответствующие упражнения, которые необходимо выполнить.
  • Над этим проектом работает много людей, и в Интернете есть много информации и ответов.

Пока вы следуете проекту, начиная с Lab1, шаг за шагом до Lab6, вы можете реализовать простое ядро ​​операционной системы. Вот обзор 6 экспериментов:

  1. Загрузите ПК, объясните загрузчик
  2. управление памятью
  3. Пользовательские процессы и прерывания
  4. Упреждающая многозадачность
  5. Файловая система
  6. сетевой драйвер

Однако этот проект сложнее, чем nand2tetris, и порог выше. Если нет основы, перед выполнением этого проекта рекомендуется прочитать следующую информацию:

На выполнение этого проекта также ушло два месяца, но были проведены только эксперименты Lab1-6, а не сложные задания и домашние задания. ответ вgithubЗдесь вы можете посмотреть, если вам интересно.