3OS

Единая среда 3OS

версия от 14.06.2004

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

Концепция единой среды 3OS.

Введение

В рамках 3ОС понятие единой среды имеет два значения:

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

Единая среда выполнения

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

Предлагается сделать архитектуру среды выполнения 3ОС по возможности универсальной. Для этого среда выполнения планируется не виде монолита, а состоит из нескольких подисистем выполнения.

Небольшое лирическое отступление. Идея нескольких подсистем выполнения не нова. Подобную архитектуру использует всем хорошо знакомая Windows. Она содержит в себе следующие подсистемы:

Не все подсистемы реализуют полный набор возможностей соответствующей среды, однако, они работают. Но Windows является закрытой, и набор подсистем выполнения пополняется только по желанию фирмы-разработчика. В частности, в Windows Longhorn планируется сделать .NET не виртуальной машиной, а полноценной подсистемой выполнения, причем основной, заменив ею устаревающую Win32.

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

  • 3ОС
  • DOS/DPMI
  • Win32
  • Win16
  • Linux
  • POSIX?
  • FreeBSD?
  • другие, например, Menuet, QNX, .NET?
  • Пока неясно, будут ли традиционные виртуальные машины в рамках 3ОС также обозначены как подсистемы выполнения. Подразумеваются, в частности, JVM и CLR.

    Чем отличается подсистема выполнения от традиционного понятия виртуальной машины?

    Виртуальная машина представляет собой программу, выполняющуюся вместе с другими программами в контексте пользователя (прикладном контексте).

    Подсистема выполнения, в трактовке 3ОС, подразумевает собой набор объектов, который при соответствующей поддержке со стороны ядра может выполнять целевой код в любом контексте, в том числе и системном. Таким образом, все подсистемы выполнения равноценны с точки зрения применимости. Например, возможно использование драйверов WDM посредством подсистемы выполнения Win32.

    Естественно, непосредственная разработка подистемы выполнения Win32 является трудоемкой задачей, но заложить возможность существования такой подсистемы нужно еще при проектировании. В качестве аргумента приведу такое соображение: сделать 3ОС массовой невозможно без поддержки многочисленного оборудования, имеющегося в настоящий момент у пользователей. Ни сегодня, ни в ближайшем будущем производители железа не заинтересованы в разработке драйверов непосредственно под нашу систему. Использование же драйверов от Windows или Linux даст поддержку практически всего оборудования, и соответственно сделает 3ОС более популярной, чем может быть без этих драйверов.

    Следовательно, качественная разработка соответствующих подистем выполнения позволит получить 3ОС на ядре 3ОС, Windows на ядре 3ОС, Linux на ядре 3ОС и т. д. ОДНОВРЕМЕННО.

    Первичная подсистема выполнения

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

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

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

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

    Ну, и наконец, последнее замечание. Фактически, создание виртуальной машины 3ОС является задачей по разработке подсистемы выполнения 3ОС для платформы родительской ОС.

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

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