LINUX.ORG.RU

Подскажите ресурсы для изучения написания собственной ОС

 


1

0

Всем привет! Я неплохо знаю языки Си и С++, а так же чуть-чуть ассемблер x86, поэтому хочу попробовать свои силы и написать собственную ОС, с ядром и системным софтом. Подскажите, пожалуйста, книги, форумы или иные ресурсы, где можно найти гайды или задать вопросы. Сразу говорю, что я не буду писать какую-то фигню, а создам полноценную ОС. Касательно времени, то проект бессрочен, поэтому чем больше толковых трудов вы дадите, тем лучше, я все изучу, независимо, сколько для этого потребуется времени. Можно англоязычные.

Ответ на: комментарий от stranger1

Изучай MINIX и принципы построения GNU Hurd. Авось, на базе MINIX сможешь свою систему с микроядром реализовать под какой-нибудь Cortex-A7.

Eddy_Em ☆☆☆☆☆
()

Помнится, Попов тоже обещал не «какую-то фигню, а полноценную ос»

anonymous
()

еее бой, наконец-то! а то этот линкас достал уже всех

напиши в какой usenet выложишь первые исходники

anonymous
()

пиши ось сразу на @metaprog
еще вот-вот и он будет готов … вот-вот…вот-вотб еще чуть чуть подождать

anonymous
()
Ответ на: комментарий от anonymous

пиши ось сразу на @metaprog

Это на регистранте что ли? Если вы про поделие этого персонажа, не нужна собака перед названием.

еще вот-вот и он будет готов …

…к перевороту строки?

COKPOWEHEU
()

Всем привет! Я неплохо знаю языки Си и С++, а так же чуть-чуть ассемблер x86, поэтому хочу попробовать свои силы и написать собственную ОС, с ядром и системным софтом.

x86 это нагромождение атавизмов и костылей. Если ваша задача не прославиться написанием принципиально новой ОС с нескучными обоями, а просто потренироваться и понять как вообще люди подобное делают, возьмите ядро попроще - ARM или даже RISC-V. Виртуальные машины их вроде бы поддерживают.

А то и вовсе на микроконтроллере - взять какую-нибудь stm32f7, к ней дисплейчик, клаву ps/2 (usb сложнее) и работать в полноценной консоли.

COKPOWEHEU
()

Я бы не только Танненбаума рекомендовал.

Академичен зело ибо сей раб Божий. Местами и не по делу, хотя, Торвальдсу вот не помешал недостаток академичности.

Так-то если, то на коде проще и лучше. Например, вот примеры, которые основаны на OS Dev Wiki и PDF. В примерах всё по шагам расписано. Для старта сойдёт.

Так же могу рекомендовать The little book about OS development.

Ну и как пример ещё могу порекомендовать чисто ARM-овский вариант (по большей части), лежащий в основе пилимой Гуглем Фуксии. Little Kernel.

Книги это хорошо, конечно. Но иногда нехило бы и код посмотреть.

Если хочется вообще чего-то странного и супер-безопасного, то есть у меня и потяжелее. seL4. Здесь всё очень микроядерное и с математической верификацией секьюрности ведра на Haskell. Ну просто всё как мы любим… И микроядро и математическая верификация и даже ФП в виде хаскеля в уголочке притаилась… =))) Но это уже… «тяжёлая зависимость»…

Moisha_Liberman ★★
()
Последнее исправление: Moisha_Liberman (всего исправлений: 2)

Робачевский «Операционная система UNIX» для общего развития.. и Linux Device Drivers актуальной редакции для практики.

в принципе этого хватит…

MKuznetsov ★★★★★
()
Ответ на: комментарий от Shadow

Слышал, в курсе.

Правда, к стыду своему, не вспомнил сразу, т.к. дело давно было. В M$-DOSовские времена.

Но взоржахом аки конь стоялый от общей такой ситуации вокруг, в которой уже даже такисты-геополитики перестали ориентироваться. =))) Да и говорят, последние события в тех местах как-то намекают на то, что не зря… «арабцы» (танцпол же «ай-яй-яй», поэтому и выбираю слова) по числу запусков в год переплюнули Роскосмос. с размахом. =)))

P.S.

но то, что делал больной человек, намекает на бессмысленность.

К сожалению, да.

ТС, это не намёк, если что на Ваши задачи.

Moisha_Liberman ★★
()
Последнее исправление: Moisha_Liberman (всего исправлений: 1)
Ответ на: комментарий от Shadow

Сделано довольно грамотно, но то, что делал больной человек, намекает на бессмысленность.

Тут ты ошибаешься. Очень большой процент одарённых людей с диагнозом. Но это не показатель того, что они больны.
Они просто другие.

И да, TempleOS очень конструктивна.

shleemypants
()

ассемблер x86

x86 ненужен же. Риск его должен был ещё в конце 80-х похоронить. Теперь благодаря apple это кажется наконец-то происходит. Ждем больше лаптопов на arm.

pawnhearts ★★★★★
()

Можно присоединиться к какому-нибудь семестровому университетскому курсу, где студенты разрабатывают компоненты ОС для RISC-V или чего-то подобного. Выполнять все лабораторные работы, стараясь уложиться в график. Там и необходимую литературу найдёте.

К концу второго семестра, думаю, что-нибудь работоспособное у Вас уже точно получится.

с ядром и системным софтом

Если интересно, попробуйте ОС без ядра.

И что Вы включаете в системный софт?

vM ★★
()
Ответ на: комментарий от shleemypants

Я имел ввиду, что такое в наше время может сделать только человек с idee fixe, и даже тогда смысла будет немного - конструктивнее работать на кафедре.

Shadow ★★★★★
()
Ответ на: комментарий от Shadow

конструктивнее работать на кафедре.

Тут 50 на 50, если с социумом никак, то какая кафедра?
Ну и всегда Кулибины делали «Идею».

shleemypants
()
Ответ на: комментарий от shleemypants

Хммм...

Боюсь, новых «идей», от новых «кулибиных» мы теперь дождёмся только при новых, теперь уже квантовых компьютерах… На остальных «идеях» уже не по разу и не по два оттоптались.

Moisha_Liberman ★★
()

Вот ещё инструкцию написал как сделать минимальную программу, работающую на голом виртуальном железе Qemu AArch64.

X512 ★★★★★
()

Just for fun от Торвальдса почитай.

another ★★★★★
()

Для тренировки сделай Колибри переносимой между x86, amd64 и arm64. В процессе получишь кучу знаний о создании ОС. На самом деле, больше, чем тебе хочется, но это уже детали.

gremlin_the_red ★★★★★
()

Да тут и читать ничего не надо, всё на поверхности.

Что такое ОС? Для начала это переключатель задач (программ, или подпрограмм). Вот первый шаг: если нужна вытесняющая многозадачность, пишешь переключатель контекста и вызываешь его по таймеру. Конечно, сохраняешь контексты в какой-то структуре.

Следующий шаг - распределение ресурсов. Это управление памятью через MMU, распределение её между задачами.

Дальше драйвера устройств и общий API для доступа к железу. HAL.

Вот и ОС нарисовалась.

Второй пункт можно вычеркнуть или оставить на потом.

Puzan ★★★★★
()
Последнее исправление: Puzan (всего исправлений: 2)
Ответ на: комментарий от anonymous

https://wiki.osdev.org/Main_Page

Удваиваю этого анонимуса.

Более того, специально для велосипедистов там есть велозаготовки на разные вкусы:

https://wiki.osdev.org/Bare_Bones

А ещё был цикл популярных статей на русском от автора, который это осилил (название намекает на самокритичность):

http://gownos.blogspot.com/

hobbit ★★★★★
()

Сразу говорю, что я не буду писать какую-то фигню, а создам полноценную ОС.

Не клянитесь (c)

Лучше напиши, чем твоя ОС по планам должна отличаться от существующих?

hobbit ★★★★★
()
Ответ на: комментарий от Shadow

вёл разработку в течение десяти лет, после серии психотических проявлений, которые он позже описывал как божественное откровение.

эту фразу можно много где на лоре применить

smilessss ★★★★★
()

О сроках бессрочных проектов

«Мифический человеко-месяц» – непреходящая классика.

t20
()
Ответ на: комментарий от X512

Mission impossible.

При очень большом желании наверно возможно, только сначала надо переписать колибри на какой-нибудь машиннонезависимый ассемблер, а с него уже транслировать на конкретные машины. Наверно даже можно и на базе llvm все это соорудить.

anonymous
()
Ответ на: комментарий от Eddy_Em

MINIX-3 сильно отличается от предыдущих версий, и с точки зрения обучения осям — не в лучшую сторону.

Так что я бы порекомендовал поискать именно второе издание «Разработки и реализации».

luke ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.