LINUX.ORG.RU

Процессор для изучения ОС

 


1

2

Приветствую. Хочется изучить операционные системы (и их разработку в частности). Изучение теории лучше всего сопровождать практикой, то есть написанием своей операционной системы.

Вопрос следующий: под какую архитектуру писать? Ясно, что есть x86/x86_64, под которые написано множество примеров, но, имхо, в них слишком много костылей, которые будут «отвлекать» от написания и проектирования. Есть ли какая-нибудь архитектура (может быть даже MIX/MMIX), в которой количество костылей минимально и для которой есть периферия?

P.S. Имеется в виду, есть ли эмулятор процессора+периферии? Как, например, Bochs.


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

Кстати, слышал про L4, даже в закладках есть какой-то проект про L4 на github'е. А что значит, что оно (ядро) формально верифицировано?

vanzef
() автор топика
Ответ на: комментарий от Zubok

Не всегда переделывают.

Потому что когда становится понятно, что нужно переделать, код уже настолько увяз в лапше, что нормально переписать чуть ли не сложнее, чем просто написать заново.

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

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

Но если архитектура та же, то чем оно лучше эмулятора? Производительность меньше, но она не нужна, для самописной ОС. К тому же у меня основной рабочик компьютер - ноутбук. И стоят они (sbc) наверное много.

во первых я не вижу никакого смысла в самодельных ОС, а тем более на эмуляторах. От макеток на ARM они(SBC) отличаются областью применения, но у вас области применения не запланировано вообще.. Сколько стоят - выясните сами, сколько-то там денег, не думаю, что из поднебесной это сильно дорого

из области предложений на чём нюбу потренироваться в ОС-писании - можете попробовать сделать библиотеку с лёгкими нитями, их планировщиком и какими-нить IPC между ними.

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

Кстати, слышал про L4, даже в закладках есть какой-то проект про L4 на github'е. А что значит, что оно (ядро) формально верифицировано?

Ы? Это L4 формально верифицировано? Вообще, формально верифицированное - это значит, что используя системы машинные доказательства проверяют систему на соответсвие каким-нибудь требованиям (каким - это зависит от того, что именно хотят проверить: корректность, отсутсвие вечных циклов и т. п.

UPD. Вот написал и глянул. Ты про проект L4.verified? http://ertos.nicta.com/research/l4.verified/approach.pml

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

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

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

Видимо да, вот ссылка на github: https://github.com/seL4/l4v

Это ссылка на пруфер, а не на ядро. У них ядро лежит тут: https://github.com/seL4/seL4

Но L4 этим проектом не ограничивается. На базе L4 много разных проектов было испробовано. Даже есть проект L⁴Linux.

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

Или GNU Hurd развивай, а то они чота какта вяло-тускло пока.

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

Скажем так: это лотерея.

Где шанс выиграть 1/(2^( (YEAR - 1961)/2 )

abs ★★★
()

... но, имхо, в них слишком много костылей, которые будут «отвлекать» от написания и проектирования.

Сокрытие этих костылей от приложений и есть одна из основных задач ядра. Их же сокрытием для ядра занимается HAL. Без этого ядро будет каким-то «сферическим».

ИМХО, проще взять ту же x86_64 и начать. А дальше смотреть как пойдёт, учитывая такое осторожное отношение к костылям, то может быть что не далеко. Но если есть желание, то попробовать стоит.

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

Я к тому, что оно будет несколько далеко от реальности. Сами алгоритмы (управления памятью, планированием, др.) это одно, а вот их связь с реальным оборудованием и корректировка для учёта его особенностей уже другое, менее очевидное и более интересное.

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

Почитал, интересный проект. А есть туториалы как к нему хотя бы Linux собрать? А то в «образе», предлагаемом, ими почти ничего нет.

vanzef
() автор топика
Ответ на: комментарий от CYB3R

О, спасибо. Просто на их сайте было написано, что туториалы будут позже, поэтому я и решил, что их там нет. А что, на ваш взляд, в RISC-V лучше чем в <ISA_name>?

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

Полная открытость, свобода от патентов. Мало кто может таким похвастаться.

CYB3R ★★★★★
()

А нескучные обои там будут? !

w1nner ★★★★★
()
1 февраля 2015 г.

Присоединиться к разработке Hurd уже предлагали?

hobbit ★★★★★
()

Хочется изучить операционные системы
Изучение теории лучше всего сопровождать практикой, то есть написанием своей операционной системы

иди прими таблетки и ложись спать

reprimand ★★★★★
()

Допиши для qemu эмуляцию brainfuck-машины, сообщество тебе спасибо скажет.

crowbar
()

Тут адепт реактоси бегает. К нему в рабы иди.

dk-
()
Ответ на: комментарий от Zubok

Чего там изучать, мне совершенно непонятно.

например, хороший планировщик процессов все еще не написан

anonymous
()

про z80 тут уже писали, возьми FUZIX и смотри код, дописывай и коммить, это фан

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

Тема ОС минимально наукоемкая. Чего там изучать, мне совершенно непонятно.

Ключевое слово - «мне». В то время, как другие пилят Singularity и seL4, тебе «совершенно непонятно».

Я вот тоже прожигал так, а сейчас сижу и жалею, молодежь удерживаю от распыления энергии, хе-хе. :)

Это всегда очень, очень смешно, когда тупица и ничтожество так напыщенно пыжится делиться мудростью с молодежью.

У нас на кафедре а Бауманке

А, все понятно. Баумянка - рассадник посредственности.

anonymous
()

AVR бери. А вообще начни с ознакомления datasheet'ов на процы и сравни свой x86 с AVR. Потом подумай, с чего начинать.

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

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

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

например, хороший планировщик процессов все еще не написан

Если не написан, то надо взять любое известное нормальное ядро, изучить, что уже сделано, и написать. Зачем изобретать игрушечные операционные системы только ради того, чтобы написать планировщик? Кому нужно недоядро с крутым планировщиком? Это и есть бесполезная трата времени. Изучать сразу надо современные, передовые и работающие решения.

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

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

Другая тема, с которой лучше не спорить: существующие решения ниразу не современные, не передовые и не работающие, они такие, какими их хотят с пятОк гигантских корпораций. Они наполнены костылями и говном. Все.

Еще вопросы будут? :)

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

Еще вопросы будут? :)

Вопросов у меня вообще никаких нет. У меня только утверждения. В работающие решения вложено огромное число человекочасов. Планировщик - это вообще мизерная часть. Повторять подвиг по написанию ОС заново вокруг планировщика - полнейшая глупость. Нужны свои решения для контроллеров? Бери Linux, убирай все лишнее (благо это можно), добавляй свой планировщик, распространяй. Не годится Linux - бери другое ядро, есть много других многолетних проектов. Не ядро надо писать вокруг идеи планировщика, а планировщик к ядру!

Посмотри на Коливаса.

А зачем включать в ядро? Патчи свои выкладывай. Это лишь докажет, что можешь на постоянной основе сопровождать свои решения. А то понапишут, а потом пропадают через годик. Сопровождать некому.

Другая тема, с которой лучше не спорить: существующие решения ниразу не современные, не передовые и не работающие, они такие, какими их хотят с пятОк гигантских корпораций. Они наполнены костылями и говном. Все.

Лоооол. Ок, я не буду спорить. :)

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

его более лучший планировщик

O(n) лучший, серьёзно?

anonymous
()

Есть ли какая-нибудь архитектура

да, есть. Называется i8086. У тебя в локалхосте. Единственное, про разные модели памяти можешь не читать, используй «плоскую» на 4Гб, и регистры EAX, EBX, etc. А в остальном всё как по книжкам для i8086.

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

Однако, привычный Linux на таких крохах не поднять.

потому что не влезет в 64К.

emulek
()

слишком много костылей, которые будут «отвлекать»

Будь мужиком, спаяй себе процессор сам! ;)

http://www.aholme.co.uk/Mk1/Architecture.htm

Лаконичнейшая архитектура, всего 3 регистра и 2 стека...

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

Не ядро надо писать вокруг идеи планировщика, а планировщик к ядру!

Планировщик это просто пример. Один из многих. Переписать и написать посвоему можно практически все и это все можно сделать лучше существующих решений только потому, что они не будут направлены на удовлетворение 100500 потребностей сразу и не будут писаться из под палки оракла и гугла.

Нужны свои решения для контроллеров? Бери Linux, убирай все лишнее (благо это можно), добавляй свой планировщик, распространяй.
А то понапишут, а потом пропадают через годик. Сопровождать некому.

Потом добавляй свои виртуальные часы, распостраняй, добавляй не упоротое управление памятью, распостраняй, следи за идиотским изменением ядра линупса, правь поломки всего чего можно, регрессии, атупизм меинтейнеров, поддерживай, блеать, кому сказал!!!11

Лоооол. Ок, я не буду спорить. :)

сразу видно человека, который ниразу в сорцы современных ядер не заглядывал, а если и заглядывал, то ничерта не понял

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