Как я учился на ошибках, или «Возвращение оси»

в 15:23, , рубрики: C, U365, говнокод побежден, ненормальное программирование, ОС, ошибки, с нуля

Привет! Эта статья связана с моей первой статьей «Маленькая ОС на C++ и ассемблере». Сейчас я вам расскажу, что произошло за это время в ОС.
Ну, наверное, самое главное, что произошло — я бросил писать OS365 из прошлого поста, передав своему другу и коллеге. Теперь немного о том, почему я это сделал.
Ну, во-первых мне надоело копаться в старом ужасном коде. Я помню тот кошмар, который там был, реализации в заголовках, ужасная система сборки, отсутствие многих вещей, список можно продолжать бесконечно. Да и вообще вся ОС была всего-то мелкой оболочкой без прерываний, VFS, управления питанием и т. д. Я подумал — что-то надо делать. Переписать ОС с нуля — не вариант, ибо кода там очень много. Я решил ее отдать Артему. Сам я начал писать новый проект по имени U365. U означает Unix, потому что я хочу ее сделать Unix-совместимой. Сначала она была такая же ужасная в плане кода, как и OS365. Но потом у меня появилось свободное время, я подумал и решил переписать ее с нуля.
Работа заняла около недели, я создал новый репозиторий без хлама, а тот удалил, потому что Артем решил закрыть исходники. В новой ОС была нормальная система сборки, а также нормальное разделение кода. Ну что же, вот скриншот:
Как я учился на ошибках, или «Возвращение оси» - 1
Если что, DSDT еще не парсится. Это только сообщения.
Также ОС была переписана на C и была удалена оконная система. Были добавлены VFS, потоки ввода-вывода (STDIO) и заработали прерывания. Идет работа над ACPI.
Код находится на GitLab: вот. Пишу я с моим напарником k1-801. Напоследок кину еще скрин.
Как я учился на ошибках, или «Возвращение оси» - 2
Инструкции по сборке:
Для начала вам нужен будет gcc и binutils, собранные под цель i686-elf. Затем вам необходимо изменить в Makefile константу CROSS на путь в папку, куда вы установили gcc и binutils (не папку, где находятся сами бинарники, а ту, что на уровень выше. Это важно), либо сборка вылетит, ругаясь на отсутствие файлов. Затем вам необходимо поставить qemu и GRUB. Без первого не пойдет эмуляция, без второго создание ISO. И вот, наконец зайдите в папку, где находится клонированный репозиторий и напишите make. Готово.

Автор: catnikita255

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js