Назад на главную

Коллективное мнение других разработчиков и общества о вашей новой ОС


Не каждое общество приемлет отклонение от принятого в толпе поведения. Если понадобилось написать свою ОС, значит чем-то не устраивают имеющиеся и проверенные временем решения, которые используются всеми вокруг. Текст далее посвящён реакции общества на вашу новую ОС и написан на основе мнений людей в 2020 году в России (тех, кто в теме, а не задаст вопрос, что это такое операционная система?). Хоть автор и не согласен с частью доводов ниже и желает опровергнуть их прямо в этом же тексте, делать этого не будет. Цель автора попытаться обобщить информацию в нескольких фразах, а не добавлять своё видение.

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

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

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

Существует очень популярное мнение о разработке, её необходимости, этапах и проблемах написании собственной ОС.

Считается, что основная проблема всегда была и будет в драйверах, а железо везде одинаковое, поэтому не стоит изобретать очередное колесо и писать кем-то уже написанное. Говоря проще - нет нового железа, нет новаторства и нужды, поэтому необходимость разработки новой ОС отсутствует как данность.

Какие этапы в разработке выделяют как ключевые пункты успеха собственной ОС:

  1. Разработка загрузчика, который считает и запустит всё необходимое для работы вашей ОС. Обыденной нормой считается загрузка с диска и внешних накопителей, а так же по сети. Некоторые дополняют загрузчик утилитами диагностики системы. Другие же называют загрузчик полноценной мини ОС и говорят, что следует вшить его в оборудование (превратить в аналог базовой системы ввода вывода, который в зависимости от задач сможет запускать и перезапускать вашу ОС).
  2. Разработка командного интерфейса (бесконечно зацикленный шелл к ядру системы, который позволяет переводить внешние команды в некое полезное вычисление на процессоре)
  3. Разработка модели прерываний и модуля ввода-вывода, который будет взаимодействовать с ядром и обеспечивать базовое API системы. Так же часто выделяют создание модуля менеджера памяти, отмечают преодолеваемые сложности с адресацией памяти и реализацией виртуальной памяти.
  4. Расширение системных вызовов и API для прикладных программ (начиная с обнаружения, что некоторая железка подключена, необходимости загрузить драйвер и назначить прерывания до методов работы со строками в разных кодировках и функционала поддержки прикладных программ)
  5. Разработка интерфейса пользователя, работа графической оконной системы. Некоторые отмечают системное ПО и библиотеки функций для прикладных программ как последний этап разработки ОС, другие - выделяют его отдельно, говоря, что к ОС это не относится и в большей части это пререгатива прикладного софта.

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

Те же люди говорят, что отладка станет святым граалем для усердных и ответит на все их вопросы. Самих вопросов будет очень много: "куда делась свободная память и что её сожрало?", "сделал по мануалу, но всё зависает, что не так?", "почему цикл по условию не прерывается?", "что-то повредило память процесса, но что?", "всё вроде правильно, но результат другой, почему?" и т.д.

Все сходятся во мнении, что при понимании ассемблера и архитектуры оборудования, это гиблое и дурное дело будет воплощено в реальность. Однако задаются вопросом: "А какова ценность получаемого? Что, взамен многих часов потраченного времени, новая ОС решает и какие цели преследует?" — вот это реально важные вопросы, которые при первой возможности зададут разработчику ОС неоднократно (в том числе он задаст сам себе).

Спасибо за внимание! На этом сегодня всё. По ссылкам ниже вы можете просмотреть аудио и видео версию данной статьи (с плохим качеством звука):

Ссылка на YouTube

Ссылка на RuTube


Написано в 2021 году на основе проведенных опросов, анализа новых статьей и видео на тему ОС (преимущественно на профильных ресурсах сети Интернет) и анализа комментариев на форумах, под статьями, видеороликами и другими материалами, посвящёнными разработке операционных систем. Авторский подкаст снят только в 2022 году.

Автор материала: Ефременков С.В. aka theonlymirage
Разрешается копирование, распространение и перепечатывание материала с указанием первоисточника.