Здравствуйте, уважаемые читатели. В далекие 90-е годы, как я уже говорил, у меня был ZX Spectrum 128K с 128 килобайтами оперативной памяти на борту. Наигравшись в различные игры, коих было немало, я начал интересоваться тем, как же они работают. В конце концов , на барахолке (это такой вид рынка) мне попалась книга: «Как написать игру на ассемблере»

игра на ассемблере для ZX Spectrum

Я думаю, именно эта книга стала для меня решающим аргументом, что мое хобби – программирование. Много дней было проведено в попытке разобраться, что же за зверь такой компьютер. Параллельно были исследованы вопросы, связанные с ассемблером, портами, сегментами памяти и тому подобное.

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

Ресурсы

Как уже было сказано, прежде чем начать, я поискал разные статьи и ресурсы, связанные с созданием ОС. Для начала поделюсь, тем что нашел.

Список ресурсов:

Также хотел бы поделиться отличным курсом по операционным системам на образовательном ресурсе Stepic.

Учебная ОС

Лучшим способом обучения параллельно с теорией решать практические задачи. Создание миниатюрной операционной системы поможет проникнуться теорией полностью. Так как операционная система будет простейшей, я так и решил ее назвать “Simple OS”. Также доступен репозиторий на github’е и все сочувствующие и интересующиеся смогут ознакомиться с результатами изысканий.

simple os

Технологии

Для работы лаборатории по этому потребуются некоторые технологии. Во-первых это языки программирования: в проекте будут использоваться Ассемблер и Си.

книги по си и ассемблеру

Далее возникает вопрос где писать код. Можно конечно в блокноте или в крутой IDE. Я для себя выбрал Visual Studio Code. Об используемых мною плагинах напишу в одной из последующих статей.

Для проверки работы я буду использовать ПО qemu очень быстрый эмулятор. Ну и конечно можно использовать virtual box.

Посмотрите практическую статью: Загрузчик Simple OS

Вообщем, ребята подписывайтесь на блог. Я надеюсь, будет интересно!

Также есть канал в Яндекс.Дзен