ОПОС

В предыдущей статье я попытался дать общее представление об ОП (ортогональной персистенции). Дальнейшее обсуждение невозможно без углубления в историю развития СУБД (систем управления базами данных). Это особенно трудно для меня, потому что по каким-то непонятным для самого себя причинам я всегда страдал субдофобией. Может быть, это нечто вроде комплекса неполноценности, источником которого является моя плохая память.
Или же я подсознательно не доверяю компьютерным средствам хранения данных (даже если это всего лишь утилита для наклеивания стикеров на рабочий стол) из-за частой потери всей информации на жёстком диске. Было это во времена моего босоногого детства, когда на компьютере стояло до десятка ОС одновременно, а утро начиналось с бодрящего FORMAT C:.
Интересно, что сказал бы на это Зигмунд Фрейд?

Эволюция СУБД очень интересна и поучительна, возникает стойкая аналогия с операционными системами (ОС) и языками программирования (ЯП). Во всех трёх группах можно выделить 4 поколения. Разумеется, это разделение крайне условно, можно даже сказать - примитивно. Притом я это сделал без всякой оглядки на хронологию (то есть СУБД, ОС и ЯП одного поколения совсем необязательно существовали одновременно).

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

0x01: Системы пакетной обработки - программы выстраиваются в очередь и выполняются последовательно. Алгоритмические ЯП. Появление сетевой модели БД.

0x02: Системы разделения времени (timesharing) - каждый терминал, подключённый к мэйнфрейму, обладает виртуальными ресурсами, равными реальным ресурсам мэйнфрейма. Структурные ЯП.
Иерархический принцип организации БД.

0x03: Истинно многозадачные ОС. Объектно-ориентированные ЯП. Реляционные СУБД.

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

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

0xFF: Ортогонально-персистентные операционные системы (ОПОС). Сейчас их совсем немного: Grasshopper, Mungi, Brix и упоминавшийся уже Eros. Но когда
наступит эпоха всеобщей ОПизации, нас всех (в очередной раз) ждёт светлое будущее. Только представьте, что создаваемый в программе объект и его методы - не просто умозрительная конструкция, они существуют реально. Можно было бы сказать - существуют как часть ОС или запись в БД, но никакой ОС или БД нет. Во всяком случае, нет того, что мы понимаем под этими словами. Вместо файловой системы - набор объектов, вместо пользовательских программ, утилит и системных вызовов ядра - объектные методы. Программировать в ОПОС просто и естественно, ведь для этого нужно изучить только тот набор возможностей, который нам нужен (ортогональность). Не нужно будет заботиться о сохранении результатов работы, будь то инкапсулированный объект или записанный с микрофона звук. Тем более, что это одно и то же. Звук - это объект, все объекты - часть ОПОС, а ОПОС персистентна по определению. Можно рассматривать ОПОС как некий набор объектов данных и методов работы с ними, существующих постоянно и независимо. Правда, для этого придётся пересмотреть всю теорию программирования, вплоть до базовых концепций. Сейчас ОП-языки, насколько я знаю, не существуют даже в проектах.

Чудовища с острова Коммодор

А теперь вместо прекрасного далёка заглянем в замшелое прошлое. В 1986 году Berkeley Softworks представила новый продукт для компьютеров Commodore 64 - операционную систему GEOS. Расшифровывалось это название Graphical Environment Operating System (Операционная Система Графического Окружения). Пользователям Коммодоров это окружение очень понравилось, потому что позволяло превратить восьмибитный (!) компьютер в нечто макинтошеподобное. Красивая, удобная и функциональная ОС была выпущена также для Commodore 128, Apple II и IBM PC. В настоящее время операционные системы C64/GEOS и C128/GEOS принадлежат некой Click Here Software Co. Подозрительное название, не правда ли? Не пужайтесь, граждане... Это просто продавцы софта, а вовсе не спаммеры и не накрутчики баннеров.

Существует несколько открытых операционных систем для C64. Например, Contiki Operating System and Desktop Environment (или просто Contiki) и клон юникса LUnix. Владельцы ГЕОСа, отчаявшись с ними конкурировать, окончательно решили выпустить прогрессивную (когда-то) ОС в свободное плавание. Так что теперь любой желающий может скачать GEOS 64 и GEOS 128 v2.0 совершенно бесплатно. Ожидалось, что озверевшие орды фанатов ГЕОСа незамедлительно накинуться на сервер, что и случилось. Утверждается, что число скачиваний уже превысило 100 тысяч, а ведь прошла всего одна неделя. Значит, не так уж мало ещё сумасшедших, которым старые компьютеры и операционные системы нравятся больше, чем новомодные чудовища с острова Комодо. Может быть, чудовища с острова Коммодор выглядят не так впечатляюще, но они довольствуются ресурсами, которых другим ОС не хватит даже на вывод BSOD'а.

К сожалению, другие версии GEOS всё ещё требуют денег. C64/C128-версии тоже коммерческие (три диска и полное руководство предлагаются по сниженной цене в 25 долларов), просто они (и некоторые программы для них) могут использоваться бесплатно. PC/GEOS 4.х (под именем Breadbox Ensemble) тоже можно скачать бесплатно, но это урезанная Lite-версия, годная лишь на то, чтобы оценить возможности ОС и принять решение о покупке полноценной версии. Многие люди используют GEOS даже на достаточно мощных компьютерах. Она стабильна, удобна, быстра и далеко не так примитивна, как может показаться при взгляде на системные требования. Для этой ОС существует множество приложений, в том числе средства работы в интернете (WWW, IRC, mail) и даже мультимедиа. Поддерживаются графические режимы вплоть до 1280 на 1024 с 16 миллионами цветов. Кстати, именно GEOS установлен в коммуникаторах Nokia 9000/9110.

Наиболее продвинутый и современный вариант PC/GEOS - GeoWorks NewDeal 2000. Он имеет "стандартный индустриальный интерфейс" (проще говоря, похож на Win95) и включает в себя офисный пакет (клон Microsoft Office). Учитывая, что за всё это богатство просят всего-то $99.95 (какая мелочь), становится понятно, что предложение крайне выгодное, особенно для сферы бизнеса. Разумеется, можно купить PC/GEOS и NewDeal отдельно. Тем же, у кого, как и у меня, лишней сотни доллярей почему-то не оказалось, могу посоветовать скачать Commodore-версию GEOS и использовать её на соответствующем эмуляторе (например,
VICE).

Оставить мнение