Baking Pi – Разработка операционной системы

Недавно мне попался занятный курс Alex Chadwick’а из Кембриджа.
Представляю Вашему вниманию вольный перевод уроков данного курса.
Обратите внимание, что оригинальный курс не адаптирован для Raspberry Pi B+, 2 и 3. В свою очередь для я приведу код для B+.
Надеюсь будет полезно!


Этот веб сайт создан чтобы помочь Вам преодолеть процесс разработки очень простой операционной системы для Raspberry Pi. Этот сайт предназначен для людей старше 16 лет, тем не менее более юные читатели тоже могут найти его интересным особенно с частичной помощью. Уроки могут быть добавлены со временем.

Этот курс проведет Вас через основы разработки операционных систем на языке ассемблера. Я пытался сделать все так, что бы не требовалось дополнительных знаний в области операционных систем или ассемблера. Может быть полезно иметь некоторый опыт программирования, но курсом можно пользоваться и без этого. На форум Raspberry Pi полно приветливых людей, готовых помочь, если у Вас возникли какие-либо проблемы. Курс разделен на уроки, разработанные для выполнения по очереди. Каждый урок содержит немного теории и практическую часть, содержащую полное решение задачи.

Вместо того, чтобы предоставить читателю полную информацию о разработке операционной системы этот курс сосредоточен на решении нескольких общих задач по отдельности. Надеюсь к концу курса у читателя будет достаточно знаний об операционных системах чтобы собрать все, что он выучил воедино. Хотя уроки в общем сфокусированы на конкретной задаче, остается достаточно пространства чтобы поиграть тем, что Вы выучили. Возможно, после прочтения урока о функциях вы увидите лучший стиль написания кода на ассемблере. Возможно, после урока о графике вы представите 3D операционную систему. Т.к. это курс по операционным системам, у Вас есть право спроектировать все как вам нравиться. Если у Вас есть идея, пробуйте! Компьютерные науки все еще очень молоды, поэтому осталось много того, что можно открыть!

1 Требования

1.1 Аппаратные средства

Для прохождения курса Вам понадобиться Raspberry Pi, SD карта и блок питания. Полезно, но не необходимо иметь возможность подключить к Raspberry Pi экран и клавиатуру.
В дополнение к Raspberry Pi, на котором мы будем запускать и тестировать код Вашей операционной системы, Вам также понадобиться отдельный компьютер с Linux, Windows или Mac OS X с возможностью записи SD карты для Raspberry Pi. Этот второй компьютер — Ваша система для разработки и поддержки.

1.2 Программное обеспечение

Вам понадобиться компилятор и набор утилит GNU для ARMv6. Вы должны установить или скомпилировать самостоятельно набор инструментов, который называется кросс-компилятор, на Вашей системе для разработки. Кросс-компилятор преобразовывает файлы с исходным кодом в исполняемые файлы для Raspberry Pi, которые нужно будет поместить на SD карту. Далее карте должна быть перемещена в Raspberry Pi, где может быть проверен исполняемый файл.

Вы можете найти инструкции по установке в разделе загрузок. Там же можно найти и решения для всех уроков.

2 Уроки

0 Введение Этот вводный урок не содержит практической части, он создан чтобы объяснить основные концепты, что такое операционная система, что такое код ассемблера, и другие основные понятия. Если Вы просто хотите приступить к практике, пропустите этот урок.

Цикл «OK светодиод» (Уровень для начинающих)

1 ОК1 Урок OK01 объясняет с чего начать, как включить ‘OK’ или ‘ACT’ светодиод на плате Raspberry Pi. Светодиод изначально был назван OK, но позже был переименован в ACT в ревизии 2 платы Raspberry Pi.
2 OK2 Урок OK02 объясняет как заставить светодиод моргать.
3 ОК3 Урок ОК03 объясняет как использовать функции в ассемблере и сделать код более читабельным и повторно используемым.
4 ОК4 Урок ОК04 объясняет как моргать светодиодом с более точными интервалами используя таймер.
5 ОК5 Урок ОК05 объясняет как послать сигнал SOS в азбуке морзе при помощи светодиода.

Цикл «Экран» (Продвинутый уровень)

6 Screen01 Рассмотрены основы графики, а затем применены для вывода градиента на экран.
7 Screen02 Объясняет как рисовать линии и генерировать псевдослучайные числа.
8 Screen03 Объясняет как рисовать буквы и содержит концепт командной строки ядра.
9 Screen04 Объясняет как манипулировать текстом для вывода результатов вычисления на экран.

Цикл «Ввод» (Продвинутый уровень)

10 Input01 Рассматривает драйверы и компоновку программ. Подключается клавиатура и выводятся на экран введенные символы.
11 Input02 Объясняет как сделать командную строку для операционной системы.

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий