Logo

27 ноября 2013 г.

Фрактальная модель: объектно-ориентированная ОС

Приступая к разработке любого проекта, важно дать ему определение. Данный проект — объектно-ориентированная ОС. Попытки найти существующее определение объектно-ориентированной ОС ни к чему не привели, что дает основание полагать, что такое определение попросту отсутствует.

ООП и системное программирование

В 90-х годах XX века вместе с распространением графического интерфейса и ОС Windows объектно-ориентированное программирование набрало популярность и быстро стало массовым. В ИТ-журналах той поры стали появляться статьи, предсказывающие скорое появление объектно-ориентированной ОС, попутно пытаясь дать ей определение. Ссылки на некоторые публикации перечислены в конце статьи. Вероятно, за частью статей стояли научные исследования, поскольку публиковались они от имени известных деятелей компьютерной индустрии, а журнал «Открытые системы» даже имеет аккредитацию ВАК.

Чтение статей подталкивает к выводу, что в системном программировании ООП либо нет вовсе, либо имеется какое-то свое, особое ООП, поскольку оно рассматривается в отрыве от ОС или увязывается с микроядром, а не инкапсуляцией, полиморфизмом и наследованием, как следовало бы ожидать:
Микроядро с четко очерченным минимальным набором интерфейсов обеспечивает фундамент для построения модульной операционной системы. Однако вместе с этим требуется применение некоторого дисциплинирующего подхода, организующего процесс модульных расширений микроядра. На сегодняшний день наиболее популярен объектно-ориентированный подход, который также находит надежную опору в микроядерной технологии, а точнее, во встроенном и оптимизированном механизме передачи сообщений.
Можно предположить, что из похожих статей в авторитетных источниках определение объектно-ориентированной ОС проникло в «Финансовый словарь», формулировку из которого поисковики выдают на первом месте:
Объектно-ориентированная операционная система — операционная система, имеющая объектно-ориентированную архитектуру. Основные функции объектно-ориентированной ОС реализует микроядро, над которым располагаются сервисные модули. С микроядром связаны объектно-ориентированные языки программирования. Ресурсы объектно-ориентированной ОС используют прикладные программы.
Определение не является ни формальным, ни инженерным. На это косвенно указывает его присутствие только в непрофильном словаре. В толковых словарях для программистов вообще никакого определения объектно-ориентированной ОС нет.

Объектно-ориентированная ОС

В проекте принято определение объектно-ориентированной ОС с опорой на понятия ООП:
Объектно-ориентированная ОС порождает программы наследованием.

Определение выведено эмпирически. Рассуждения, как оно появилось, вынесены в отдельную статью.

Ключевая особенность системы, построенной на наследовании, хорошо иллюстрируется цитатой из книги «Сетевые операционные системы»:
Для обеспечения преемственности при переходе к более детальному описанию разработчикам предлагается механизм наследования свойств уже существующих объектов, то есть механизм, позволяющий порождать более конкретные объекты из более общих. Например, при наличии объекта «текстовый документ» разработчик может легко создать объект «текстовый документ в формате Word 6.0», добавив соответствующее свойство к базовому объекту. Механизм наследования позволяет создать иерархию объектов, в которой каждый объект более низкого уровня приобретает все свойства своего предка.
Наследование применимо и к программам. Разработчик может унаследовать класс Notepad, добавить нужную функциональность и получить WordPad; снова унаследовать и довести возможности нового класса-программы до уровня Word.

Задачи ядра ОС

Работа ООП на системном уровне обеспечивается поддержкой со стороны ядра ОС.
Помимо задач, характерных для ядра обычной ОС, ядро объектно-ориентированной ОС должно поддерживать программную среду с контролем целостности наследования, полиморфизма и агрегации.
Эта особенность сближает ядро ОС с ядром СУБД, выполняющим сходные задачи, но в рамках реляционной модели. На примере ранних, нереляционных СУБД видно, что без контроля целостности построение надежной и гибкой системы затруднено или вовсе невозможно.

Схожесть с СУБД признана основополагающей. В проекте считается, что объектно-ориентированная ОС и объектно-ориентированная СУБД — одно и то же. Объектно-ориентированная ОС будет иметь функциональность СУБД, и наоборот, объектно-ориентированная СУБД будет иметь функциональность ОС.

ОС с объектами

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

ОС, система, среда

Хоть предмет разработок и обозначен понятием «ОС», это не обязательно: его можно заменить словом «система» или «среда», — смысл написанного не изменится.

Ссылки

Комментариев нет :

Отправить комментарий

Выбрав в выпадающем списке пункт «Имя/URL», можно оставить комментарий от своего имени без предварительной регистрации.