LINUX.ORG.RU

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

 


1

2

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

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

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


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

Может и пустая, но интересная. ;)

Ну вот если есть интерес к системным вещам, то лучше сразу направлять усилия на практически значимые задачи. Тема ОС минимально наукоемкая. Чего там изучать, мне совершенно непонятно. Если уж касаться этой темы, то лучше сразу вливаться в реализованные проекты. Но писать свою ОС... Зачем?

У нас на кафедре а Бауманке, когда я учился, аспиранты написали свою многозадачную операционную систему для своих нужд (касалось телеметрии). Потом я с ними беседовал, они мне говорили, что это, конечно, было пустой тратой времени. Какой-то опыт кем-то получен, а применить его некуда. Молодость только зря прожгли. Я вот тоже прожигал так, а сейчас сижу и жалею, молодежь удерживаю от распыления энергии, хе-хе. :)

Тот же AVR годится для написания примитивных OS, и познания, как оно работает.

А чему это поможет? Этот опыт испарится вместе с AVR. Да и ОС для AVR, ИМХО, какое-то дикое извращение. А для тех архитектур, для которых есть смысл в ОС, она уже как бы есть. Надо только влиться.

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

Чтобы вливаться в проекты нужен хоть какой-нибудь опыт, а максимум что я сделал был простенький загрузчик для x86, который считывал с определенного адреса на дискете elf, и разбирал его без всяких проверок на корректность архитектуры и т.п. После чего он прыгал на сишный код, но дальше дело не пошло, потому что любой код на Си, использующий указатели, отказывался работать.

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

Чтобы вливаться в проекты нужен хоть какой-нибудь опыт

Да перестань. Никто не требует от тебя прямо сразу же показывать то, что ты сделал. Опыт как раз на реальных и актуальных задачах и следует получать, а не на игрушечных и высосанных из пальца. Зачем тебе, например, писать загрузчик, если все загрузчики уже давно написаны. Ни тебе, ни кому-то еще эти загрузчики писать больше не надо. Ну нет там ничего такого, чем можно дорожить. Ну загляни в исходный код самого простого, ну исправь баг (а баг ты сможешь исправить, если разберешься с принципами и исх. кодом - вот и считай, что изучил), ну дополни функциональность или, наоборот, загни код под свои нужды. Ты и задачку свою решишь и разберешься с этим загрузчиком. И все.

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

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

Вот примерно из-за таких утверждений во всех ОС какое-то говно происходит. Нет, чтобы нормально заботать, как правильно нужно делать, все пишут «как получится», и на ходу фиксят узкие места, из-за чего код превращается в неперевариваемую трудноподдерживаемую лапшу.

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

Лапшу-то переделывают потом, чтобы было правильно. А «как надо» пытался делать, например, Танненбаум с Minix или, например, Столлман с HURD. И все равно там нет никакой наукоемкости. Ну ни капельки. Сложные инженерные замуты - да: идея (скажем, микроядро), проектирование, реализация.

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

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

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

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

devsdc ★★
()
31 января 2015 г.
Ответ на: комментарий от Zubok

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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