Комментарии 39
Сегодня мы напишем загрузчик (точнее конфиг к GRUB) и простенькое ядро, которое будет выводить "Hello OSDev!"
Занятно :) напомнило как дизассемблировал код вируса на дискетах - в общем-то "хелло Хабр" можно и в этом стартовом секторе просто уместить, безо всякого Grub и "простенького ядра".
Я не к тому что "писать свою ОС" вредно - но чтобы она была как можно более "своей" там должно быть как можно менее готовых компонент :) Не серчайте за маленькую критику.
А ещё неплохо, чтобы она была таки ОС, а не очередным ХеллоВорлдом прямо из загрузчика :)
Да, для этого нужен шедулер потоков с запуском, остановкой и переключением контекста.
Либо из POSIX API либо из ReactOS. Что бы можно было что-то компилировать и минимально запускать.
ps: ну и сокеты конечно, что бы минимальный interop был.
я вторую часть просто не успел дописать, я там на другой площадке был, а тут и не уследил что приняли
Кстати говоря, если делать так, как сделано, -- считывать подряд N первых секторов, -- это, конечно, облегчает жизнь, но правильней было бы найти нужный файл в каталоге диска и прочитать его...
unsigned
char
stack[4096]
attribute
((aligned(16)));
Не знаю, как на чистых современных сях, а на це++ со стандарта 11 года выравнивание можно (и нужно) описывать стандартными средствами, а не с помощью нестандартных атрибутов -- гарантирует переносимость между различными компиляторами и всё такое.
ADD. Посмотрел: в сях добавили тоже, но лишь в стандарте 23 года (https://en.cppreference.com/w/c/language/alignas.html):
struct sse_t { alignas(16) float sse_data[4]; };
И тут мы столкнемся с тем, что использовать
stdlib
... нельзя! Потому что мы используем кросс-компилятор и библиотек он таких не знает.
Какой еще кросс-компилятор?
кросс-компилятор - это такой компилятор, который компилирует не под ОС, на которрой он стоит, а под bare metal (без ОС) определенной архитектуры, например i686, x86_64
используй вайб кодинг поменьше :)
Я про то почему из-за компилятора у нас нету доступа к стандартному хедеру libc? Это не так работает! Тем более он не обязательно делает под bare metal.
мне приходилось с автором общаться в одном чате. он активно использует LLM. вот поэтому, ему уже указывали на этот факт, но он не исправил
я честно говоря не знаю про libc.h, и да, необязательно под bare metal, но под архитектуру
Честно говоря после прочтения статьи у меня остались очень смешанные чувство. Данный материал наноминает больше не какую либо статью , а скорее замтеки автора. Материал нормально не раскрыт, болтаются пустые куски кода, плоскость, однотипность статьи и негрмотность автора!
Статья вызвала только смех и ничего более.
Очередная статья псевдо-профи с ИИ знаниями. Есть статьи гораздо лучше. Lmao.
Я уже писал комментарий к этой статье. Но после прочтения защиты автора от "рейда" мне показалось что кроме скопированного из AI кода автор еще и имеет не имеет чувства ситуации. И продолжает общаться как в чате
Статья объективно не соответствует качеству Хабра и представляет собой мешанину из шизы и нейробреда. Жирнейший минус.
Ого и здесь статья такая появилась, буквально вчера смотрел ролик одного товарища на you tube прям один в один только текст при загрузке другой вписывал он https://youtu.be/-hz1gIIDJMA?si=FFoMuafZZM8G4jps
Низкоуровневый АД: пишем свою ОС — Часть 1. Загрузчик и стартовое ядро