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 экспериментов:
- Загрузите ПК, объясните загрузчик
- управление памятью
- Пользовательские процессы и прерывания
- Упреждающая многозадачность
- Файловая система
- сетевой драйвер
Однако этот проект сложнее, чем nand2tetris, и порог выше. Если нет основы, перед выполнением этого проекта рекомендуется прочитать следующую информацию:
- Язык ассемблера x86: от реального режима к защищенному
- xv6-chinese
- Введение в операционные системыили любая книга по операционной системе
- git
На выполнение этого проекта также ушло два месяца, но были проведены только эксперименты Lab1-6, а не сложные задания и домашние задания. ответ вgithubЗдесь вы можете посмотреть, если вам интересно.