ДЖОРДЖ (операционная система)
Разработчик | Международные компьютеры и табуляторы |
---|---|
Написано в | Язык ассемблера |
Рабочее состояние | Исторический |
Исходная модель | Исходный код доступен лицензиатам. |
Первоначальный выпуск | 1960-е годы |
Последний выпуск | 8,67/1985 |
Доступно в | Английский |
Платформы | серии ICT 1900 Компьютеры |
ядра Тип | Монолитный |
Под влиянием | Мультикс |
По умолчанию пользовательский интерфейс | CLI (телетайп или терминал в блочном режиме) |
Лицензия | Собственное коммерческое программное обеспечение |
ДЖОРДЖ — это имя, данное серии операционных систем, выпущенных компанией International Computers and Tabulators (ICT) в 1960-х годах для серии ICT 1900 компьютеров . В их число входили ГЕОРГ 1 , ГЕОРГ 2 , ГЕОРГ 3 и ГЕОРГ 4 .
Первоначально машины серии 1900, такие как Ferranti-Packard 6000 , на которой они были основаны, работали под управлением простой операционной системы, известной как Executive , которая позволяла системному оператору загружать и запускать программы с Teletype Model 33 ASR системной консоли .
В декабре 1964 года компания ICT создала отдел операционных систем для разработки новой операционной системы для 1906/7. Первоначально филиал был укомплектован людьми, освобожденными к концу работы над операционной системой OMP для Ferranti Orion . Первоначальный проект новой системы, названной Джорджем в честь главы отдела базового программирования Джорджа Э. Фелтона , [1] был основан на идеях «Ориона» и буферизации системы компьютера «Атлас» . [2] Публично утверждалось, что Джордж выступал за «Общую организационную среду», но современные источники говорят, что это был бэкроним . [3]
В июле 1965 года группа из ICT присутствовала на семинаре в NPL, описывая операционную систему CTSS, разработанную для технологического института Массачусетского проекта MAC . Они решили, что ИКТ необходимо будет предоставить средства множественного доступа , известные в ИКТ как MOP, «множественная онлайновая обработка». В ноябре 1965 года Х.П. Гудман , глава отдела операционных систем, присутствовал на осенней совместной компьютерной конференции планы Multics . в Лас-Вегасе, где первоначально были описаны [4] Некоторые из обсуждавшихся функций Multics повлияли на будущее развитие Джорджа, в частности, файловое хранилище с древовидной структурой.
К концу 1965 года отдел маркетинга ИКТ потребовал, чтобы как можно скорее стала доступна более простая операционная система, особенно для небольших представителей этой линейки. Было решено, что две меньшие системы, известные как Джордж 1 и Джордж 2, будут выпущены в ближайшее время, а более крупная операционная система была переименована в Джордж 3.
ДЖОРДЖ 1 и 2
[ редактировать ]Джордж 1 представлял собой простую систему пакетной обработки . Описания должностей считывались с карточек или бумажной ленты, что контролировало загрузку и запуск программ, загружаемых либо с карточек, либо с бумажной, либо магнитной ленты. Язык управления заданиями позволял определять используемые периферийные устройства и файлы, а также обрабатывать исключительные ситуации. Описание задания будет проверено на наличие ошибок перед запуском задания. Джордж использовал надежные программные средства, предоставленные руководителем, для запуска пользовательских программ.
Джордж 2 добавил концепцию автономной обработки периферийных устройств ( спулинга ). Несколько различных модулей, работающих параллельно, позволяли перекрывать операции ввода, обработки и вывода:
- Задания считывались с карточек или бумажной ленты во временные файлы на магнитном диске или ленте с помощью модуля ввода.
- Центральный модуль выполнял пользовательские программы, принимая входные данные из временных входных файлов и записывая выходные данные программы во временные файлы.
- Модуль вывода записывал временные файлы вывода на физические принтеры и перфораторы.
- Также был доступен модуль для ввода заданий с удаленных станций ввода заданий, результат задания можно было распечатать на удаленном принтере.
Если установка была достаточно большой, можно было запустить несколько копий центрального модуля, что позволило обрабатывать несколько заданий параллельно.
Язык управления заданиями George 2 позволял использовать хранимые макросы с условными возможностями.
В Джордже 2 не было файловой системы, система и пользовательские программы полагались на возможности, предоставляемые Executive . Доступ к файлам на диске осуществлялся по уникальным 12-значным именам, и не было обеспечено никакой безопасности, кроме бита «не стирать».
MINIMOP можно было запускать одновременно с GEORGE 2 на одной машине, чтобы обеспечить возможность разделения времени в режиме онлайн.
ДЖОРДЖ 3 и 4
[ редактировать ]ДЖОРДЖ 3 [5] была основной версией серии операционных систем для более крупных машин серии 1900. Первоначально он был выпущен для модели 1906/7 года; в конечном итоге он стал доступен для моделей вплоть до 1902T. В отличие от George 1 и 2, которые работали как программы пользовательского режима под управлением Executive, George 3 представлял собой полноценную операционную систему, оставляя только низкоуровневую периферийную систему и обработку прерываний урезанной версии Executive.
George 3 был реализован как небольшая резидентная часть и набор глав ( оверлеев ), которые загружались в память и удалялись из нее по мере необходимости. Главы были строго независимыми от местоположения, что позволяло максимально эффективно использовать память. Внутренне Джордж использовал совместную многозадачность ; Переключение контекста может происходить при любом изменении главы (вызове одной главы к другой) или в других заданных местах кода. Код пользовательского уровня выполнялся с использованием вытесняющей многозадачности ; переключение контекста принудительно выполнялось при операциях ввода-вывода или тактовых импульсах. [6]
Джордж был написан на специальном ассемблере GIN (George INput), который имел более богатые возможности условной компиляции и макросов, чем стандартный ассемблер PLAN. Макросы активно использовались в коде, чтобы упростить программирование такой большой системы на языке ассемблера. В более поздних версиях макрофункции GIN использовались для добавления структурированного программирования в код функций . По оценкам, на написание системы ушло 75 программистов . лет работы [7]
Контроль заданий
[ редактировать ]George 3 представлял собой смешанную пакетную и онлайн-систему. Задания можно запускать с карточек или ленты так же, как в Джордже 2, или в интерактивном режиме с терминалов MOP (множественная онлайн-обработка), либо простых Teletype Model 33 ASR терминалов блочного режима , либо терминалов VDU .
Язык управления заданиями был одинаковым на терминалах и в пакетных заданиях и включал условные операции и макрооперации . В отличие от систем Unix язык управления заданиями был частью операционной системы, а не процессом оболочки пользовательского уровня .
Задание может одновременно загружать в память только одну программу, но одно задание может запускать другие задания для одновременного выполнения, если это позволяют системные ресурсы и политика сайта. Система вытесняла пользовательские программы из памяти, пока они ожидали ввода или вывода, если для выполнения других действий требовалась память.
хранилище файлов
[ редактировать ]George 3 предоставил файловое хранилище с древовидной структурой, частично вдохновленное Multics .
У каждого пользователя системы был домашний каталог с необходимым количеством подкаталогов. Доступ к домашнему каталогу пользователя можно получить напрямую, например, каталог пользователя JOHN может называться :JOHN или по полному пути, например, если JOHN работал на факультете информатики, его домашний каталог может быть :MANAGER.USERS. КОМПСИ . ДЖОН .
Списки контроля доступа использовались для обеспечения безопасности: пользователь мог разрешить или запретить любому пользователю или группе пользователей доступ к своим файлам или каталогам.
Хранение файловых данных было двухуровневым: файлы могли либо находиться на диске в данный момент, либо, если в системе было мало места на диске, они могли автоматически переноситься на магнитную ленту. Если была предпринята попытка доступа к файлу, находящемуся в данный момент в автономном режиме, задание будет приостановлено, и операторы запросят загрузку соответствующей ленты. Когда лента станет доступной, файл будет возвращен на диск, и работа возобновится.
Базовый механизм дискового хранения данных George 3, созданный в 1968 году, был, вероятно, самой ранней коммерческой версией файловой системы копирования при записи . Это работало так, что все измененные блоки записывались в блоки «свободного» списка. Блоки, содержащие метаданные, также обрабатывались таким же образом, но вместе с блоками данных физически записывались в таком порядке, что при записи последнего «главного» блока файл фиксировался. Если в какой-то момент машина вышла из строя, аппаратное обеспечение гарантировало, что файл будет либо в исходном, неизмененном виде, либо полностью обновлен.
Еще одной полезной особенностью было то, что Filestore мог эмулировать все стандартные периферийные устройства, такие как устройства считывания карт и перфораторы, магнитные ленты и диски. Это позволило более старым программам Джорджа 1 и 2, которым требовались эти физические устройства, запускаться под Джорджем 3 без изменений. Это могло бы ускорить работу, которая требовала большого количества замен лент или дисков на Джордже 1 и 2, чтобы быть автоматизированным до такой степени, что то, что требовало двух операторов, нескольких десятков замен лент и пяти часов, теперь не требовало никаких операторов, кроме как для установки двух рабочие ленты с результатами и закончили за 45 минут.
Джордж 4
[ редактировать ]Начиная с 1904A, страничный блок был доступен для более крупных процессоров 1900, и для использования его преимуществ был написан George 4. Джордж 4 оставался совместимым с Джорджем 3. Было принято чередовать Джордж 3 и 4 на одной и той же машине и в одном хранилище файлов, запуская Джордж 3 в течение дня для небольших интерактивных рабочих нагрузок и Джордж 4 ночью для больших задач, требующих большого объема памяти. [8]
Георг 4 представил концепцию разреженной программы — программы, адресное пространство которой превышает выделенную ей память, а также доступные только для чтения ( чистые области данных и кода, ). Для использования этих средств были предоставлены новые версии консолидатора ( компоновщика) и компиляторов.
Исходный код Георгия 3 и 4 был одинаковым; Средства условной компиляции ассемблера GIN использовались для выбора компилируемой версии системы.
Поскольку функция пейджинга 1900 года не эмулировалась машинами серии 2900, использовавшимися в более поздних установках Джорджа, Джордж 4 вышел из употребления раньше Джорджа 3.
Исходный код
[ редактировать ]George распространялся в форме, позволяющей сайту модифицировать большие части системы. Компиляция системы была начата, затем прервана перед самым завершением и сброшена на магнитную ленту. Компилятор GIN позволял продолжить компиляцию с этого момента на сайте пользователя, возможно, изменяя уже скомпилированный код.
Версии George 3 до выпуска 8 предоставлялись в двоичной форме. Любые изменения, необходимые для системы, делались в виде бинарных патчей. Чтобы упростить процесс, большинство глав Джорджа включали «ИСПРАВИТЬ» в конце пустую область .
Начиная с версии 8, исходники Джорджа распространялись в двоичном виде, как на магнитной ленте, так и на микрофишах. Для модификации системы использовалась система исправлений исходного уровня, известная как MENDITS , и существующая глава могла быть полностью заменена новой модифицированной главой.
Группа пользователей Джорджа создала «схему обмена MEND», чтобы делиться интересными модификациями Джорджа. Некоторые модификации распространялись свободно, другие были доступны за определенную плату. Когда ICL выпускала новую версию Джорджа, она иногда включала модификации, внесенные пользователями.
Для последней выпущенной версии, 8.67, большинство патчей из схемы обмена MEND были включены в стандартный исходный код George, отключенный условной компиляцией . Их можно включить в рамках стандартного процесса адаптации Джорджа под сайт.
Документация
[ редактировать ]Джордж был хорошо документирован внутри компании в виде отдельных папок, распространявшихся в виде первоначальной версии и поправок. Со временем все исходные страницы были заменены, поэтому любая новая копия руководств представляла собой коробку пустых папок и кучу поправок. Первой поправкой был список участников, а техническая причина поправки была описана как «чтобы все были довольны».
Модифицированные версии
[ редактировать ]Модифицированная версия George 3 была поставлена в Региональный компьютерный центр Манчестерского университета (UMRCC). Это связало Джорджа 3 с компьютером CDC Cyber , которому Джордж предоставил функции автономного ввода-вывода и организации очереди заданий. Онлайн-поддержка как аппаратного, так и программного обеспечения предоставлялась ICL и Cyber. Команда киберподдержки работала в офисе с надписью « Киберлюди » на двери. [ нужна ссылка ]
Конец жизни
[ редактировать ]Устаревание
[ редактировать ]С выпуском «новой линейки» ICL, серии 2900 с операционной системой VME , Джордж устарел. Однако из-за унаследованных инвестиций в программное обеспечение для Джорджа ICL выпустила варианты запуска программного обеспечения серии 1900, включая Джорджа, на машинах серии 2900, сначала в среде Direct Machine Environment (DME), затем в среде Concurrent Machine Environment (CME), которая позволяла одновременно запуск кода 1900 и 2900 в одной системе.
Для 2900 продолжали выпускаться новые версии George 3. Последней версией была 8.67, выпущенная в 1983 году.
По состоянию на 2005 год по крайней мере один сайт в России все еще работал под управлением George 3 под управлением DME. [9]
В ноябре 2014 года George 3 был запущен на отремонтированном ICL 2966 в Национальном музее вычислительной техники . [10]
Эмуляция
[ редактировать ]Дэвид Холдсворт и Делвин Холройд получили копии лент с выпусками Джорджа 3, когда последний действующий сайт в Великобритании , в British Steel Corporation , выводился из эксплуатации, и написали эмулятор для оборудования и исполнительной системы 1900 года, который позволяет запускать Джорджа на Microsoft Windows и Linux как часть проекта Общества охраны компьютеров . [11] [12]
Ссылки
[ редактировать ]- ^ В «Другой антологии ICL» Джордж Фелтон объясняет происхождение названия следующим образом:
«Примерно в январе 1965 года, когда я был за границей, в моем офисе состоялась встреча, на которой обсуждались различные способы распределения функций между предлагаемой операционной системой и исполнительной системой. Схема А обсуждалась и была отклонена. Схема Б то же самое. И схемы С, D, E и F также были быстро отброшены. Когда появилась Схема G, все были счастливы, и было решено принять ее. « » среда GE также была Анизационная быстро сформулирована как официальное расширение аббревиатуры. Но имя «ДЖОРДЖ» в любом случае было естественным выбором: в нем были отголоски авиационных автопилотов ; это было немного весело; и я, конечно, не собирался возражать». - ^ Гудман, HP (1 января 2004 г.). «3.4.2- Операционные системы Джорджа для компьютеров серии ICL 1900» . Архивировано из оригинала 28 июня 2011 г. Проверено 15 февраля 2011 г.
- ^ Кармайкл, Хэмиш (ноябрь 1998 г.). Еще одна антология ICL (PDF) . Лэйдлоу Хикс. ISBN 978-0-9527389-2-3 . Проверено 5 декабря 2013 г.
- ^ «Технические документы Multis в Интернете» . Проверено 15 февраля 2011 г.
- ^ Интернет-справочник ДЖОРДЖ 3
- ^ Острайхер, доктор медицинских наук (апрель – июнь 1971 г.). «Проект внутренней структуры операционной системы ICL George 3». Программное обеспечение: практика и опыт . 1 (2): 189–200. дои : 10.1002/спе.4380010209 . S2CID 43403696 .
- ^ Кэмбелл-Келли, Мартин (1989). ICL: История бизнеса и техники . Издательство Оксфордского университета. п. 239. ИСБН 0-19-853918-5 .
- ^ «Годовой отчет UEA CPC за 1975–76 годы» (PDF) . Проверено 6 мая 2014 г.
- ^ Холдсворт, Дэвид (осень 2005 г.). «Общественная деятельность» . ВОСКРЕСЕНИЕ Бюллетень Общества охраны компьютеров (36) . Проверено 14 апреля 2014 г.
Совершенно неожиданно я получил почтовое сообщение от россиянина, у которого все еще есть система George 3, работающая на DME.
- ^ Холройд, Делвин (зима 2014 г.). «Общественная деятельность» . ВОСКРЕСЕНИЕ Бюллетень Общества охраны компьютеров (68). ISSN 0958-7403 . Проверено 12 апреля 2015 г.
Я рад сообщить, что в этом месяце проект 2966 достиг важной вехи. 15 ноября мы впервые успешно загрузили George 3 под CME, и к концу дня терминал 7501 был доступен для посетителей, чтобы они могли сыграть в приключение Colossal Cave, которое обычно проводится на Raspberry Pi, на котором работает исполнительный эмулятор George 3.
- ^ Эмулятор GEORGE 3 из Университета Лидса.
- ^ George3 работает на Raspberry Pi
Дальнейшее чтение
[ редактировать ]- Острайхер, доктор медицины; Бейли, MJ; Штраус, Дж.И. (1 ноября 1967 г.). «ДЖОРДЖ 3 — операционная система общего назначения с разделением времени» . Коммуникации АКМ . 10 (11): 685–693. дои : 10.1145/363790.363806 . S2CID 18176176 .