Другие языки программирования и технологии

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

Сразу хочу сказать что я нормальный, уравновешенный человек, отдающий себе отчёт в том что я делаю...) и я знаю на что иду, и что написание ОС это труд не одного человека) ) но просто ЛИНУС ТОВАЛЬДС СМОГ ЖЕ, А ЧЕМ Я ХУЖЕ)) )
Мне нужны советы:
как написать элементарнейшую ОС) можно даже типа MS-DOS ну или первой версии линукса с kernel 0.01))
у меня есть их исходники, я их изучал изучал, а толку всё равно как китайская грамота)) )
мне ещё нужно выучить языки програмиирования типа с++ и assembler....может ещё чего... .
так вот дайте совет вот сижу я за кампом сейчас, и что для этого нужно по очереди чтобы написать ОС
ну я думаю:
1. Скачать какой с++builder 6.0 и литературы к нему,
2. assembler -- и литературы к нему.
и чё дальше))) )

просто вот есть у меня например исходники ядра линукса и чё с ними делать, я знаю что там есть всякие makefile... config... а как это всё скомпилировать и записать на дискету или запустить на virtual box - хз (((((( -- объясните плиз!!! !
и есчё с++ builder 6.0 ну я так представляю это прога типа текстового редактора ну в общих чертах где пишется код.. .
и он же ( с++ builder 6.0 сразу может сделать отладку и скомпилировать на месте?

....ну допустим с этим разобрался.... что делать после второго пункта как изучил языки? как начать писать с чего?

у меня есть масса кинг про программированию, по сетям, по linux, unix, windows, ms-dos....есть книга Эндрю Таненбаума - Операционные системы: разработка и реализация (+СD) с полным описанием и исходниками ОС MINIX- я её только начал читать.
также прочидел на всех форумах посвященых этой теме.. набрался немного ума..)) ) но всёравно не достаточно) так вот обясните пошагово как и что деать с нуля) заранее огромнейшее спасибо!!!! по возможности дайте ссылок ...чтобы не обьяснять много) я сам разберусь и пойму,
Для начала.... Вышеперечисленные проги лучше не прочитать или просто хранить в библиотеке, а полностью разобрать, что называется, по полочкам)
Далее... Ну допустим одного знания, как писать ось, недостаточно - я надеюсь автор и сам понимает, что необходимо еще немалое знание архитектуры, и начать с вопроса - а под какую архитектуру писать? Или может будут какие-то сверхновые идеи для реализации в этой оси, которые потом планируется подогнать под создание новой архитектуры. Я надеюсь Автор понимает, что туда надо хотя бы базовое взаимодействие с теми же видеокартами, процессорами и т. д.
Третее.. . Ассемблер - основа основ, и помимо обычной литературы рекомендовал бы Кип Р. Ирвин "Язык ассемблера для процессоров Intel" (для начала) , затем начать разбирать кросс-архитектурные "основы" - хотя бы начать с AT&T))
Четвертое... Идея? Писать ось... Это не принципиально. Труд огромный, по-этому в первую очередь задуматься над вопросом, который очень любили нам задавать еще в техникуме: "А чем ваша программа лучше альтернативных решений в данном направлении? "
Ах да, чуть не забыл... Борланд тут слабо подходит)) ) Точнее Embarcadero теперь... Он больше ориентирован на быструю разработку програм под оси мелкомягких... Даже под *nix системы лучше юзать mingw. А если для старта нужна простота - ИМХО лучше взять с++ от тех же мелкомягких. Visual Studio. Насколько я понял (в крайнем случае это мое ИМХО) он больше ориентирован на низкоуровневое программирование, что естественно для написания ось нужнее.

И на последок... Не стоит браться сразу с ядра - его будет долго и муторно проектировать, писать и так далее. Быстро упадут руки, тем более что, насколько я понимаю, человек в программировании не особо разбираеться - скорее уж похоже на сисадмина, если не на продвинутого юзера-энтузиаста. Начните наверное "сверху". Например:
1) Написали "функции" на жестком наборее функций и стандартных типах данных - типа int и double и ст. мат-библиотекой. Именно класс "функция". УЖе сколько счастья - если подумать, вам теперь эта мат. библиотека и не надо, находите общую формулу Тейлора для разложения ф-й и всё...Например:
func Teilor;
Teilor=....; // Лень записывать всю формулу
double res=Teilor.Count("cos",1.57);
И всё...Затем вглубь - уже хватит ловкости написать полиномы. Затем слегка вверх - матрицы на фунциях. Опять вниз - полная длинная арифметика вплоть до комплексных чисел.
Затем понимаешь, что всё это работает с любой точностью и довольно быстро, и по сути этого достаточно для написания собственной "физики" для нехилой игры... Интереснее еще вглубь. Берешь разбираешь уже "загрузчик модулей" - блок, который будет загружать нужные написанные тобой библиотеки и выгружать когда ненадо. А это постепенно перерастает в диспетчер задач и далее - блок управления процессами по принципу хотя бы "карусели", что уже даст многопроцессорную ось.

И так далее.. .
И скучно не будет, ибо каждый раз ты получаешь что-то, что можно уже использовать, а не ждать еще пол года или даже пару лет, пока ты уже сможешь поюзать программу, которая использует твой модуль, и сложностей не возникнет - с++ выучить не проблема, далее пойдут "углубления" в архитектуру ПК и слабенькие ассемблерные вставки для быстроты работы модулей или экономии памяти, а дальше, если руки не опустяться, прийдешь от простого, просто оч. точного калькулятора под винду к собственной ОС.
М1
Михалыч 183
614
Лучший ответ
Изучи языки программирования, потом изучи как работает железо, потом разберись и определись с файловой системой и собственно пиши.
EG
Evgeny Golubev
58 704
> есть книга Эндрю Таненбаума - Операционные системы: разработка и реализация

Ты очумел ?)

У тебя великолепный учебный материал на эту тему, и ты при этом просишь "пошагово" ?)
AA
Asif Ahadov
32 502
Простите, зря вы сюда зашли, здесь вам не помогут, идите, например oszone.net, там более умные люди сидят
Nurulla Rahmanov
Nurulla Rahmanov
5 294
+1Кирилл Вноградов
действительно есть специализированные форумы, где на почти все знают ответы)
ну а так.. . с++builder 6.0 для написания оси пойдет ли?
да и с ассемблером ты должен будешь ооочень близко познакомится)
я бы сейчас на твоем месте ставил вопрос не о написании ос, а о глубоком изучении языков программирования (си и асм в частности) ну и с теории тоже)
то, что есть масса книг, а толк? должна быть одна, в которой ты бы все понимал)
не пытайся сразу брать слишком большие высоты, все равно не получится)
Изучи Assembler, научись пользоваться отладчиком.
Короче пошел на kalashnikoff.ru, там ты найдешь ответ :) По Assembler-у, однако в книге про написание элементов ОС тоже описано, и как с отладчиком "подружиться" :)
Тебе очень долгая предстоит дорога, судя по вопросу :)
Игорь Ххх
Игорь Ххх
1 321
Для написания ОС надо знать сначала как работает ЭВМ. Потом - какие ОС бывают и где они используются (условия приминения) . Необходимо знать основные подсистемы ОС (управления задачами, памятью и т. п. ) и типовые способы реализации этих подсистем. Необходимо знать аппаратную платформу под которую будет писатся ОС.

По исходникам линукс - есть дополнительно документация, которая описывает устройство ядра системы (называется как-то типа Linux Kernel Hacks)

С++ билдер для создания операционной системы вроде не подойдет т. к. у него нет возможности линковать flat код (по-моему).
АС
Абу Скгми
1 086
о как.. . а вы не задумывались, как самолеты по небу летают? там много всего интересного и при этом если знать, то все достаточно просто.. . А как телевизор кино показывает? А лучше попробуйте себя в писательской деятельности, сказки будете сочинять, загадки всякие