Reklama

Стандарт OpenDoc. Коммерческие версии микроядра

В свое время такие компании, как Apple, IBM и WordPerfect в 1992 году пытались создать совершенно новый стандарт текстовой информации в противовес уже существующему стандарту от компании Microsoft.

Но все начиналось с того, что между компаниями Microsoft и Apple возникли конфликты по поводу разработки совершенно новых программных средств. Так как на то время и даже в наше время компания Microsoft почти монопольно владеет рынком текстовых редакторов и в целом программным обеспечением для работы с текстовой информацией: Office, Excel, Access. Попросту они не смогли договорится о будущем сотрудничестве.

Поэтому группа компаний во главе с Apple, которым «не нравилось» такая расстановка сил на информационном поле решили создать свой стандарт в противовес уже существующему. Особенностью данного стандарта было то, что создавался единый документ, так называемый – центральный документ в который, пользователь по своему желанию мог добавлять уже свои модули(части) для работы с текстом: графики, таблицы и прочие. То есть создавали не большие по размерам части, которые уже в процессе работы наполнялись другими модулями для удобности.

 Было задействовано большое количество программистов, огромные вливания денег, целью которых в конечном этапе сводилось к сбору компании Microsoft с первого места и не больше.

На первых этапах проектирования программное обеспечение имело кодовое название “Exemplar”, затем “джедай”, “Янтарь”, и в итоге “OpenDoc”. Компании предполагали, что данное программное обеспечение вытеснит других разработчиков текстовых процессоров за счет создания универсального текстового редактора, который бы включал все компоненты, однако на практике оказалось все гораздо трудней.

Неспособность программного обеспечения работать с другими стандартами, то есть попросту программа не имела механизмов для конвертации своего формата в другие, конечно поддержка стандарта от Microsoft все же имелся однако он не был на столько многофункциональный. Не смотря на то, что компании пытались создать один пакет, который включал бы все они не позаботились о нагрузке на ЦП и использования ОЗУ, которое на то время было не очень велико. Для сравнения, открытие документа компании Microsoft требовало 32КБ ОЗУ, а открытие OpenDoc порядка 1-2 Мб, что никак не походило на инновационный продукт.

Также проблема состояла в открытии файлов после их предыдущего сохранения, приходилось тратить уйму времени на поиск нужного файла. Но главной проблемой, о которой даже говорили сами разработчики, которые принимали активное участие в разработке состояла в том, что компания Apple пыталась навязать этот продукт своим покупателям тем самым за самые короткие сроки вытеснить Microsoft с рынка. Программистов чуть ли не силой заставляли работать над данным продуктов, а тогда еще малоизвестный язык программирования С++ не был досконально изучен и поэтому был малоэффективен.

Микроядро

Микроядро — это минимальная реализация функций ядра операционной системы.

Классические микроядра предоставляют лишь очень небольшой набор низкоуровневых примитивов, или системных вызовов, реализующих базовые сервисы операционной системы.

К ним относятся:

1.             управление адресным пространством оперативной памяти.

2.             управление адресным пространством виртуальной памяти.

3.             управление процессами и потоками (нитями).

4.             средства межпроцессной коммуникации.

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

Классическим примером микроядерной системы является Symbian OS. Это пример распространенной и отработанной микроядерной (a начиная c версии Symbian OS v8.1, и наноядерной) операционной системы.

Создателям Symbian OS удалось совместить эффективность и концептуальную стройность, несмотря на то что современные версии этой системы предоставляют обширные возможности, в том числе средства для работы c потоковыми данными, стеками протоколов, критичными к латентности ядра, графикой и видео высокого разрешения). Разработчики Symbian вынесли практически все прикладные (т.e. выходящие за пределы компетенции ядра) задачи в модули-серверы, функционирующие в пользовательском адресном пространстве.

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

ОС Windows CE (и созданные на её основе сборки, такие, как Windows Mobile), будучи практически полностью совместимой (как подмножество) с Windows NT по вызовам и методам программирования приложений, тем не менее полностью отличается от Windows NT по внутренней архитектуре и является микроядерной ОС с выносом всех драйверов устройств, сетевых стеков и графической подсистемы в сервисные процессы.

Mach — микроядро операционной системы, разработанное в Carnegie Mellon University при проведении исследовательских работ в области операционных систем, главным образом, распределённых и параллельных вычислений. Это один из самых первых примеров микроядра, но до сих пор он является стандартом для других подобных проектов.

 

QNX — POSIX-совместимая операционная система реального времени, предназначенная преимущественно для встраиваемых систем. Считается одной из лучших реализаций концепции микроядерных операционных систем. Использование микроядра в QNX позволяет пользователям (разработчикам) отключить любую ненужную им функциональность, не изменяя ядро. Вместо этого можно просто не запускать определённый процесс.

Reklama