3OS

Многоплатформенность в 3OS

версия от 14.06.2004

Что в данном документе

Концепция многоплатформенности, применительно к 3OS.

Введение

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

3ОС предлагает отказаться от подобной порочной практики многоплатформенности. Следовательно, многоплатформенность "по-3ОСовски" отличается от традиционной. В этом заключается один из многих аспектов академичности 3ОС.

Обоснование

Для работы ОС на конкретной платформе требуется два аппаратно-зависимых компонента:

Остальные, "программные" компоненты могут иметь единый код для всех платформ. Однако, для их корректной работы на конкретной платформе требуется еще один важный параметр - среда выполнения. Среда выполнения, в свою очередь, состоит из многих компонентов, наиболее важный из которых - механизм связывания объектов (в традиционных системах его заменяет IPC). В настоящий момент предложена реализация механизма связывания объектов в виде концепции удаленных объектов (УО). Именно УО и является той точкой, на которую будет опираться многоплатформенность 3ОС.

Делаем вывод: многоплатформенность по-3OS'овски заключается в написании платформенно-зависимого кода ядра и драйверов и реализации концепции УО. Концепция УО также является платформенно-зависимой.

Далее, прикладную направленность 3ОС определяют три основополагающие технологии:

Остальные технологии являются вторичными по отношению к перечисленным.

Посмотрим на УО немного с другой стороны. В настоящий момент существуют ОО-среды выполнения, использующие схожие с УО механизмы (например, COM/DCOM). Можно признать, что "концепция связываемых объектов" в целом является универсальной, и не привязана исключительно к 3ОС. Задача 3ОС в данном случае заключается в выработке собственного, альтернативного по отношению к существующим решения, которое будет более гибким, надежным и быстрым, в полном сооветствии с основной концепцией.

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

Реализация

Из сказанного можно сделать вывод, что прикладные технологии 3ОС имеют самостоятельный статус, ценны сами по себе, и могут быть реализованы не обязательно в рамках 3ОС как операционной системы. Сомнения в целесообразности реализации под ту же Windows, например, может вызывать только УО, поскольку нигде, кроме среды 3ОС, УО не используется. Остальные технологии были бы очень полезны в прикладном плане, например, единое пространство данных. Что-то вроде "SQL Services for FAT" или "SQL Services for Windows Registry" сослужили бы очень неплохую службу администраторам Windows и твикерам (!).

Ну, а практическая реализация вышеназванных служб может быть осуществлена в рамках виртуальной машины 3ОС (ВМ3). Значит, 3ОС может разрабатываться параллельно:

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

3ОС = (платформенно-зависимая часть) + (прикладная часть)

Раскрывая скобки, получаем:

3ОС = (ядро + драйвера + УО) + (единое пространство данных + единая среда)
3ОС = (виртуальная машина + УО) + (единое пространство данных + единая среда)

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

История изменений

14.06.2004
Первая версия документа