Pull to refresh

Comments 15

Первое, что я понял, после первых же дней разработки ОС, когда этим занимался в 2013 году - что не надо писать stage1, а использовать grub2 и multiboot-спецификацию

Либо использовать UEFI загрузчик, в котором есть EFI Boot Services, предоставляющие довольно обширный функционал.

да, но это немного сложнее, хотя и позволяет напрямую ядро загрузить. А grub и на bios и на uefi работает. Но, разумеется на uefi ориентировать правильно - bios и mbr умерли

grub + multiboot более универсален в том плане, что можно ставить эксперименты по запуску на реальном железе -конфигурируешь кастомный айтем в меню и все. По своему опыту сужу, так как у меня мультибут с винда + линь. А винда загрузку из uefi напрямую не поддерживает, насколько мне известно, у нее старт с bootmgrfw.efi а далее уже ядро

Если вам нравится сама идея своей ОС, позвольте дать совет.
Забудьте на время про загрузчики, bios, драйвера и даже про видеокарту. Это огромный объем работ, который практически невозможно полноценно сделать одному. Может когда-нибудь ИИ поможет, но пока и от него толку мало в этой части. Драйвер для nvidia под вашу ОС он вам не напишет, хотя загрузчик может и сможет написать.
Начните с базовых вещей. Что делает практически любая неспециализированная ОС? Распределяет и управляет ресурсами: памятью, вычислительными мощностями, временем, привилегиями (доступом), энергопотреблением и т. д. Плюс имеет некую структуру для хранения и управления всем хозяйством, например через файлы (тогда это файловая система), или через что-то другое. И вот эти базовые вещи можно спокойно писать на любом выбранном языке, практически под любую неспециализированную архитектуру и отлаживать эти алгоритмы прямо как обычные программы. Я имею ввиду: систему управлением памятью, планировщик задач, файловую систему, систему прав и доступа, межпроцессное взаимодействие, синхронизация, систему управления временем и прочее. Это само по себе довольно интересно, здесь до сих пор делаются многие улучшения, которые потом идут в реальные ОС, и отлаживать это не так сложно, как драйвера под редкие железки.

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

UFO landed and left these words here

Мне консольный калькулятор написать надо а тут ОС пишут Калькулятор Славянских величин

все мы с чего-то начинаем, все еще впереди

Мне понравилась статья - благодаря таким авторам как вы, Хабр бывает тортом.

Есть один вопрос по этой области. Вот, существует проект sectorlisp который представляет собой интерпретатор скриптового ЯП который поместился в эти же 512 байт. Есть ли смысл у этой штуковины хотя бы в теории, можно ли на таком загрузчике построить какую-то серьёзную ОС? Или будут проблемы с использованием реального оборудования?

спасибо. это зависит от самого интерпретатора, пока не смотрел. главная проблема — ОС должна быть быстрой, а интерпретатор накладывает большие расходы. еще есть sectorC, но я пока ни си ни лисп не пробовал. самое главное в таком интерпретаторе — возможность взаимодействия с портами ввода/вывода (inb, outb, inw, outw) и с регистрами, но это уже очень сильно увеличит размер этого интерпретатора, и он уже потеряет свою главную фичу — размер.

самый главный минус — производительность.

Какой-то нейрослоп. Начать хоть с загрузчика: 512 байт в MBR - это, конечно, круто, но этому коду доступен в реальном режиме BIOS. Он - сюрприз - доступен и из защищенного: да, с костылями-трамплинами, постоянным дрыгоножеством в CR0.PE, но факт. И уже лет 15 везде UEFI, где все по-другому: там даже загрузчик отдельный не нужен. И это еще не затрагивая не-х86, где тем более везде все свое (хотя это все обычно оказывается теми же U-Boot и EDK2).

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

в самом начале статьи я ясно указал, что буду использовать BIOS.

Некоторые будут говорить что тяжелее всего написать ОС, другие скажут игровой движок, может еще попасться драйвер.

Сейчас возможно браузер выходит вперёд.

да, кстати. знаю, что у браузеров есть даже свой планировщик есть. современные браузеры — это жесть.

Почему Linux и Windows популярны, а ОС которые реально лучше них — нет?

Эти ОС были первыми.

Да не были они первыми. Там и DOS есть и тот же Unix, а там ещё и всякие ZXSpectrum/Amiga существовали, кучка мейнфреймных ОС, да хоть тот же Plan 9.

Sign up to leave a comment.

Articles