Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
Написание ОС
 
Решил писать свою ОС. Знаний хватает, но не хватает опыта :) В общем попрошу подсказать мне, с какими проблемами придется столкнуться.
 
Первая и ИМХО единственная проблема с которой тебе придется столкнуться - это понять зачем ты это делаешь :)
Остальное уже дело техники.

;-------
;NK
 
2freeman: __NK правильно глаголит. Убьешь тучу времени и сил...

А проблемы стандарты (если платформа x86): Protected Mode, VMM, Drivers, Multitasking, GUI, FileSystem... список можно ещё продолжать. =(

Для начала попробуй реализовать некоторое подобие старого доброго DOS-а (консоль), потом сделай GUI (как Win3.1), потом уже берись за более сложные задачи. Скажу сразу, что без знания ассемблера скорее всего не обойдется.
 
Я делаю для собственного удовлетворения :)
И не надо мне говорить, что под мою ОС не будет софта. и.т.д. Просто это нужно мне, может я извращенец такой :)
Повторю, знаний у меня достаточно, просто хотелось бы, чтобы кто-нибудь поделился опытом.
 
Еще добавлю, что отлично знаю С++ и на нормальном уровне ассемблер. Но хотелось бы писать на с++ с ассемблерными вставками
 
То, что я написал про "этапы" -- я так и программировал. Остановился в середине GUI (Win 3.1). Правда у меня была совместимость с DOS (неполная) и FS FAT16 =)

Писалось все на асме. Исходников не проси -- погибли со старым винтом =(
 
Цитата
freeman пишет:
Еще добавлю, что отлично знаю С++ и на нормальном уровне ассемблер. Но хотелось бы писать на с++ с ассемблерными вставками

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

Кста, WinNT так и написана. ANSI C++, только HAL и, если мне память не изменяет, NTOSKRNL на асме.
 
Первая проблема при написании ядра ОС проявляется в отсутствии системно независимой библиотеки стандартных функций Си. Таким образом всё необходимое из привычных средств придётся написать самому.
Нужно обратить внимание на формат исполняемых модулей, генерируемых компилятором и/или компоновщиком. Так, например, использование Win32 PE формата в своей ОС врядли вас удовлетворит — слишком много DOS/Windows-зависимых фрагментов, сложность применения. Но и использование простого неформатированного ядра (BINARY или аналогичного MS-DOS COM) невозможно в ряде случаев, например, если ОС предполагает использование единого общего адресного пространства.
В общем, выбор определяется системной организацией памяти будущей ОС: если используется страничная адресация или другой метод изоляции и позиционирования адресного пространства программ, то формат PLAIN BINARY нам подойдёт (см. MenuetOS). Если же используется единое адресное пространство или возможность динамического связывания (DLL), то нам нужен перемещаемый (relocatable) формат, такой, например, как COFF Object, ELF Object, Win32 DLL, содержащий ссылки на адреса, которые необходимо исправлять при размещение исполняемого модуля в памяти.
 
Вопрос зачем определит дальнейшую политику написания ОС. Если она не должна быть многофункциональной, то возможно не понадобится вообще думать на тему GUI, multitasking и т.д. Существует мнение, что для решения расчетных задач на мощных вычислительных системах лучше вообще обходиться без OC а писать расчетную программу, которая будет напрямую использовать железо.
 
Цитата
Гость пишет:
Вопрос зачем определит дальнейшую политику написания ОС. Если она не должна быть многофункциональной, то возможно не понадобится вообще думать на тему GUI, multitasking и т.д. Существует мнение, что для решения расчетных задач на мощных вычислительных системах лучше вообще обходиться без OC а писать расчетную программу, которая будет напрямую использовать железо.

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

В реале я не встречал подобных комплексов. Как правило такой софт работает под управлением микроОС, либо выполнен полностью в железе (ИМО транспьютеры так и сделаны).
 
Однокурсник на дипломку ОСь писал, получилось смесь nixа и ДОСа. Ушло у него на это 2 года GUI нету, сетивой поддержи тоже, однопоточная. Писал он ее полностью на асме.
 
2User_4x: долго ж он её писал... =) Видно пива было слишком много... =)

Реально такая фишка пишется где-то за четыре-пять месяцев, потом ещё пару-тройку на отладку. Правда надо очень хорошо знать ассемблер.
 
Кстати, Unix первоначально писалась американскими спец службами для внедрения в СССР, чтобы отбросить нашу науку на несколько лет назад. Но что из этого вышло...
Я это к тому, что вдруг товарищ напишет свою ОСь и переплюнит Билли по продажам? А? Будет Freeman OS. Звучит!
 
Цитата
Gondorian пишет:
Кстати, Unix первоначально писалась американскими спец службами для внедрения в СССР, чтобы отбросить нашу науку на несколько лет назад. Но что из этого вышло...

Ты не прав. Юникс разрабатывался в недрах DARPA как внутренняя OS, но никак не диверсионная штука.

Цитата
Gondorian пишет:
Я это к тому, что вдруг товарищ напишет свою ОСь и переплюнит Билли по продажам? А? Будет Freeman OS. Звучит!

Звучит, конечно, здорово, только много лет товарищ упустил, да и один он...
 
Операционная системв Unix ведет свое происхождение от разработанной Ф.Корбато(F.Corbato) из MIT'a в начале 60-х годов системы CTSS(Comprehensive time-Sharing System). Оценив преимущество многопользовательной многозадачной системы, компания General Electric AT&T Bell Labs и MIT начали проект названный MULTICS....
В начале 1968 года Руд кенедей,Дуг МакИлрой,Денис Ричи и кен Томпсон подробно обсудили, что нужно сделать для спасения некоторых идей, связанных с проектом MULTICS и начили собственное иследование.....
Питер Нейман назвал новую операционную систему Uniplexed Information and Computer Service(UNICS далее кто то изменил это название на UNIX)......

Hungry Minds - Unix
 
А это ][акер писал.
 
Будет время - тоже поробую.
 
MishaSt, все попробовать не только времени - жизни не хватит :) лучше бы пробовать более насущные вещи...
 
Осей много, и кому они нужны, а вот ось с ногами - это рулёз
 
Цитата
Chajnik пишет:
Осей много, и кому они нужны, а вот ось с ногами - это рулёз
Это которая самораспространяющаяся, как вирус или червь?
Есть у меня планы приладить к одной emedded OS, "ноги" :)
Только вот ещё не определился со способом размножения...
А если ещё под ней будет управляющая программа работать с AI, вообще электронно-виртуальный кибер-организм получится. Вот на это я считаю стоит потратить личное свободное время.

ОС с сетевыми драйверами (самых распространённых сетевых адаптеров)+ FS: FAT, + linux native, telnet, ftp ~ занимает 500-800 Кб.
Осталось программы размножения и управляющую придумать и запускать ОС по сетям.
Страницы: 1
Читают тему