Разработчик | UCLA |
---|---|
Семейство ОС | Unix |
Рабочее состояние | Исторический |
Исходная модель | Закрытый источник |
Тип ядра | Монолитное ядро |
Лицензия | Проприетарный |
LOCUS - это прекращенная распределенная операционная система, разработанная в UCLA в 1980-х годах. Это было примечательно тем, что на ранней стадии была реализована идея образа единой системы , когда кластер машин представлял собой одну большую машину. [1]
Желание коммерциализировать технологии, разработанные для LOCUS, вдохновило создание Locus Computing Corporation, которая в дальнейшем включала идеи LOCUS в различные продукты, включая OSF / 1 AD и, наконец, продукт SCO - Tandem UnixWare NonStop Clusters .
Описание [ править ]
Система LOCUS была создана в Калифорнийском университете в Лос-Анджелесе между 1980 и 1983 годами, первоначальная реализация была на кластере PDP-11 /45 с использованием кольцевых сетей 1 и 10 мегабит , к 1983 году система работала на 17 VAX-11/750 с использованием 10 мегабитного Ethernet. . Система была совместима с Unix и обеспечивала как единое корневое представление файловой системы, так и единое пространство процессов для всех узлов.
Разработка LOCUS была поддержана контрактом на исследования ARPA , DSS-MDA-903-82-C-0189.
Файловая система [ править ]
Чтобы обеспечить надежный и быстрый доступ к файловой системе в масштабе кластера, LOCUS использовал репликацию , данные файлов можно было хранить более чем на одном узле, а LOCUS будет поддерживать различные копии в актуальном состоянии. Это обеспечивало особенно хорошее время доступа к файлам, которые читались чаще, чем писались, например, нормальный случай для каталогов.
Чтобы обеспечить полный доступ к самой последней версии любого файла, LOCUS назначит один узел в качестве «текущего сайта синхронизации» (CSS) для конкретной файловой системы. Все обращения к файлам в файловой системе должны быть согласованы с соответствующим CSS.
Файлы, зависящие от узла [ править ]
Как и в случае с другими системами SSI , LOCUS иногда считал необходимым разрушить иллюзию единой системы, в частности, позволить некоторым файлам отличаться для каждого узла. Например, можно было построить кластер LOCUS, содержащий как машины PDP-11/45, так и VAX 750, но используемые наборы команд не были идентичными, поэтому потребовались бы две версии каждой объектной программы [примечание 1]
Решением было заменить файлы, которые должны были отличаться для каждого узла, специальными скрытыми каталогами. Эти каталоги затем будут содержать разные версии файла. Когда пользователь обращался к одному из этих скрытых каталогов, система проверяла контекст пользователя и открывала соответствующий файл.
Например, если пользователь работает на одном из PDP-11/45 и набирает команду, /bin/who
система обнаружит, что на /bin/who
самом деле это скрытый каталог, и выполнит команду /bin/who/45
. Другой пользователь узла VAX, который ввел /bin/who
команду, запустил бы команду /bin/who/vax
.
Устройства [ править ]
LOCUS предоставил удаленный доступ к устройствам ввода-вывода.
Процессы [ править ]
LOCUS предоставил единое технологическое пространство. Процессы могут быть созданы на любом узле системы. И вызовы fork Unix, и вызовы exec будут проверять список рекомендаций, который определяет, на каком узле будет запущен процесс. LOCUS был разработан для работы с разнородными узлами (например, смесью VAX 750 и PDP 11/45) и мог решить выполнить процесс на другом узле, если ему требовался конкретный набор команд. В качестве оптимизации был добавлен вызов run, который был эквивалентен комбинированному fork и exec, что позволило избежать накладных расходов на копирование образа памяти процесса на другой узел перед его перезаписью новым образом. [заметка 2]
Трубы [ править ]
Процессы могут использовать каналы для связи между узлами, включая именованные каналы ,
Разбиение на разделы [ править ]
Система LOCUS была разработана для того, чтобы справляться с разделением сети - один или несколько узлов отключаются от остальной системы. Поскольку файловая система была реплицирована, отключенные узлы могли продолжать доступ к файлам. При повторном подключении узлов любые файлы, измененные отключенными узлами, будут снова объединены в систему. Для некоторых типов файлов (например, почтовых ящиков) система будет выполнять слияние автоматически, для других пользователь будет проинформирован (по почте), и будут предоставлены инструменты, позволяющие получить доступ к различным версиям файла.
Примечания [ править ]
- ^ Скорее как двоичные файлыApple Fat
- ^ run - это та же операция, что и spawn всистемах Windows .
Ссылки [ править ]
- ^ Уокер, Брюс (1983). «Распределенная операционная система LOCUS» (PDF) . DOI : 10.1145 / 800217.806615 .