Монолитные ОС

По принципу монолитности было построено немало операционных систем прошлого поколения, среди которых ранние версии ядра UNIX или Novell NetWare.


Что же представляет собой монолитная система (Monolithic System) в плане программной архитектуры и почему со временем разработчикам программных продуктов пришлось отказаться от этого варианта?


Ядро в монолитных или макроядерных операционных системах не разделено на центральную и периферийную части, хотя теоретически его и можно разделить на множество структур и модулей, тесно взаимосвязанных друг с другом. Такое ядро становится неделимым, монолитным. При монолитной архитектуре программный продукт состоит из набора процедур со строго определенным интерфейсом, выраженным в параметрах и результатах, при этом каждая из процедур может вызывать любую другую для получения необходимых данных или выполнения определенных действий. Рекомендуем обратить внимание на сайт gadgetos.ru.


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


• основная программа, отвечающая за вызов процедур;
• процедуры, соответствующие системным вызовам;
• утилиты, обслуживающие процедуры.


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


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

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

Добавить комментарий