1 (изменено: Freeman, 23.11.2018 в 07:20)

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

Эта тема создана для развития теории объектно-ориентированной ОС. По итогам обсуждения должен быть сформирован новый документ.

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

2

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

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

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

В настоящий момент известны два способа организации хранилища типов:

  • В виде единой базы данных — реестра типов (Windows, .NET).

  • Путем отображения на файловую систему, по необходимости расширяемой файлами манифестов (Java, Phantom, Кантор).

Следует отметить, что реестр впервые появился в Windows 3.11 с технологией OLE — именно как хранилище данных о типах OLE. В дальнейшем акценты разработки Windows Cairo сместились, и в Windows 95 реестр обрел знакомую нам форму.

Таким образом, если вы где-то видите реестр или пути вида org/java_websocket/client/WebSocketClient, перед вами прототип объектно-ориентированной ОС, — как правило, виртуальной, то есть работающей в окружении классической ОС.

3

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

Крайний пример пагубности подхода «всё есть файл» в современных условиях.

В Linux есть мультиплексор терминалов Screen. Если воспользоваться им из сеанса SSH через PuTTY, при некоторых условиях размеры окна терминала PuTTY будут сбрасываться к умолчательным значениям. Не изучал подробно, баг это или запланированное поведение. Нас интересует решение:

# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E>
# (This fixes the "Aborted because of window size change" konsole symptoms found
#  in bug #134198)
termcapinfo xterm* 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'

Эти строки нужно добавить в файл ~/.screenrc, и окно PuTTY будет сохранять размеры. Очень наглядно и интуитивно, не правда ли?

Понятно, что это Esc-последовательности, пришедшие к нам с терминалов 70-х. Но разве их создавали боги, наследие наследие которых незыблемо и свято, и пересмотру не подлежит? Не лучше ли развивать технологии, более соответствующие современным реалиям?

В мобильной связи

Управляющими последовательностями с терминальным наследием пользуются владельцы мобильных телефонов: USSD-команды. К примеру, чтобы узнать баланс в Tele2, нужно отправить *105#. Для подключения и отключения сервисов, в том числе платных, — тоже есть USSD-команды, у каждого оператора свои. Их ненаглядность дает свободу разного рода мошенничествам, вроде «введи команду и получишь деньги на счет». Их «хакерский» характер имеет корни в терминальной основе, как и пример выше.

Отказавшись от концепции терминала как основы ОС, мы выиграем в наглядности, простоте и безопасности.

4

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

Из твиттера «Канторовых систем»:

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