Операционные системы разработка и реализация
Автор 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, там более умные люди сидят
Изучи языки программирования, потом изучи как работает железо, потом разберись и определись с файловой системой и собственно пиши.
> есть книга Эндрю Таненбаума - Операционные системы: разработка и реализация
Ты очумел ?)
У тебя великолепный учебный материал на эту тему, и ты при этом просишь "пошагово" ?)
о как.. . а вы не задумывались, как самолеты по небу летают? там много всего интересного и при этом если знать, то все достаточно просто.. . А как телевизор кино показывает? А лучше попробуйте себя в писательской деятельности, сказки будете сочинять, загадки всякие
Для написания ОС надо знать сначала как работает ЭВМ. Потом - какие ОС бывают и где они используются (условия приминения) . Необходимо знать основные подсистемы ОС (управления задачами, памятью и т. п. ) и типовые способы реализации этих подсистем. Необходимо знать аппаратную платформу под которую будет писатся ОС.
По исходникам линукс - есть дополнительно документация, которая описывает устройство ядра системы (называется как-то типа Linux Kernel Hacks)
С++ билдер для создания операционной системы вроде не подойдет т. к. у него нет возможности линковать flat код (по-моему).
+1Кирилл Вноградов
действительно есть специализированные форумы, где на почти все знают ответы)
ну а так.. . с++builder 6.0 для написания оси пойдет ли?
да и с ассемблером ты должен будешь ооочень близко познакомится)
я бы сейчас на твоем месте ставил вопрос не о написании ос, а о глубоком изучении языков программирования (си и асм в частности) ну и с теории тоже)
то, что есть масса книг, а толк? должна быть одна, в которой ты бы все понимал)
не пытайся сразу брать слишком большие высоты, все равно не получится)
Изучи Assembler, научись пользоваться отладчиком.
Короче пошел на kalashnikoff.ru, там ты найдешь ответ 🙂 По Assembler-у, однако в книге про написание элементов ОС тоже описано, и как с отладчиком "подружиться" 🙂
Тебе очень долгая предстоит дорога, судя по вопросу 🙂
Как создать ОС.
Это возможно, только для этого необходимо написать программу на языке низкого уровня, например
подробнее...
Как создать свою ОС ?
Идея похвальная.
Прежде всего нужно знать систему команд машины, для которой намереваешься
подробнее...
Здравствуйте! Что такое FreeBSD?
Операционная Система открытого типа схожая с Unix.
FreeBSD — свободная UNIX-подобная
подробнее...
какие есть операционные системы ну кроме windows linux mac oc??
Бесплатные операционные системы:
Ubuntu — использующая ядро Linux операционная система,
подробнее...
Как называлась самая первая в Мире операционная система?
Развитие нормальных ОСей началось в 1965 году. Самой первой операционной системой является Multics,
подробнее...
Раскажите пожалуйсто историю языка програмирования делфи.
(язык программирования)
[править]
Материал из Википедии — свободной энциклопедии
Перейти
подробнее...
Программа-эта и есть программный код тоесть программный код является программой
Совершенно верно. Программа создается с помощью кода, затем посредством интерпретатора
подробнее...
с++ и с# это одно и тоже?
Постановка вопроса о сравнении языков не совсем корректна. Основная разница заключается не в
подробнее...
привет. можете подсказать какая разница между форматированием exFAT и NTFS? заранее спасибо
exFAT более проработаная файловая система для съёмных носителей, NTFS для
подробнее...
сравнить многозадачность windows и Linux
Не мальчеГи тут собрались, а какие-то хамы недалекие! На вопрос ответить не могут, но зато
подробнее...
Что такое операционная среда, и чем она отличается от системы?
Операционная система, ОС (англ. operating system) — базовый комплекс компьютерных программ,
подробнее...
Каковы различия в специальностях: математик программист и системный программист? Поступаю в вуз в этом году, посоветуй
Специальность "Математическое обеспечение и администрирование информационных систем" (351500)
подробнее...
В чем разница между 32bit и 64bit Windows 7 ???
Основное отличие 64-разрядной системы от 32-разрядной заключается в том, что 64-разрядная ось умеет
подробнее...
Кто и когда придумал первый язык программирования????В связи с какими потребностями его придумали??
вообще то первый язык программирования более менее приближенный к пониманию человеку был ASSEMBLER
подробнее...