Comments 32
Интересная статья, интересно что будет дальше
Не первая статья про свою ОС на Хабре, но дальше загрузчика дело не идет. Терпения вам
Давным давно, ещё в институте писали мы свой загрузчик для общего развития.
Но дальше этого не пошло. Дальше начинается уже крайне тяжелая задача по осуществлению работы некоторого вновь придуманного ядра (изобретение нового колеса) в защищённом режиме с разграничением процессов, выделением памяти и т.д. и т.п. Не хилая такая задачка.
Причем, тогда я ещё хорошо помнил все нюансы работы 386-й серии в защищённом режиме, и почему-то казалось, что написать ядро не так уж и сложно... Но скорее всего казалось.
Успехов в начинании!
Даже если большого толку не будет, то знания архитектуры работы ОС на уровне железа всегда пригодятся.
в своем ядре я подключил ФС, реализовал графику, добавил многоядерный шедулер и кучу других штук. это в целом очень интересное, но неблагодарное занятие)))
Может есть ниша. Слышал, что Андроид не полностью открытая ОС, а iOS и подавно
андроид вообще на линуксе:) странная штука, этот андроид
Сам Андроид в принципе штука понятная и допиливаемая. Дело в бинарных блобах - дрова на железо. Не будь их - каждый бы писал себе свой андроид на любой девайс (иногда и пишут, если железо открытое или получилось среверсить). Просто девайсов миллионы разновидностей и везде свои дрова, свои чипы, иногда очень спорные технические решения... Не берусь утверждать, что так происходит на самом деле, но думается мне процесс допиливания типового "андроида" под конкретную модель телефона упрощенно выглядит так:
1.Разрабатываем железо и пишем к нему проприетарные дрова.
2.Берем чистый андроид, пихаем туда проприетарные дрова, допиливаем под себя, лочим, ставим макс.
3.Выпускаем смартфон.
3.1 Profit!
4.Забываем про него, goto 1
Это стоило вынести в первый абзац статьи. После этого уточнения лично меня дальнейшее заинтересовало. А первая часть лично мне кажется слабенькой, минимум информации. И если вы закончити этот цикл, а следующие статьи наполните отсылками к источникам с более подробной информацией по затронутым аспектам, спецификациям, то это будет превосходно.
Пока плюсую авансом. Жду продолжения.
Писать свою ОС для платформы PC - дело неблагодарное. Платформа PC за десятилетия своего существования обросла слишком большим количеством мха (BIOS, APM, EUFI, ACPI, Protected Mode, Long Mode, PCI, USB). Охватить всё это в одиночку за конечное время просто невозможно. Поэтому я синтезировал в ПЛИС свою несложную платформу на базе RV32IMFAC и потихоньку пилю для неё софт. Из законченного есть пока только Monitor (он же - загрузчик и отладчик).
Да, интЭресно, конечно. Но только как хобби.
И как всегда возникает вопрос - на кой это надо с прагматичной точки зрения?
А именно - кто это купит да или даже просто кто это возьмется поддерживать?
Одно дело - прикладная программа от одного разработчика под всем известную ОСь, НО совсем другое дело принципиально новая ОСь, от одного разработчика, которая к тому же ни WinAPI, ни Posix. Во всяком случае, я не увидел там упоминания про posix.
Т.е. кому это надо кроме вас, ну и может быть маленького кружка заинтересовавшихся по приколу?
Линус Торвальдс ведь не просто очередное колесо когда-то изобрёл, он ещё и подогнал его под всем уже известный к тому времени posix.
А так постоянно подобные хобби-эксперименты проскакивают. Я знаю некоторые оригинальные решения даже на чистом Free Pascal (т.е. даже не на Си). Например, Ultibo:
https://ultibo.org/
С другой стороны прикольно, конечно и интересно, наверное, если свободного времени много.
разрабатывать свое ядро это просто прикольно. это такой проект, который никогда нельзя «закончить», ибо там работы на десятилетия. здесь человек учится самому думать, как поведет себя код, и в целом лично я заметно поднял свои знания, занимаясь OSDev’ом. но работа реально неблагодарная — никому не нужна чья-то хобби ОС, которая способна максимум Doom2 запустить, или что-то по типу этого) просто интересно, и все
Так я вам как бы и подсказку уже дал.
Линукс скорее всего бы тоже остался игрушкой Торвальдса, если бы он не был совместим с усредненным UNIX-ом тех лет по posix.
Торвальдс даже в названии своей "хобби игрушки" это как бы сразу "зашифровал".
При том, что почти все конкуренты тогда были платными и даже порой очень дорогими (если на сервере) HP-UX, SunOS и т.п.
А зато сейчас бесплатных Линуксов хоть "попой ешь" :D На любой вкус.
И если уж мечтать, что ваше "новое колесо" покатит ещё кто-то кроме вас, то нужно понимать, почему бы это ему понадобилось...
Но в любом случае успехов!
Да, интЭресно, конечно. Но только как хобби.И как всегда возникает вопрос - на кой это надо с прагматичной точки зрения?А именно - кто это купит да или даже просто кто это возьмется поддерживать?
Я поясню зачем это нужно. Да, коммерческого приложения в такой разработке не много, но оно всё же есть - мы разрабатываем свои электронные изделия на базе МК и ПЛИС, иметь свою миниатюрную ОС заточенную под наши задачи это благо!
Но мотивы у меня совершенно иные - саморазвитие и поддержание общественного знания об устройствах цифровой аппаратуры и системного ПО. Если все перестанут изобретать велосипед, то через 30 лет никто не вспомнит как этот велосипед работает (вспомните "Пасынки Вселенной" у Хайнлайна). Кто-то же должен знать как устроены операционные систем, чтобы нести это знание в массы - в процессе работы над своим проектом я написал несколько больших статей.
Кто-то же должен знать как устроены операционные систем, чтобы нести это знание в массы
Если только чтобы узнать как устроено, то тут IMHO проще покопаться и почитать в уже имеющихся с открытым кодом.
Но при всём уважении к вашему интересному хобби, лично я никогда бы не стал использовать в продакшене операционку, написанную одним человеком, без большого серьёзного комъюнити поддержки. Это как минимум крайне опасно со всех сторон.
Но раз вам надо, как вы говорите, то значит надо.
А десятилетиями отлаженных QNX, VxWorks, LinxOS и т.п. для вашего железа разве нет?
Как же хорошо видеть под заголовком о создании чего-то нового заметки разработчика о разработке, а не очередной безумный алхимическо-жреческий бред операторов ллм про то что надо чтобы такая-то моделька генерировала для другой модельки промты от лица смертельно больной бабушки (для лечения которой ей надо сидеть за компуктером, но ее больное сердце не выносит ни одной из существующих операционных систем), таскать куски текста туда-сюда должна третья моделька и четвертая выделять в промтах ключевые слова и прочая и прочая и прочая ну и описывает всё это в конечном счёте ктобывыдумали, а т. н. автор хорошо если как тот ветеран из байки про раздутый из пары доподлинных скупых фраз официозными штампами мемуар для передовицы прочитал со слезами "как же точно описано"
Ну, по сравнению с первым вариантом сей статьи прогресс налицо. Хотя есть несколько мест, где можно придраться, но это уже больше придирки будут, чем реальные проблемы.
Ну и отдельно отмечу, что, в отличие от 90% авторов Хабра, здесь всё достаточно хорошо в плане русского языка: оркографией и лапописанием автор таки владеет.
Опять 16-ти битный режим процессора x86… Всё жду, когда кто-нибудь напишет статью про запуск самодельного ядра ОС прямо из /EFI/BOOT/BOOTX64.EFI
Хотя нет, вот одна статья есть: https://habr.com/ru/articles/798587/
Интересная стать, правда таких на хабре, да и не только достаточно. И самое обидное почти все доходят до загрузчика и на этом серия статей чаще всего прерывается, надеюсь у Вас получится не бросить столь сложное занятие :)
Я так и не увидел в коде метки stop, на которую Вы прыгаете. Или она встроенная?
Так же, из замечаний: странно в оборот вводить какие-то сокращения (IVT и IDT), и говорить о них так, будто это что-то известное, не поясняя до этого что это и как расшифровывается.
Странно, что автора начали спрашивать сразу: "А кто у вас эту вашу ОС купит?", как будто автор ее продавать собирается. Как будто у автора вообще есть, что продавать. Хорошо, хоть карму в минус 20 не загнали. Неужели не видно, что автор просто делает это из чистого любопытства: "А получится ли?" Что никакой серьезный, да что там серьезный, никакой вообще хоть как-то работающий продукт даже не обсуждается? Автор просто ради собственного удовольствия посмотрел: "А можно ли в течении пары часов сделать голый загрузчик для компа?" Молодец, попробовал, поделился. А с него уже начали спрашивать, как с будущего Билла Гейтса.
Что же касается разработок реальных ОС энтузиастами, коли об этом речь зашла. Знаете такой проект ReactOS? Он ровесник Linux Линуса Торвальдса . Знаете, чего проект добился за сопоставимый срок жизни 30 лет? Да примерно того же, чего добился автор этой статьи: оно загружаеццо! Вот что бывает, когда во главу угла ставится вопрос "А кому мы это продадим?" вместо "А как сделать рабочую ОС?"
Ну, насколько я слышал, то под ReactOS даже (вроде бы) запускали банковский терминал. Как там было дело дальше, не знаю. По моему мнению, автор статьи делает никому не нужную работу, даже ему эта "перспективная" ось не нужна. Я еще понимаю, если бы он написал хоть какую то утилиту, которая закрывала бы его потребности (может еще нескольких человек), но тут все упираться даже не в то запуститься ОС или нет, а в необходимость написания к этой ОС еще утилит аналоги CP, MKDIR и т.д. История помнит уже не одну "любительскую" ОС, которые были не чета этой, и где они все .... вопрос риторический если чё ... Такое мое непрофессиональное ИМХО...
Понятное дело, что всякая ОС реализуется снизу. Но проектировать её надо сверху. Нужно что-то предложить пользователю, некую модель приложений.
очень долго искал соответствующие материалы. Находил и на YouTube, и на Habr, и просто какие‑то англоязычные сайты
Таненбаум Э. - Современные операционные системы
Написание ядра ОС с нуля. Часть 1