Привет, Хабр.
Данная статья открывает серию публикаций об операционной системе «Сивелькирия», которая в настоящее время находится на ранней стадии проектирования и разработки.
В статьях серии будут подробно описаны системные проблемы популярных операционных систем и предложены пути их решения.
Автор не ставит целью кого-либо в чем-либо убедить и сосредоточивается исключительно на описании предлагаемых решений ради получения пользы от обсуждения.
Публикация будет осуществляться частями, так как объем полного описания превышает любые разумные ограничения на размер хаб-статьи.
Кому интересно, добро пожаловать под кат. Сегодня никого не удивят заявлениями о разработке следующей операционной системы, которая должна стать лучше, удобнее и привлекательнее своих предшественников и конкурентов.
На рынке ОС для ПК есть как минимум три крупных игрока, а на рынке мобильных ОС — два.
Несмотря на кажущееся разнообразие, нельзя не отметить определенное сходство между ними: хотя технологии и способы представления сервисов операционной системой различаются, большинство концепций и концепций остаются неизменными при переходе от одной системы к другой.
Таким образом, почти все популярные в настоящее время операционные системы обеспечивают поддержку общей функциональности на уровне реализации (окна, графика, файлы, сеть, оборудование), но не на уровне выражения концепций предметной области (сообщения чата, списки треков, счета за услуги).
Существующие исключения (список контактов, буфер обмена, панель уведомлений) только подчеркивают правило.
Техническая реализация (файлы, процессы, потоки) также во многом схожа.
Единицей использования возможностей компьютера во всех случаях является приложение, которое само решает, как направить имеющиеся ресурсы для достижения своих целей.
Различные приложения связаны друг с другом лишь постольку, поскольку их разработчики позаботились о таком соединении; Зачастую программы, выполняющие схожие функции, не могут обмениваться данными, имеют другой интерфейс, используют другую терминологию и так далее.
Такое разделение компонентов имеет чисто технические корни, но в конечном итоге страдает пользователь.
Компьютер превращается из единого инструмента в кучу разнородных решений, а универсальная совместимость, которая заслуживает того, чтобы стать основополагающим принципом проектирования, остается лишь необязательной функцией.
В настоящее время появляется все больше решений, интегрирующих между собой различные приложения и сервисы.
Производители программного обеспечения, похоже, поняли, что сконцентрировать множество возможностей в одной удобной системе — единственный способ добиться гармонии и порядка, сделав жизнь пользователя лучше и проще.
Однако во многих случаях слепая борьба несовместимых программ, каждая из которых пытается объять необъятное, сменяется еще более ожесточенной борьбой интеграторов, делающих все возможное, чтобы не дать пользователю (и разработчику) выйти за пределы их платформа.
Вместо объединения мира интеграторы делят его, чтобы править.
Еще одним неизбежным аспектом мира автономных приложений для конкретных задач является то, что каждое приложение будет иметь свои преимущества и недостатки, часто фатальные.
Выбор между удобством использования, богатым функционалом и поддержкой конкретных операций столь же неизбежен, сколь и прискорбен.
Если пользователю для достижения своих целей требуются возможности, которые не предусмотрены в одном приложении, это вынуждает его использовать более одного инструмента, тратя время и силы на переключение и передачу данных.
Разработка программного обеспечения — трудоемкий процесс, поэтому количество и качество функциональности любого продукта неизбежно будет ограничено.
При этом львиная доля решаемых разработчиками задач и проблем уже решена в других продуктах; повторное использование этих решений, а не их повторная разработка, высвободит ресурсы, которые можно будет использовать для достижения других целей, более полезных для пользователя.
Наконец, поведение программного обеспечения часто не подчиняется этическим стандартам.
Вместо того, чтобы помочь пользователю в работе, программы донимают его надоедливыми комментариями и предложениями.
Вместо разработки удобного способа предоставления услуг на основе взаимного уважения они смешивают рекламный контент с таргетированным контентом.
В результате возникает ситуация, при которой даже владелец устройства не контролирует его поведение.
Операционная система «Сивелькирия» создана как решение описанных выше и некоторых других проблем.
По своей концепции и дизайну он должен централизованно, уважительно и на взаимовыгодных условиях помогать следующим категориям участников процесса разработки и использования программного обеспечения для достижения поставленных целей:
- Конечные пользователи — предоставление полных, удобных, совместимых, портативных и надежных решений.
- Покупатели программных продуктов - предоставление гарантий того, что все выбранные ими решения будут совместимы друг с другом и что использование одного конкретного решения, с одной стороны, не ограничит их возможности использования сопутствующих продуктов, а с другой, не поставит их в затруднительное положение.
ситуация, когда из-за неизбежных проблем в одной устаревшей системе придется менять весь стек используемых технологий.
- Для разработчиков — предоставление им возможности сосредоточиться на решении задач, ради которых затевалась разработка, а также извлечь максимально возможную выгоду от повторного использования кода.
- Поставщики программного обеспечения — открытие пути к выходу на рынок программного обеспечения, применимого в максимально широком контексте и, как следствие, подходящего для максимально широкого круга пользователей.
- Поставщики контента - позволяя вам сосредоточиться на предоставлении контента, автоматически доступного максимально широкому кругу людей в самом широком контексте, без необходимости разработки технических решений, копирующих существующие.
Кроме того, в дальнейших статьях серии будут подробно рассмотрены проблемы, которые он решает, чтобы показать, что они требуют системного подхода.
Наконец, будут показаны преимущества и недостатки предлагаемого решения и то, как оно может перейти от концепции к готовому продукту.
Концепция ОС «Сивелькирия»
Операционная система «Сивелькирия» начинается с пересмотра основ, при котором устраняются или заменяются некоторые общепринятые понятия.В составе ОС «Сивелькирия» не существуют следующие сущности, которые обычно составляют основу операционной системы:
- Приложение.
- Процесс.
- Файл похож на область данных на диске.
- Сквозная файловая система, навигация по которой ограничена только правами доступа.
- Командная строка как среда запуска отдельных приложений.
- Универсальные скрипты.
- Доступность основного API операционной системы для любого компонента.
- Возможность прямого портирования стандартных библиотек большинства современных языков программирования.
Как следствие, возможна возможность прямого переноса существующего ПО из других операционных систем, за исключением определенных случаев.
- Поддержка языков программирования без объектной ориентации.
Это никоим образом не означает ограничения возможностей программиста или пользователя, а лишь указывает на то, что в рамках ОС «Сивелькирия» те же цели достигаются иначе, чем в большинстве существующих операционных систем.
Отказавшись от этих устоявшихся сущностей, мы предполагаем построить операционную систему, основанную на следующих принципах:
- Операционная система «Сивелькирия» является объектно-ориентированной в том смысле, что она предоставляет объектные интерфейсы для выражения всех концепций предметной области, с которыми может работать программное обеспечение, работающее в этой ОС.
Все сущности, с которыми работают внутри прикладных или системных программ, должны быть представлены в виде объектов, реализующих один или несколько интерфейсов, определенных операционной системой.
Общение за пределами этой структуры не допускается.
Данные, полученные из внешних источников, оборачиваются этими интерфейсами в точке входа.
- Единицей распространения программного кода является модуль.
Между модулями, обеспечивающими функциональность приложения, и модулями, выполняющими функции системного уровня, практически нет разницы.
- Операционная система содержит библиотеку модулей-прототипов, разделенных по функциональности.
Каждый прототип определяет, какие функции предоставляет модуль и с какими входами и выходами он работает (с точки зрения объектных интерфейсов).
Каждый модуль реализует один (и только один) прототип.
Прототипы организованы таким образом, что каждый модуль выполняет одну (и только одну) функцию независимо от источника ввода и назначения вывода.
- Порядок загрузки и выгрузки модулей и вызова функций из них, расположение модулей и их взаимодействие, организация, приоритеты и синхронизация потоков, время жизни объектов данных и методы их обработки определяются операционной системой.
Реализации модулей и объектов данных не делают никаких предположений по этому поводу, кроме гарантий, данных в определении интерфейсов и прототипов.
- Каждый модуль имеет доступ только к тем данным и способам взаимодействия с операционной системой, которые необходимы для выполнения его функции (определенной прототипом).
Ни один модуль не имеет доступа ко всем функциям операционной системы.
Дублирование функций, уже закрепленных за конкретным прототипом, внутри модуля, принадлежащего другому прототипу, не допускается.
- Разработка интерфейсов данных и прототипов модулей продолжается совместными усилиями разработчиков программ и разработчиков операционных систем.
Интерфейсы и прототипы изменяются и расширяются по мере необходимости.
Вторая статья серии доступна Здесь .
Полный текст доступен на сайте проекта .
Теги: #программирование #api #Анализ и проектирование систем #ИТ-стандарты #Системное программирование #операционная система #ОС #операционная система #Сивелькирия #Сивелькирия
-
Compalex: Сравнение Двух Схем Базы Данных
19 Oct, 24 -
Об Одной Задаче Data Science
19 Oct, 24 -
Изменения Грядут В Яндекс.
19 Oct, 24