Народ прошу без издевок, просто интересует вопрос, что нужно знать, что читать чтобы создать свою ось. Слышал надо почитать таненбаума и знать языки асемблер и си++. Свои шутки типа гыы ты ее никогда не напишешь или еще один чокнутый появился, оставьте при себе. Я давно занимаюсь веб-разработкой и знаком с программированием, вот щас у меня освободилось время и 3 годовалая идея по создаю своей оси из теории рвется в практику.
Если есть идеи или опыт подскажите, буду рад любому совету. Нет советов не пишите не засоряйте тему
Заранее всем благодарен
5 октября 2009 в 8:02
#53 +1, аналогично, но время даром не прошло, узнал много нового и интересного.
4 октября 2009 в 23:01
Тоже хотел в свое время написать ОС. Вырос =)
4 октября 2009 в 0:04
сделаем как колибри ось и тогда можно будет людей привлечь для разработок
1 октября 2009 в 18:05
тоже загорелся, а то противно жить без своей оси , давайте пробовать
1 октября 2009 в 14:00
Ярик, у тебя что, дисграфия и браузерный аспелчекерит?
29 сентября 2009 в 18:01
я скжу что с++ тут врядли поможет, для начала надо определить как именно будет проходить любой процес в системе(дать програмам полное управление или зделать какие то библиотеки как в виндовсе),
ну по проще просто зделать на асамблере програму способную запускатся без операцеонной системи но имело хоть би елементарную досовской текст на екране и при нажатиее какойто кнопки что-би можно било перефатить ето собитие, ну ето хоть то начало с которого можно продолжать, желаю успеха)))
29 сентября 2009 в 11:02
> А возможно ли создать БЫСТРУЮ операционную систему на Лиспе в современных условиях?
такие уже существуют но поименно не помню. лисп достаточно быстр чтобы конкурировать с С.
29 сентября 2009 в 7:01
на asm да
28 сентября 2009 в 22:02
А возможно ли создать БЫСТРУЮ операционную систему на Лиспе в современных условиях?
19 сентября 2009 в 12:04
вау, дожили до коммунизьма? никсы нахаляву, где куникс для поставки в комерческие проекты раздают?
юмористы, не путайте линукс, открытые сырцы и бесплатность, это три большие разницы.
18 сентября 2009 в 23:05
Благодарю за поправку и занятный материал.
18 сентября 2009 в 20:05
Торвальдс взял за основу Миникс, написанную Эндрю Танненбаумом для своих студентов. А было это предположительно так:
[quot]
Здравствуйте, все те, кто использует миникс -
Я делаю (бесплатную) операционную систему (это всего лишь хобби, и она не будет большой и профессиональной как gnu) для клонов 386(486) AT.
Работа над ней началась в апреле и скоро будет закончена.Я бы хотел
получить отзывы о том, что людям нравится/не нравится в миниксе, ибо моя ОС на неё похожа (такое же устройство файловой системы (из практических соображений)среди всего прочего).
Я уже перенёс bash(1.08) и gcc(1.40), и всё, кажется, работает. Подразумевается, что практические вещи у меня появятся через несколько месяцев, и я хотел бы узнать, каких особенностей хотелось бы большинству. Любые предложения принимаются, но я не обещаю, что реализую их
Линус (torvalds@kruuna.helsinki.fi)
PS. Да, у неё нет никакого миниксовского кода, и у неё есть многопоточная фс.Она НЕ переносима (применяет переключение задач 386-го, и т. д.), и, вероятно, никогда не будет поддерживать ничего, кроме жёстких дисков AT, т.к. это всё, что у меня есть .
[/quot]
18 сентября 2009 в 17:05
Пакет офисных программ сам по себе уже работа не для одного человека. В теори всё возможно, но это тонны работы. Неплохо разобраться с моделью работы никсов(Потому что открыты, и наиболее разделены на составляющие) и погуглить по фразе "Теория операционных систем". С учётом задач поставленных в теории, проектировать ядро. Торвальдс написал ядро Linux бывши студентом(Взяв Unix за основу). Если я не ошибаюсь он развивает его до сих пор. Но обеспечить её необходимой базой даже минимального ПО, если нет гениальной революционной идеи, которая упростит его разработку в десятки раз невозможно для одного человека.
Надо ещё не забывать, что над этими задачами работают ещё тысячи программистов. Гугл обещает свою ось к 2010ому году. Думаю там не один человек над ней будет трудиться, и наврядли "этот человек" будет откровенно глуп.
P.S: Не одной операционной системы не видел, где в полной мере были бы воплащены современные требования теории.
P.S.S: Прошу извинить если всё было сказанно не по разу, осбуждения читать нет времени.
—Прочитал обсуждение, скажу в защиту никсов—
Сама идея проприаретарного софта – порочна, она ориентированна на конечный вынужденный результат. Открытый софт воплощает оригинальные авторские идеи, более того многих авторов. Окна – вылизанное нагромождение кода, которое на практике подвержено унстейблу при попытки его расширяемости сторонним ПО. Из-за своей архитектуры(Несогласованность конфигурирования), в то время как никсы основываются на принципе расширяемости, пишутся всем миром за даром и живут при этом, составляя конкуренцию окнам. А также незабываем, что мак основывается на никсах, и миром часто более почтён.
18 сентября 2009 в 16:05
Menuet новый писать задумал?
10 сентября 2009 в 17:03
Да ну… ядро это ядро… набор драйверов это другое… прокладка HAL третье… графическая подсистема win32k.sys то четверное…
Само ядро ntoskrnl.exe ( ну и все его там разновидности мальтипроц/PAE) .. а все остальное просто работает в нулевом кольце… но никак не ядро.
А за С++ в нулевом кольце… это библиотека DirectX такое может практиковать.
Ну и часть ядра Windows CE с подсистемами всякими написана на С++
10 сентября 2009 в 17:02
для меня все что на нулевом кольце – ядро по определению.
10 сентября 2009 в 16:02
>> уточняю – интерфейс приложений к драйверам видюхи в нулевом кольце
>> реализован на С++.
Я про ядро говорил… а не про интерфейс драйверов.
10 сентября 2009 в 15:01
> С++ в ядре Винды никогда не пахло!!!
уточняю – интерфейс приложений к драйверам видюхи в нулевом кольце реализован на С++.
10 сентября 2009 в 14:01
"А "умные" юзверы Линуксы входят в ступор при компиляции драйвера, когда компилятор начинает ругаться на неизвестные методы или елементы структур…"
Опыт работы с линуксом есть, раз такое говоришь? Я ни разу с подобным не встречался и ни разу не входил в ступор. Может я ядро не с "kernel.org вместе взятыми.." использую? Или дрова ГРАМОТНО написанные?
10 сентября 2009 в 11:05
>> грамотно и на С++ – это не совместимые вещи. ето что надо было курить
>> чтобы плюсовый код в нулевое кольцо затащить?
Грамотно и на С… С++ в ядре Винды никогда не пахло!!!
>> Я рад за него. А ядро он видел, чтобы сравнивать?
Да ядро видел.. и то что было выложено в инете, и то которое распространяется MS в позновательных целях.
>> PS Часть ядра NT валяется в нете в свободном доступе – только пользы
>> с этого никакой.
Кому как… много интересного можно подчеркнуть, если еще уметь пользоваться IDA и символами
>>>в >>отличи того же ядра Linux c kernel.org вместе взятыми..
>> Интересно, а откуда такие сведения?
На собственном опыте – разработка нормального работающего драйвера под Винды намного легче, чем аналогичного под линуху, когда с каждим новым релизом ядра Линуксы, код приходится адаптировать. А "умные" юзверы Линуксы входят в ступор при компиляции драйвера, когда компилятор начинает ругаться на неизвестные методы или елементы структур…
10 сентября 2009 в 7:02
ненадо хз кого сравнивать с профи с многолетним опытом и неопытным "студентом" (без обид, но сам вопрос изначально показывает то, что предмет незнаком чуть более чем полностью)
ненадо сравнивать аналог винды/юникса с непонятной ОС
для контроллера от Texas, например, операционка 32 килобайта весит и что? на ней и задачи соответствующие выполняются: датчики опрашиваются, данные выдаются в сеть или контроллер usb
10 сентября 2009 в 7:02
"код html с двумя php-шными вставками со значениями переменной – это реально, а алгоритмического отлаженого кода в 600 строк в день без копипаста – дайте посчупать."
ну у php это типовые вещи.
в делфях, к примеру за 3 месяца в программе для радиовещания наколбашено 21 тыс трок.
10 сентября 2009 в 7:01
МИНИКС-3 от Таненбаума – ядро на ~4000 строк. А вся ось – ~20000 строк.
10 сентября 2009 в 1:01
Холеварчег?
//www.sql.ru/forum/actualthread.aspx?bid=16&...
xD
10 сентября 2009 в 1:00
Интересно, а вот прикольно на каждую подобную тему поднимать такую шумиху… а ведь каждый знает, что из этого ничего не получиться)
10 сентября 2009 в 0:00
> #23 принципиально плюсовый код может быть нормально откомпилирован не хуже си, так что гипотетически использование плюса не гарантирует тормознутости… на практике да, обычно тормозней, но всё-равно сейчас уже не на много трансляторы умнее чем 15 лет назад.
скомпилирован то может быть и может даже работать – но то что с ним тягаются Java и интерпретаторы всетаки наглядно иллюстрируют его тормознутость даже после современных компилеров …
9 сентября 2009 в 23:05
#23 принципиально плюсовый код может быть нормально откомпилирован не хуже си, так что гипотетически использование плюса не гарантирует тормознутости… на практике да, обычно тормозней, но всё-равно сейчас уже не на много трансляторы умнее чем 15 лет назад.
#22 "в день реально до 600-800 строк делать, если на php работаем, допустим."
не верю!
код html с двумя php-шными вставками со значениями переменной – это реально, а алгоритмического отлаженого кода в 600 строк в день без копипаста – дайте посчупать.
уснув на клаве можно и больше настрочить за полный рабочий день…
5к строк кода на си в год это не мало. в принципе если грамотно применять модульное программирование можно раза в два-три больше, но вобще цифра вполне правдоподобная, от задачи конечно многое зависит, но как средняя температура по больнице это близко к истине, ещё 10к строк будут фактически написаны но на тесты для проги в 5к строк…
9 сентября 2009 в 23:03
точно не знаю но вероятней всего. подождем мож уточнит сей момент
PS Часть ядра NT валяется в нете в свободном доступе – только пользы с этого никакой.
9 сентября 2009 в 23:02
>>Если на то пошло, то ядро Винды написано очень грамотно, в >>отличи того же ядра Linux c kernel.org вместе взятыми..
Интересно, а откуда такие сведения? Вы видели ядро масдая?
9 сентября 2009 в 23:02
Макс умеет писать дрова для масдая отсюдова вероятно и оттолкнулся.
9 сентября 2009 в 23:02
Я рад за него. А ядро он видел, чтобы сравнивать?
9 сентября 2009 в 23:00
> Если на то пошло, то ядро Винды написано очень грамотно
грамотно и на С++ – это не совместимые вещи. ето что надо было курить чтобы плюсовый код в нулевое кольцо затащить?
Грамотно написано было ядро NextStep.
9 сентября 2009 в 22:05
"Производительность хорошего прогера (без особого копи-паста) – 5 000 строчек в год. Делите и умножайте и да прибудет с вами сила! ))"
12 строк в день? обезьяна печатает больше
в день реально до 600-800 строк делать, если на php работаем, допустим.
рекорд 3 тыс за сутки без копипаста.
"если не опускать руки то через год – 10 из под моих пальцев выйдет таки операционка =)"
и она морально устареет. у нее будет только одна актуальность – это "никомуненужность"
"Попробую подитожить"
надо 20 часов в сутки работать лет 5, что бы вышел толк и стать нормальным программистом, а потом начать писать что либо.
кроме языка и железа в первую очередь надо знать существующие архитектуры, системы работы и взаимодействия блоков ОС
если честно, то афтар не первый школьник, кто затевает нечто подобное.
колибриОС посмотрите.
9 сентября 2009 в 22:04
а через десяток инкарнацый глядишь и офисный пакет получится.
не важно что у человека ничего не выйдет, если честно почитает полезную литературу может получиться качественный специалист.
9 сентября 2009 в 21:02
>> Если не ошибаюсь – в ХР 75 000 000 (75 миллионов) строчек кода.
Интересно, откуда такие сведения?
>> если попытатся задействовать болучется нечто кривое на подобие
>>маздая
Если на то пошло, то ядро Винды написано очень грамотно, в отличи того же ядраLinux c kernel.org вместе взятыми.. извините конечно, но только полные идиоты меняют ядерные структуры с каждым новым релизом ядра, и обратная совместимость летит ко всем …
9 сентября 2009 в 21:02
Спасибо всем особенно Глебу (*Хрюккиннен*) Раздолбаеву и Роману xenomorf Сидякину. Попробую подитожить, необходимо минимум 1-2 часа в день, хорошая библиотека из книг по железу си и асемблеру и вера с настойчивостью и все обязателньо получится может не завтра и скорее всего не после завтра но если не опускать руки то через год – 10 из под моих пальцев выйдет таки операционка =)
Еще раз спасибо всем кто учавствовал в обсуждении =)
9 сентября 2009 в 21:00
нормальные люди новые оси пишут путем кросс-компиляции до того момента когда на новой оси начнет запускатся gcc …
9 сентября 2009 в 19:03
Тру хардкодеры пишут по 4 000 строк за выходные:))
Ось начинается с загрузчика. Загрузчик пишется за вечер. А дальше начинаем играть в увлекательную игру "1984" – воображаем себе, что на дворе 1984-й год, и весь софт, когда-либо написанный для персоналок, состоит из одного этого загрузчика (ну хорошо, есть ещё ассемблер и компоновщик;). И начинается веселуха – напиши себе текстовый редактор, напиши себе интерпретатор командной строки и т.д.
В ходе этого вылазят вопросы: а как делается распределение памяти и переключение задач; как написать файловую систему; как работать с жёсткими дисками через порты ввода-вывода; как работать с видеокартой, для начала VGA, потом VESA и т.д.
Полезно почитать Танненбаума, где на большинство вопросов, касающихся ядер и файловых систем, есть какие-никакие ответы; полезно также ассемблер выучить. Хорошая книга Зубков С.В. ассемблер для ДОС, Виндовс и Уних (там заодно и про железо рассказано вкратце). Подробная книга про железо – Кулаков В. Программирование на аппаратном уровне. Хорошо зайти на wasm.ru, там раньше тусовались несколько маньяков, они написали хороших статей.
И нужна хотя бы пара часов в день свободного времени.
Понятно, что коммерческая ось (в особенности Национальная Русская ОС) из этого вряд ли получится, но фан всяко будет;)
9 сентября 2009 в 19:01
Тоже была такая идея.. Только писать графф оболочку под DOS. Но когда дело дошло до прямого программирования видеокарты, я забил.
9 сентября 2009 в 19:01
Я боюсь, что только год уйдёт на изучение Си, а то от пхп, там только 5% синтаксиса…)
9 сентября 2009 в 17:00
Я писал свою Ось. можно взять OS-Kit – там есть много базовых компонентов. для получения работающей альфы требуется один человеко-год. можеш подключится к проэкту JariOS – его начали в мае прошлого года.
если же хочеш начать с нуля то надо знать
1) Железо
2) Ассемблер для этого железа
3) С
4) Make
C++ и прочий хлам внутри ОС никогда не пригодится. если попытатся задействовать болучется нечто кривое на подобие маздая
9 сентября 2009 в 16:04
Я смотрю, обнадёжили человека… )
То что одному написать аналог Windows XP на несколько десятков миллионов строк кода – это он и так понял (см. топикообразующий пост)…
Но существуют *nix-дистрибутивы вмещающиеся всего на пару 3,5" дискет… Так что написать свою ОС не на столькоко сложно – на сколько это кажется! (не так страшен чёрт – как его малютка… )
То что это в одиночку довольно тяжело и несколько безсмысленно, это понятно и автору топика. Но на сколько я понял – человек хочет этим занятся не для того чтобы написать какую-то конкретную ОС, по скольку какой-либо чёткой и конкретнойцели у него, судя по его постам, я не вижу. Человек просто хочет довольно скурпулёзно и подробно разобрать (читай – "заглянуть под капот") как работают ОС на низком уровне. Чего и куда там крутится, и что где вертится.
Рекомендую изучить низкоуровневые языки типа ассеблера и Си (можно и С++ впридачу). Почитать Тоненбаума. Взять дизассемблер, или лучше готовые исходники ядра Linux, написать самостоятельно несколько драйверов, перелопатить несколько видов загрузчиков, и изучить "до самых косточек" несколько файловых систем… Думаю этого хватит на первые 3-5 лет.
Ну, а позже, как наберётесь достаточно опыта и умений, а так же созреете с тем, что конкретно за ОС и для каких нужд вы хотите написать – думаю вопросов быть не должно (за исключением некоторых частных случаев).
Just IMHO
9 сентября 2009 в 16:01
Также считаю, что одному писать ось очень очень сложно (может даже не реально). Это ж нужно наверно и свою файловую систему придумать и mbr-загрузчик писать. А чего стоит написать кучу драйверов для каждого устройства?
И не вижу смылса писать эту ось только под себя. Тогда вы не сможите юзать ПО под другие ОС, если конечно не напишите эмулятор.
А вообще для написании ОС, нужно обязательно знать Assembler.
9 сентября 2009 в 16:01
Ну МБР можно спи-ить, например, у МИНИКС. Переделать под свою примитивную ФС и все. А драйверы можно на начальном этапе написать только для консоли и диска.
9 сентября 2009 в 16:00
Если не ошибаюсь – в ХР 75 000 000 (75 миллионов) строчек кода. Производительность хорошего прогера (без особого копи-паста) – 5 000 строчек в год. Делите и умножайте и да прибудет с вами сила! ))
9 сентября 2009 в 15:05
Здесь посмотри:
//vkontakte.ru/topic-912_21942156
9 сентября 2009 в 15:04
Ты не сможешь. Во всяком случае в ближайшие 2-3 года. Даже начать.
Почитай курсы по архитектуре ОС. По архитектуре ядра ОС. Планировщи задач, менеджер памяти, абстракция от оборудования, драйверы устройств – это все придется писать с нуля ))). Тысячи задач необходимо решить. И это не считая разработки низкоуровневого софта, компиляторов, исполнимых форматов, файловых систем, стандартныз библиотек для работы нужных программ и т.п.
Намного более правильный путь – изучить архитектуру unix, и создать свой дистрибутив на основе Linux, благо таких желающих тысячи и как все делать вполне ясно. Это хотя бы продуктивно будет.
9 сентября 2009 в 15:02
Идея интересная но все же хочется стационарную написать чтобы понять принцип всего этого дела а потом уже на нововеенья реагировать и поспевать за ними.
9 сентября 2009 в 15:01
вообще изначально хочу под себя написать ось и пакет офисный программ , так как я их вижу, а если это удастся то буду думать дальше
9 сентября 2009 в 15:01
Прогрессивная общественность уже давно задумывается о браузерной операционной системе;) Ну вот например:
//www.f1cd.ru/os/reviews/web_operating_system_p...
9 сентября 2009 в 15:00
ну чтоб использовать на вашей ОС си и си++ придется еще компилятор под них портировать
вообще дело конечно интересное
вообще конечно тут надо различать что вы хотите, то ли ядро писать, то ли ОС, всмысле окружение, то ли и то и другое.
9 сентября 2009 в 14:05
а ты ассемблер и си знаешь?
9 сентября 2009 в 14:05
неа я с знаю пхп и аякс