Контрольно-пропускные пункты в создании пользовательской [закрытой] операционной системы

19
задан Community 23 May 2017 в 12:02
поделиться

6 ответов

Способность говорить на основе фактического опыта ( AROS, самые большие препятствия:

  • Hen и яйцо (никакая OS <-> никакие приложения <-> никакие пользователи <-> не может притянуть разработчиков)
  • , Почему даже пытаются конкурировать против Windows? Apple не успешно выполняется, и у них есть много денег, и Linux не успешно выполняется несмотря на наличие огромного и восторженного сообщества.
  • Крупные компании не заинтересованы вообще приносить свои приложения к Вашей ОС (Adobe Acrobat Reader, MS Office, Macromedia Flash, Java от Sun). Без них и никаких хороших альтернатив OSS, Вы не можете притянуть пользователей.
  • Это берет очень долго. В моем случае это были примерно 15 лет для получения 1.0 (и мы не 100% там, еще).
  • Совместимость. Для получения любых пользователей необходимо быть совместимы с чем-то, что существует (таким образом, люди могут продолжить использовать свои данные, и т.д.). Если Вы совместимы, почему изменение в Ваш ОС?

Поэтому, если Вы планируете записать свою собственную ОС, необходимо рассмотреть это:

  • будет требоваться много времени
  • В течение самого долгого времени, Вы будете одними. Я был удачлив, потому что у меня было это чрезвычайно фанатичное и специализированное сообщество Amiga, которое просто не ослабеет.
  • необходимо найти нишу, где можно предложить услугу, которую не может предложить никакая другая ОС.
  • Люди, которые могут сделать это часто, получают лучшие предложения задания, потому что восприятие "пишет, что OSs твердо" :)
  • Вы будете членом очень малочисленной, элитной группы программистов, которые могут сказать, что "Я записал свою собственную ОС, и это может сделать больше, чем печать 'Привет мир!'"
20
ответ дан 30 November 2019 в 03:25
поделиться

Я думаю в наше время много людей, которые являются в других отношениях хорошими программистами, не знают, как мало они знают о том, как работают компьютеры. Вам будет нужна серьезная власть на основных принципах, чтобы заставить машину загружать Вашу ОС от диска, и тот тип знания распространен довольно тонко в наше время. Вы не найдете полку книг об этом в наше время, также.

Интересно, я задал вопрос по ТАК несколько недель назад, который включил тип знания, которое было повседневным из серьезного программирования 10-15 ПК несколько лет назад, и один комментатор сказал, что они полагали, что это было аппаратные средства вопрос.

я не пробиваю их вообще, но я думал, что это было интересное отражение о том, как навыки изменились.

3
ответ дан 30 November 2019 в 03:25
поделиться

Самый большой Контрольно-пропускной пункт? Я думаю, что это - когда Вы узнаете, насколько разрывы там находятся в спецификациях и сколько ошибок, там находятся в различной реализации.

Серьезно, даже если у Вас были бы все Спецификации для всех компонентов (т.е. USB, DMA, IRQ, Ваш ЦП...) Вы найдете что a) некоторые вещи не указаны (т.е. что происходит, если Вы отправляете определенную последовательность на свое USB-устройство), и b) некоторые вещи просто прослушиваются, и необходимо работать вокруг них (т.е. десятки Ошибок в ЦП, которые детализированы в Опечатках ЦП, которые и Intel и AMD публикуют)

, я не знаю, сколько обходных решений для ошибок там в современной операционной системе, но начиная с Linux и *BSD является открытым исходным кодом, их драйверы говорят Вам очень, т.е. этот . И ожидайте получать некоторые серьезно отрицательные побочные эффекты как этот .

Так да, При попытке записать ОС, быть готовыми проклясть много в производителях оборудования и начать терять Вашу веру в качестве современных ПК :-)

5
ответ дан 30 November 2019 в 03:25
поделиться

Там, сделанный это. Самое большое препятствие, для меня, по крайней мере, было драйверами устройств. Кодирование ядра ОС является "забавной частью", однако это бесполезно не имея возможности сделать ввод-вывод (диск, клавиатура, видео, сеть, по крайней мере). Сегодня, если бы у меня снова были время и желание участвовать в такой проект, то я был бы, вероятно, нацелен на Xen VM вместо необработанных аппаратных средств - если ни для чего иного, затем потому что это скрывает много ужасных особенностей x86, а также аппаратных средств. Xen представляет хорошее универсальное, аппаратно-независимое представление устройств ввода-вывода и все еще дает Вам достаточно свободы играть с "интересными" частями ОС (мм, управление процессами, синхронизация, прерывания, и т.д.).

9
ответ дан 30 November 2019 в 03:25
поделиться

Я думаю безусловно, что единственный самый большой контрольно-пропускной пункт является пользователями - пока Вы не создали большинство рабочей системы, у Вас очень вряд ли будут любые пользователи. Без пользователей у Вас нет запросов новых функций, отчетов об ошибках, и следовательно там ограничил мотивацию. Однако даже при создании рабочей ОС нет никакой гарантии, Вы получите базу пользователей, если Вы не сможете найти рычаг, который привлекает людей в - что устанавливает Вашу ОС независимо достаточно, чтобы люди были готовы попробовать бета-версии, зависнуть там, когда существуют едва любые рабочие приложения, портированные к ней, и т.д.

Вы могли бы интересоваться проверкой SkyOS - она была разработана в основном единственным разработчиком (теперь малочисленная группа разработчиков). Статья Wikipedia имеет хорошую сводку также. Я думаю, что это - хороший пример того, как такая грандиозная задача может быть выполнена и сложиться вполне прилично. Они сделали некоторые интересные вещи с SkyOS, и особенно здорово видеть, что прибывают в значительной степени из усилий единственного человека в их свободное время.

2
ответ дан 30 November 2019 в 03:25
поделиться

Запись ОС встречается с теми же проблемами как другие большие проекты программного обеспечения.

Это испытывает недостаток в ясно определенных целях и имеет временную шкалу / проблемы оценки из-за отсутствия опыта.

Также для программиста сначала было бы полезно создать 'привет, мир' вводит операционную систему, так, чтобы он изучил понятия позади разработки ОС и затем мог сфокусироваться на разработке ОС (не изучение понятий ОС).

0
ответ дан 30 November 2019 в 03:25
поделиться