Способность говорить на основе фактического опыта ( AROS, самые большие препятствия:
Поэтому, если Вы планируете записать свою собственную ОС, необходимо рассмотреть это:
Я думаю в наше время много людей, которые являются в других отношениях хорошими программистами, не знают, как мало они знают о том, как работают компьютеры. Вам будет нужна серьезная власть на основных принципах, чтобы заставить машину загружать Вашу ОС от диска, и тот тип знания распространен довольно тонко в наше время. Вы не найдете полку книг об этом в наше время, также.
Интересно, я задал вопрос по ТАК несколько недель назад, который включил тип знания, которое было повседневным из серьезного программирования 10-15 ПК несколько лет назад, и один комментатор сказал, что они полагали, что это было аппаратные средства вопрос.
я не пробиваю их вообще, но я думал, что это было интересное отражение о том, как навыки изменились.
Самый большой Контрольно-пропускной пункт? Я думаю, что это - когда Вы узнаете, насколько разрывы там находятся в спецификациях и сколько ошибок, там находятся в различной реализации.
Серьезно, даже если у Вас были бы все Спецификации для всех компонентов (т.е. USB, DMA, IRQ, Ваш ЦП...) Вы найдете что a) некоторые вещи не указаны (т.е. что происходит, если Вы отправляете определенную последовательность на свое USB-устройство), и b) некоторые вещи просто прослушиваются, и необходимо работать вокруг них (т.е. десятки Ошибок в ЦП, которые детализированы в Опечатках ЦП, которые и Intel и AMD публикуют)
, я не знаю, сколько обходных решений для ошибок там в современной операционной системе, но начиная с Linux и *BSD является открытым исходным кодом, их драйверы говорят Вам очень, т.е. этот . И ожидайте получать некоторые серьезно отрицательные побочные эффекты как этот .
Так да, При попытке записать ОС, быть готовыми проклясть много в производителях оборудования и начать терять Вашу веру в качестве современных ПК :-)
Там, сделанный это. Самое большое препятствие, для меня, по крайней мере, было драйверами устройств. Кодирование ядра ОС является "забавной частью", однако это бесполезно не имея возможности сделать ввод-вывод (диск, клавиатура, видео, сеть, по крайней мере). Сегодня, если бы у меня снова были время и желание участвовать в такой проект, то я был бы, вероятно, нацелен на Xen VM вместо необработанных аппаратных средств - если ни для чего иного, затем потому что это скрывает много ужасных особенностей x86, а также аппаратных средств. Xen представляет хорошее универсальное, аппаратно-независимое представление устройств ввода-вывода и все еще дает Вам достаточно свободы играть с "интересными" частями ОС (мм, управление процессами, синхронизация, прерывания, и т.д.).
Я думаю безусловно, что единственный самый большой контрольно-пропускной пункт является пользователями - пока Вы не создали большинство рабочей системы, у Вас очень вряд ли будут любые пользователи. Без пользователей у Вас нет запросов новых функций, отчетов об ошибках, и следовательно там ограничил мотивацию. Однако даже при создании рабочей ОС нет никакой гарантии, Вы получите базу пользователей, если Вы не сможете найти рычаг, который привлекает людей в - что устанавливает Вашу ОС независимо достаточно, чтобы люди были готовы попробовать бета-версии, зависнуть там, когда существуют едва любые рабочие приложения, портированные к ней, и т.д.
Вы могли бы интересоваться проверкой SkyOS - она была разработана в основном единственным разработчиком (теперь малочисленная группа разработчиков). Статья Wikipedia имеет хорошую сводку также. Я думаю, что это - хороший пример того, как такая грандиозная задача может быть выполнена и сложиться вполне прилично. Они сделали некоторые интересные вещи с SkyOS, и особенно здорово видеть, что прибывают в значительной степени из усилий единственного человека в их свободное время.
Запись ОС встречается с теми же проблемами как другие большие проекты программного обеспечения.
Это испытывает недостаток в ясно определенных целях и имеет временную шкалу / проблемы оценки из-за отсутствия опыта.
Также для программиста сначала было бы полезно создать 'привет, мир' вводит операционную систему, так, чтобы он изучил понятия позади разработки ОС и затем мог сфокусироваться на разработке ОС (не изучение понятий ОС).