Операционная система «Сивелькирия» проектируется для запуска в следующих режимах:
- В качестве основной операционной системы на платформах x86 и ARM;
- В качестве набора графических приложений под основной операционной системой;
- В качестве набора библиотек и/или процессов в составе другого приложения под основной операционной системой.
Ниже будет показано, зачем нужны такие возможности.
Запуск в качестве основной операционной системы обеспечивает «Сивелькирии» возможность прямого контроля доступных устройств. С одной стороны, это позволяет оптимальным образом контролировать расходование системных ресурсов, например, процессорного времени и оперативной памяти. С другой — ставит пользователя перед жёстким выбором: полностью переключиться на новую операционную систему, под которой на начальном этапе может не хватать ПО для комфортной работы, или не пользоваться ею вообще. Вряд ли будет ошибкой сказать, что многие молодые операционные системы так и не смогли преодолеть этот рубеж: отсутствие программ отпугивает пользователей, а отсутствие пользователей отпугивает разработчиков.
Чтобы разрешить эту неприятную ситуацию, ОС «Сивелькирия» предлагает второй способ запуска — в качестве набора приложений, собранных под некоторую основную операционную систему (например, Windows, Linux или Android). С точки зрения модулей, запускаемых в ней, разницы с первым вариантом нет, так как они по-прежнему взаимодействуют с другими модулями и ядром системы через тот же API. С точки зрения пользователя разница состоит в том, что теперь он продолжает работать со своей основной операционной системой, используя «Сивелькирию» лишь для решения тех задач, которые на данный момент удобнее решаются именно в ней.
Наконец, третий вариант сборки «Сивелькирии» состоит в том, чтобы объектные интерфейсы, существующие в ней, становились видимы некоторому внешнему контексту. В итоге стороннее ПО сможет использовать модули «Сивелькирии» так же, как оно использует обычные общие библиотеки и, хотя внутренняя реализация может подразумевать взаимодействие модулей и разнесение их по разным библиотекам или процессам, эти детали окажутся скрыты от вызывающего контекста. С точки зрения функционирования самой «Сивелькирии» разница между вторым и третьим вариантами запуска состоит лишь в том, что во втором случае пользователь взаимодействует с её графическим интерфейсом, тогда как в третьем случае API вызывается другими системами.
Предложенный вариант позволяет сделать период наполнения новой операционной системы программами максимально полезным, поскольку решение о полной миграции можно будет отсрочить или вовсе отклонить, продолжая использовать лишь те возможности, которые требуются конкретному пользователю. Таким образом, основные цели, стоящие перед «Сивелькирией» — обеспечение совместимости и доступности — окажутся выполнены с минимальными затратами.
Вопрос о том, следует ли называть «Сивелькирию» операционной системой при запуске под некоторой другой ОС, оставляем теоретикам, поскольку для наших целей он не является принципиальным.