В наше время никого не удивишь заявлениями о разработке очередной операционной системы, которая должна стать лучше, удобнее и привлекательнее своих предшественниц и конкурентов. Существуют, как минимум, три крупных игрока на рынке ОС для персональных компьютеров и два — на рынке ОС для мобильных устройств. Несмотря на кажущееся разнообразие, нельзя не отметить определённого сходства между ними: хотя технологии и способы представления сервисов операционной системой разнятся, большая часть концепций и понятий остаётся неизменной при переходе от одной системы к другой.
Так, практически все популярные на данный момент операционные системы предоставляют поддержку общей функциональности на уровне реализации (окна, графика, файлы, сеть, оборудование), но не на уровне выражения понятий предметной области (сообщения чата, списки треков, счета за услуги). Существующие исключения (список контактов, буфер обмена, панель уведомлений) лишь подчёркивают правило. Техническая реализация (файлы, процессы, потоки) также во многом похожа.
Единицей использования возможностей компьютера во всех случаях является приложение, которое само решает, как направить имеющиеся ресурсы на достижение своих целей. Различные приложения связаны между собой лишь постольку, поскольку их разработчики позаботились о такой связи; зачастую программы, выполняющие близкие функции, не могут обмениваться данными, имеют разный интерфейс, используют различную терминологию и так далее. Такое обособление компонентов имеет сугубо технические корни, однако в итоге страдает пользователь. Компьютер из цельного инструмента превращается в нагромождение разнородных решений, а всеобщая совместимость, заслуживающая того, чтобы стать основополагающим принципом проектирования, остаётся лишь опциональной возможностью.
В настоящее время появляется всё больше решений, интегрирующих различные приложения и сервисы друг с другом. Производители программных продуктов, похоже, поняли, что сведение множества возможностей к одной удобной системе — это единственный путь к гармонии и порядку, позволяющий сделать жизнь пользователя лучше и проще. Тем не менее, во многих случаях слепая борьба несовместимых между собой программ, каждая из которых пытается объять необъятное, сменяется ещё более ожесточённой борьбой интеграторов, делающих всё возможное, чтобы не выпустить пользователя (и разработчика) за пределы своей платформы. Вместо того, чтобы объединять мир, интеграторы разделяют его, чтобы править.
Другим неизбежным аспектом мира отдельных приложений для решения конкретных задач является то, что каждое из приложений будет обладать своими достоинствами и недостатками, зачастую — неустранимыми. Выбор между удобством интерфейса, богатством функциональности и поддержкой конкретных операций настолько же неизбежен, насколько прискорбен. Если пользователю для достижения его целей требуются возможности, не предоставляемые в рамках одного приложения, это вынуждает его пользоваться более чем одним инструментом, тратя время и силы на переключение и перекачку данных.
Разработка программ — трудоёмкий процесс, и поэтому количество и качество функциональных возможностей в рамках любого продукта неизбежно будет ограничено. В то же время, львиная доля задач и проблем, решаемых разработчиками, уже решены в других продуктах; повторное использование этих решений вместо их повторной разработки высвободило бы ресурсы, которые можно направить на достижение других, более нужных пользователю, целей.
Наконец, поведение программ зачастую не подчиняется этическим нормам. Вместо того, чтобы помогать пользователю в работе, программы пристают к нему с назойливыми замечаниями и предложениями. Вместо того, чтобы выработать удобный способ предоставления услуг, основанный на взаимном уважении, они перемешивают рекламное содержимое с целевым. В результате складывается ситуация, в которой даже владелец устройства не контролирует его поведение.
Операционная система «Сивелькирия» задумана как решение описанных выше и некоторых других проблем. По замыслу и по дизайну она должна централизованно, уважительно, на взаимовыгодных условиях помогать достигать своих целей следующим категориям участников процесса разработки и использования ПО:
- Конечным пользователям — предоставляя полные, удобные, совместимые, переносимые и надёжные решения.
- Покупателям программных продуктов — предоставляя гарантии того, что все выбранные ими решения окажутся совместимы между собой и что использование одного конкретного решения, с одной стороны, не ограничит их возможности по использованию смежных продуктов, а с другой — не поставит их в ситуацию, когда из-за неустранимых проблем одной устаревшей системы придётся менять весь стек используемых технологий.
- Разработчикам — давая им возможность сосредоточиться на решении тех задач, ради которых затевалась разработка, а также извлечь из повторного использования кода максимально возможную пользу.
- Поставщикам программного обеспечения — открывая путь к выпуску на рынок ПО, применимого в максимально широком контексте и, как следствие, подходящего максимально возможному кругу пользователей.
- Поставщикам содержимого — позволяя сосредоточиться на предоставлении содержимого, которое автоматически становится доступным максимально широкому кругу лиц в максимально широком контексте, избежав необходимости разработки технических решений, повторяющих уже существующие.
Ниже будет описана архитектура такой операционной системы и то, каким образом она позволяет выправить ситуацию. Также будут подробно рассмотрены проблемы, которые она решает, чтобы показать, что они требуют системного подхода. Наконец, будут показаны достоинства и недостатки предложенного решения и то, каким образом оно может из концепции превратиться в готовый продукт.