Объектно-ориентированная операционная система - Object-oriented operating system

An объектно-ориентированная операционная система[1] является Операционная система который использует объектно-ориентированный принципы дизайна.

Объектно-ориентированная операционная система отличается от объектно-ориентированной операционной системы. пользовательский интерфейс или программирование рамки, который можно запускать поверх не объектно-ориентированной операционной системы, например ДОС или же Unix.

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

Объектная ориентация был определен как объекты + наследование, а наследование - лишь один из подходов к более общей проблеме делегация это происходит в каждой операционной системе.[2] Объектная ориентация более широко использовалась в пользовательские интерфейсы операционных систем, чем в их ядра.

Фон

Объект - это экземпляр класса, который предоставляет определенный набор функций. Два объекта можно различать в зависимости от поддерживаемых ими функций (или методов). В контексте операционной системы объекты связаны с ресурсом. Исторически принципы объектно-ориентированного проектирования использовались в операционных системах для обеспечения нескольких механизмов защиты.[1]

Механизмы защиты в операционной системе помогают обеспечить четкое разделение между различными пользовательскими программами. Он также защищает операционную систему от любого вредоносного поведения пользовательской программы. Например, рассмотрим случай профилей пользователей в операционной системе. Пользователь не должен иметь доступа к ресурсам другого пользователя. Объектная модель решает эти проблемы защиты, когда каждый ресурс действует как объект. Каждый объект может выполнять только набор операций. В контексте профилей пользователей набор операций ограничен уровнем привилегий пользователя.[1]

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

Примеры

Афина
Афина[3] была объектно-ориентированной операционной системой, впервые выпущенной в 2000 г. Rocklyte Systems.[4] Пользовательская среда была полностью построена из объектов, связанных между собой во время выполнения. Приложения для Athene также можно было создавать с использованием этой методологии и обычно создавались сценариями с использованием языка объектных сценариев. Язык динамической разметки (DML). Объекты могли быть разделены между процессами, создав их в Общая память и заблокировать их по мере необходимости для доступа. Объектная структура Athene была многоплатформенной, что позволяло использовать ее в средах Windows и Linux для разработки объектно-ориентированных программ. Компания прекратила свое существование, а проект закрыли где-то в 2009 году.
BeOS
Одной из попыток создания действительно объектно-ориентированной операционной системы была BeOS[5] середины 1990-х годов, в котором использовались предметы и C ++ язык для интерфейс прикладного программирования (API). Но само ядро ​​было написано на C с оболочками C ++ в пользовательском пространстве. Система не получила широкого распространения и оказалась коммерчески нежизнеспособной. Сейчас его использует и развивает небольшая группа энтузиастов.
Выбор
Выбор[6][7] это объектно-ориентированная операционная система, разработанная в Университет штата Иллинойс в Урбане-Шампейн. Это написано в C ++ и использует объекты для представления основных компонентов ядра, таких как центральное процессорное устройство (ЦПУ), процессы и так далее. Наследование используется для разделения ядра на переносимые машинно-независимые классы и небольшие непереносимые зависимые классы. Choices был перенесен на SPARC, x86, и РУКА.
GEOS
ПК / GEOS это облегченная объектно-ориентированная многозадачная графическая операционная система со сложным управлением окнами и рабочим столом с масштабируемыми шрифтами. Он в основном написан на объектно-ориентированном диалекте языка ассемблера x86 и немного C / C ++ и предназначен для работы поверх ДОС (аналогично Microsoft Windows до Windows Me ). GEOS была первоначально разработана Berkeley Softworks в 1990 году, которая позже стала GeoWorks Corporation, и продолжает поддерживаться BreadBox Computer Company. Связанный программные пакеты были названы Ансамбль и Офис New Deal. Существуют адаптации для различных карманных компьютеров и 32-битных систем с процессорами, отличными от x86.
Хайку
После прекращения BeOS, началась попытка создать замену с открытым исходным кодом. Хайку (первоначально названный OpenBeOS) достигла своего первого рубежа в сентябре 2009 года с выпуском Haiku R1 / Alpha 1. Дистрибутив x86 совместим с BeOS как на уровне исходного кода, так и на уровне двоичного кода. Как и BeOS, он написан в основном на C ++ и предоставляет объектно-ориентированный API. Активно развивается.
IBM i (OS / 400, i5 / OS)
IBM представила OS / 400 в 1988 году. Эта ОС работала исключительно на AS / 400 Платформа. Переименован IBM i в 2008 году эта операционная система работает исключительно на Энергетические системы который также может работать AIX и Linux. IBM i использует объектно-ориентированную методологию и интегрирует базу данных (DB2 для i ). ОС IBM i имеет 128-битный уникальный идентификатор для каждого объекта.
IBM OS / 2 2.0
Графическая операционная система на базе Windows, основанная на приоритетной многозадачности, включала объектно-ориентированную пользовательскую оболочку. Он был разработан для Intel 80386, который использовал виртуальный режим 8086 с полной 32-битной поддержкой и был выпущен в 1992 году. ArcaOS, новая операционная система на базе OS / 2, первоначально называемая Blue Lion[8] разрабатывается Arca Noae. Первая версия была выпущена в мае 2017 года.
IBM TopView
Вид сверху была объектно-ориентированной операционной средой, которая загружалась на ПК поверх DOS, а затем передавала управление из DOS. С этого момента она фактически превратилась в объектно-ориентированную операционную систему с объектно-ориентированным API (TopView API). Это была первая многозадачная оконная объектно-ориентированная операционная система IBM для ПК, выпущенная Дэвидом Моррилом и выпущенная в феврале 1985 года.
На основе Java
При условии Oracle (ранее Sun Microsystems ') Ява сегодня является одним из наиболее доминирующих объектно-ориентированных языков, поэтому неудивительно, что были попытки использовать операционные системы на основе Java. В этой области в идеале ядро будет состоять из минимума, необходимого для поддержки Виртуальная машина Java (JVM). Это единственный компонент такой операционной системы, который должен быть написан на языке, отличном от Java. Основываясь на JVM и базовой аппаратной поддержке, можно было бы написать остальную часть операционной системы на Java; даже части системы, которые более традиционно написаны на языке более низкого уровня, таком как C, например драйверы устройств, можно написать на Java.
Примеры попыток создания такой операционной системы включают: JavaOS, JOS,[9] JNode, и JX.
На основе Lisp
Объектно-ориентированные операционные системы, написанные на Лисп диалект Лисп-машина Лисп (и позже Common Lisp ) был разработан в Массачусетском технологическом институте. Он был коммерциализирован с Машины Лисп из Символика, Lisp Machines Inc. и Инструменты Техаса. Symbolics назвала свою операционную систему Роды. Он был разработан с использованием Ароматизаторы объектно-ориентированное расширение Лиспа. Позже в New Flavors, а затем с помощью Общая объектная система Lisp.
Xerox разработала несколько рабочих станций с операционной системой, написанной на Интерлисп-Д. Interlisp-D предоставил объектно-ориентированные расширения, такие как LOOPS и Common Lisp Object System.
Мовиц и Меццано это две более поздние попытки операционных систем, написанных на Common Lisp.
Microsoft Singularity
Сингулярность это экспериментальная операционная система, основанная на Microsoft .NET Framework. Это сопоставимо с операционными системами на основе Java.
Microsoft Windows NT
Windows NT это семейство операционных систем (включая Windows 7, 8, Телефон 8, 8.1, Windows 10, Xbox ) произведено Microsoft, первая версия которого была выпущена в июле 1993 года. Это язык программирования высокого уровня -основан, независимый от процессора, многопроцессорность, многопользовательский Операционная система. Лучше всего это описать как объектно-ориентированный а не объектно-ориентированный, поскольку он не включает в себя все свойства наследования объектно-ориентированных языков.[10]
В Диспетчер объектов отвечает за управление объектами NT. В рамках этой ответственности он поддерживает внутренний пространство имен где различные компоненты операционной системы, драйверы устройств и Программы Win32 может хранить и искать объекты. NT Собственный API предоставляет процедуры, которые позволяют пространство пользователя (режим) программы для просмотра пространства имен и запроса статуса расположенных там объектов, но интерфейсы недокументированы.[11] NT поддерживает каждый объект (файл, функцию и роль) списки контроля доступа позволяя применять к системам и службам широкий набор разрешений безопасности. WinObj - это программа Windows NT, которая использует NT Native API (предоставляемый NTDLL.DLL) для доступа и отображения информации в пространстве имен NT Object Manager.[12]
Компонентная объектная модель
На пользовательский режим сторона окна, Компонентная объектная модель (COM) - это двоичный интерфейс приложения стандарт для программные компоненты представлен Microsoft в 1993 году. Используется для включения межпроцессного взаимодействия и динамичный объект создание в большом количестве языки программирования. COM является основой для нескольких других технологий и фреймворков Microsoft, включая Связывание и внедрение объектов (OLE), OLE автоматизация, ActiveX, COM +, Распределенная компонентная объектная модель (DCOM), Оболочка Windows, DirectX, и Среда выполнения Windows. OLE - это проприетарный технология, разработанная Microsoft что позволяет встраивать и связывание к документы и другие объекты. На техническом уровне объект OLE - это любой объект, реализующий IOleObject интерфейс, возможно, вместе с широким спектром других интерфейсов, в зависимости от потребностей объекта. Его основное использование - управление составные документы, но он также используется для передачи данных между разными Приложения с помощью перетащить и отпустить и буфер обмена операции.
Двоичный формат составного файла
Двоичный формат составного файла (CFBF) - это формат файла для хранения множества файлов и потоков в одном файле на диске. CFBF разработан Microsoft и является реализацией Microsoft Структурированное хранилище COM. Структурированное хранилище широко используется в качестве основного формата файлов в приложениях Microsoft Office, включая Microsoft Word, Майкрософт Эксель, Microsoft Силовая установка, Microsoft Access и является основой Расширенный формат авторинга.
Связывание и внедрение объектов
Связывание и внедрение объектов (OLE) было частью более грандиозного плана под названием Каир, кодовое название проекта в Microsoft с 1991 по 1996 год. Его уставом было создание технологий для операционной системы следующего поколения, которые будут выполнять Билл Гейтс "видение"информация у вас под рукой".[13][14] Каир никогда не отправлялся, хотя с тех пор часть его технологий появилась и в других продуктах. В Windows 95 пользовательский интерфейс был основан на первоначальной проектной работе, выполненной в пользовательском интерфейсе Cairo. Оставшийся компонент - это объектная файловая система. Когда-то планировалось реализовать в виде WinFS как часть Виндоус виста. WinFS (сокращение от Windows Future Storage) - это кодовое имя для хранения данных и управление системный проект на основе реляционные базы данных, бегущий поверх NTFS. Windows NT файловая система NTFS является объектно-ориентированной системой в том смысле, что она может хранить объекты NT, включая идентификатор объекта NT. Каждый объект NTFS имеет идентификатор объекта; ярлык с целью, находящийся на томе NTFS, также записывает идентификатор объекта цели ярлыка, а также идентификатор объекта самого диска.[15] WinFS была впервые продемонстрирована в 2003 году как расширенная подсистема хранения для Майкрософт Виндоус Операционная система, предназначен для упорство и управление структурированный, полуструктурированный а также неструктурированные данные. Разработка WinFS была отменена в июне 2006 года, и некоторые из ее технологий были объединены с другими продуктами Microsoft, такими как Microsoft SQL Server 2008 и Microsoft SharePoint. Впоследствии в интервью Биллу Гейтсу было подтверждено, что Microsoft планировала перенести такие приложения, как Проигрыватель Windows Media, Фотогалерея Windows, Microsoft Office Outlook и т. д. использовать WinFS как серверная часть хранилища данных.[16]
Следующий шаг
В конце 1980-х гг. Стив Джобс сформировал компьютерную компанию Следующий. Одна из первых задач NeXT заключалась в разработке объектно-ориентированной операционной системы, Следующий шаг. Они сделали это, добавив объектно-ориентированный фреймворк поверх Мах и BSD с использованием Цель-C язык как основа. Он занял нишевый статус на рынке вычислительной техники, особенно используемый Тим Бернерс-Ли разработка первой реализации Всемирная паутина.
Позже NeXTStep превратился в OpenStep и Какао API на Mac OS X и iOS.
OpenStep был предоставлен как уровень API поверх многих операционных систем, а именно HP-UX, Следующий шаг, Солярис, и Windows.
ООСМОС
Операционная система с объектно-ориентированным конечным автоматом (ООСМОС ), написанный на C, продвигает объектно-ориентированную инкапсуляцию и реализует полную управляемую таблицами иерархическую архитектуру конечного автомата. Генерирует код C непосредственно из диаграмм состояний, нарисованных с помощью инструмента с открытым исходным кодом UMLet. OOSMOS также поддерживает уникальную функцию вызова «потоки состояний», которая позволяет выполнять поток для каждого состояния. OOSMOS работает на чистой плате или в сотрудничестве с существующей операционной системой.
ReactOS
ReactOS это компьютерная операционная система с открытым исходным кодом, предназначенная для двоичной совместимости с прикладным программным обеспечением и драйверы устройств Сделано для версий Microsoft Windows NT. Написанный с нуля, он нацелен на архитектура Windows NT разработан Microsoft от аппаратного уровня до уровня приложений. Это нет система на базе Linux и общие никто из архитектура unix.[17][18]
Себя
Самостоятельная (язык программирования) был изобретен в Xerox PARC. Затем он был разработан в Стэндфордский Университет и Sun Microsystems.
Болтовня
Болтовня был изобретен в Ксерокс в 1970-е гг. Система Smalltalk полностью объектно-ориентирована и практически не требует поддержки со стороны BIOS и система времени выполнения.
Слог
Слог интенсивно использует C ++ и по этой причине часто сравнивают с BeOS.
Symbolics Genera
Роды из Символика это операционная система для Лисп-машины написано в ZetaLisp и символика Common Lisp. Он интенсивно использует Ароматизаторы (раннее объектно-ориентированное расширение Lisp) и Общая объектная система Lisp (ЗАКРЫТЬ). Разработка началась в середине 70-х годов в Массачусетском технологическом институте.
Taligent
Taligent был проект объектно-ориентированной операционной системы, начатый Apple Inc. и разработан совместно с IBM в 1990-е гг. Позже она была выделена в дочернюю компанию IBM и преобразована из операционной системы в среду программирования.

Смотрите также

Рекомендации

  1. ^ а б c Паштан, Ариэль (1 января 1982 г.). «Объектно-ориентированные операционные системы: новая методология проектирования». Материалы конференции ACM '82. ACM: 126–131. Дои:10.1145/800174.809777.
  2. ^ Вегнер, Питер. «Измерения объектно-ориентированного языкового дизайна». Материалы конференции по системам объектно-ориентированного программирования, языкам.
  3. ^ «Операционная система Athene [LWN.net]». lwn.net. Получено 13 февраля 2017.
  4. ^ «Роклайт Системс». www.rocklyte.com.
  5. ^ Sydow, Дэн Паркс (1999). Программирование операционной системы Be (1-е изд.). Пекин: О'Рейли. ISBN  978-1-56592-467-3.
  6. ^ Кэмпбелл, Рой; Джонстон, Гарри; Руссо, Винсент (1 июля 1987 г.). «Выбор (Иерархический открытый интерфейс классов для заказных встроенных систем)». SIGOPS Oper. Syst. Rev. 21 (3): 9–17. Дои:10.1145/29321.29323. ISSN  0163-5980.
  7. ^ «Выбор». choices.cs.illinois.edu.
  8. ^ "Синий лев" Арки Ноэ ". Arca Noae. Получено 2017-02-18.
  9. ^ "О". JOS (бесплатная операционная система на основе Java). Получено 2012-09-03. Проект JOS - это совместное предприятие международной группы программистов и энтузиастов Java ™, направленное на создание бесплатной и открытой операционной системы на основе Java ™ (JOS). Совместными усилиями мы вместе исследуем, как должна работать операционная система на основе Java. Вместе мы работаем над созданием компонентов для операционной системы на основе Java.
  10. ^ «Объектно-ориентированный». Центр разработки оборудования Microsoft. Получено 23 августа, 2015.
  11. ^ Неббетт, Гэри (20 февраля 2000 г.). Справочник по собственному API Windows NT / 2000. Самс Паблишинг. п. 528. ISBN  978-1578701995. Справочник по собственному API Windows NT / 2000 дает первое полное представление об этих недокументированных службах. Этот уникальный инструмент для разработчиков программного обеспечения включает в себя документацию по более чем 200 подпрограмм, включенных в собственный API, подробное описание подпрограмм, которые либо не доступны напрямую через Win32 API, либо предлагают существенные дополнительные функции.
  12. ^ Марк Руссинович. "Windows Sysinternals WinObj". Microsoft. Получено 2014-05-16. Obj - обязательный инструмент, если вы системный администратор, заботящийся о безопасности, разработчик, отслеживающий проблемы, связанные с объектами, или просто интересуетесь пространством имен диспетчера объектов.
  13. ^ Билл Гейтс (1990). ""Информация на кончиках ваших пальцев "Keynote - Comdex / осень 1990". Microsoft. Получено 2014-05-16. Билл Гейтс выступил 12 ноября 1990 года со своим знаменитым ключевым докладом под названием «Информация на кончиках пальцев».
  14. ^ Билл Гейтс (1994). ""Информация на кончиках ваших пальцев "# 2 Keynote (Дорога впереди) - Comdex 1994". Microsoft. Получено 2014-05-16. Программная речь Билла Гейтса «Информация на кончиках пальцев» для Comdex 1995 стала основой его книги «Дорога в будущее», предсказывающей следующее десятилетие в области технологий - правильное и неправильное. Эти прогнозы подкрепляются взаимодействием между речью Гейтса и будущим криминальным шоу, созданным для Comdex.
  15. ^ Раймонд Чен (2007). «Конфиденциальность Windows - путь NT (отрывки из книги« Старое новое »)». Microsoft. Получено 2014-05-16. Люди, работающие с файловой системой Windows NT, посмотрели на алгоритм разрешения ярлыков Windows 95 и усмехнулись. «Мы можем добиться большего: мы объектно-ориентированные!» Каждый объект NTFS имеет идентификатор объекта; ярлык с целью, находящийся на томе NTFS, также записывает идентификатор объекта цели ярлыка, а также идентификатор объекта самого диска.
  16. ^ Даниил Корнев (19 декабря 2006 г.). «Несколько слов о WinFS: проект снова в нужном русле». Канал 9.
  17. ^ Клеменс Фридл. «О ReactOS - объектной основе». Проект ReactOS. Получено 2017-02-19. ReactOS использует метафору объекта, которая присутствует во всей архитектуре системы. ReactOS рассматривает не только все элементы в метафоре файла UNIX как объекты, но и такие вещи, как процессы и потоки, сегменты разделяемой памяти, базу данных глобального реестра и даже права доступа.
  18. ^ Филби, Дж. «ReactOS: альтернатива NT с открытым исходным кодом?» ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ IEEE 16.1 (1999): 35-35.

внешняя ссылка