пишем свою ос



Операционные системы разработка и реализация

Автор C0D0D2D3D0 задал вопрос в разделе Другие языки и технологии

Написание элементарной ОС!!!) и получил лучший ответ

Ответ от Tempos[эксперт]
Для начала.... Вышеперечисленные проги лучше не прочитать или просто хранить в библиотеке, а полностью разобрать, что называется, по полочкам)
Далее... Ну допустим одного знания, как писать ось, недостаточно - я надеюсь автор и сам понимает, что необходимо еще немалое знание архитектуры, и начать с вопроса - а под какую архитектуру писать? Или может будут какие-то сверхновые идеи для реализации в этой оси, которые потом планируется подогнать под создание новой архитектуры. Я надеюсь Автор понимает, что туда надо хотя бы базовое взаимодействие с теми же видеокартами, процессорами и т. д.
Третее... Ассемблер - основа основ, и помимо обычной литературы рекомендовал бы Кип Р. Ирвин "Язык ассемблера для процессоров Intel" (для начала) , затем начать разбирать кросс-архитектурные "основы" - хотя бы начать с AT&T))
Четвертое... Идея? Писать ось... Это не принципиально. Труд огромный, по-этому в первую очередь задуматься над вопросом, который очень любили нам задавать еще в техникуме: "А чем ваша программа лучше альтернативных решений в данном направлении? "
Ах да, чуть не забыл... Борланд тут слабо подходит)) ) Точнее Embarcadero теперь... Он больше ориентирован на быструю разработку програм под оси мелкомягких... Даже под *nix системы лучше юзать mingw. А если для старта нужна простота - ИМХО лучше взять с++ от тех же мелкомягких. Visual Studio. Насколько я понял (в крайнем случае это мое ИМХО) он больше ориентирован на низкоуровневое программирование, что естественно для написания ось нужнее.
И на последок... Не стоит браться сразу с ядра - его будет долго и муторно проектировать, писать и так далее. Быстро упадут руки, тем более что, насколько я понимаю, человек в программировании не особо разбираеться - скорее уж похоже на сисадмина, если не на продвинутого юзера-энтузиаста. Начните наверное "сверху". Например:
1) Написали "функции" на жестком наборее функций и стандартных типах данных - типа int и double и ст. мат-библиотекой. Именно класс "функция". УЖе сколько счастья - если подумать, вам теперь эта мат. библиотека и не надо, находите общую формулу Тейлора для разложения ф-й и всё...Например:
func Teilor;
Teilor=....; // Лень записывать всю формулу
double res=Teilor.Count("cos",1.57);
И всё...Затем вглубь - уже хватит ловкости написать полиномы. Затем слегка вверх - матрицы на фунциях. Опять вниз - полная длинная арифметика вплоть до комплексных чисел.
Затем понимаешь, что всё это работает с любой точностью и довольно быстро, и по сути этого достаточно для написания собственной "физики" для нехилой игры... Интереснее еще вглубь. Берешь разбираешь уже "загрузчик модулей" - блок, который будет загружать нужные написанные тобой библиотеки и выгружать когда ненадо. А это постепенно перерастает в диспетчер задач и далее - блок управления процессами по принципу хотя бы "карусели", что уже даст многопроцессорную ось.
И так далее.. .
И скучно не будет, ибо каждый раз ты получаешь что-то, что можно уже использовать, а не ждать еще пол года или даже пару лет, пока ты уже сможешь поюзать программу, которая использует твой модуль, и сложностей не возникнет - с++ выучить не проблема, далее пойдут "углубления" в архитектуру ПК и слабенькие ассемблерные вставки для быстроты работы модулей или экономии памяти, а дальше, если руки не опустяться, прийдешь от простого, просто оч. точного калькулятора под винду к собственной ОС.

Ответ от Кирилл Вноградов[гуру]
Простите, зря вы сюда зашли, здесь вам не помогут, идите, например oszone.net, там более умные люди сидят

Ответ от Estella[гуру]
Изучи языки программирования, потом изучи как работает железо, потом разберись и определись с файловой системой и собственно пиши.

Ответ от Sm[гуру]
> есть книга Эндрю Таненбаума - Операционные системы: разработка и реализация
Ты очумел ?)
У тебя великолепный учебный материал на эту тему, и ты при этом просишь "пошагово" ?)

Ответ от Aleks Aleks[мастер]
о как.. . а вы не задумывались, как самолеты по небу летают? там много всего интересного и при этом если знать, то все достаточно просто.. . А как телевизор кино показывает? А лучше попробуйте себя в писательской деятельности, сказки будете сочинять, загадки всякие

Ответ от AlexSid[гуру]
Для написания ОС надо знать сначала как работает ЭВМ. Потом - какие ОС бывают и где они используются (условия приминения) . Необходимо знать основные подсистемы ОС (управления задачами, памятью и т. п. ) и типовые способы реализации этих подсистем. Необходимо знать аппаратную платформу под которую будет писатся ОС.
По исходникам линукс - есть дополнительно документация, которая описывает устройство ядра системы (называется как-то типа Linux Kernel Hacks)
С++ билдер для создания операционной системы вроде не подойдет т. к. у него нет возможности линковать flat код (по-моему).

Ответ от Trs[гуру]
+1Кирилл Вноградов
действительно есть специализированные форумы, где на почти все знают ответы)
ну а так.. . с++builder 6.0 для написания оси пойдет ли?
да и с ассемблером ты должен будешь ооочень близко познакомится)
я бы сейчас на твоем месте ставил вопрос не о написании ос, а о глубоком изучении языков программирования (си и асм в частности) ну и с теории тоже)
то, что есть масса книг, а толк? должна быть одна, в которой ты бы все понимал)
не пытайся сразу брать слишком большие высоты, все равно не получится)

Ответ от Giokami[гуру]
Изучи Assembler, научись пользоваться отладчиком.
Короче пошел на kalashnikoff.ru, там ты найдешь ответ 🙂 По Assembler-у, однако в книге про написание элементов ОС тоже описано, и как с отладчиком "подружиться" 🙂
Тебе очень долгая предстоит дорога, судя по вопросу 🙂

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Написание элементарной ОС!!!)
SMART на Википедии
Посмотрите статью на википедии про SMART
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*