GEORGE (операционная система)

редактировать

GEORGE
Разработчик Международные компьютеры и табуляторы
Написано на языке ассемблера
Рабочее состояниеИсторическое
Исходная модельИсходный код доступен лицензиатам.
Первоначальный выпуск1960-е годы
Последний выпуск 8,67 / 1985; 35 лет назад (1985)
Доступно на английском
ПлатформахICT 1900 series компьютеров
Kernel typeMonolithic
Default user интерфейс CLI (терминал телетайпа или блочного режима)
Лицензия Проприетарное коммерческое программное обеспечение

GEORGE - так называлась серия работающих системы, выпущенные компанией International Computers and Tabulators (ICT) в 1960-х годах для компьютеров серии ICT 1900. К ним относятся GEORGE 1, GEORGE 2, GEORGE 3 и GEORGE 4 .

Первоначально машины серии 1900, такие как Ferranti -Packard 6000, на котором они были основаны, запускал простую операционную систему, известную как исполнительная, которая позволяла системному оператору загружать и запускать программы с Teletype Model 33 на основе ASR системной консоли.

В декабре 1964 года компания ICT создала отделение операционных систем для разработки новой операционной системы для 1906/7. Первоначально в филиале работали люди, освобожденные к концу работы над операционной системой для Ferranti Orion. Первоначальный дизайн новой системы, названной Джорджем в честь Джорджа Э. Фелтона, руководителя отдела базового программирования, был основан на идеях Orion и спулинговой системе Атлас компьютер.

(Публично утверждалось, что Джордж представлял Общую организационную среду, но современные источники говорят, что это был бэкроним ).

. В июле 1965 года группа из ИКТ присутствовала на семинар в NPL, описывающий операционную систему CTSS, разработанную для MIT Project MAC. Они решили, что ICT должна предоставить средства множественного доступа, известные в ИКТ как MOP, «Множественная онлайн-обработка». В ноябре 1965 г. глава отделения операционных систем посетил Fall Joint Computer Conference в Лас-Вегасе, где планирует для Multics были первоначально описаны. Некоторые из обсуждаемых функций Multics повлияли на будущее развитие Джорджа, особенно древовидное хранилище файлов.

К концу 1965 г. я CT Marketing требовал, чтобы более простая операционная система была доступна быстро, особенно для небольших представителей этого диапазона. Было решено, что две меньшие системы, известные как George 1 и George 2, будут быстро выпущены, а большая операционная система была переименована в George 3.

Содержание
  • 1 GEORGE 1 2
    • 1.1 Пример пакетного задания George 2
  • 2 GEORGE 3 4
    • 2.1 Управление заданиями
    • 2.2 Хранилище файлов
    • 2.3 George 4
    • 2.4 Примеры
      • 2.4.1 Пример пакетного задания
      • 2.4.2 Пример сеанса MOP
    • 2.5 Исходный код
    • 2.6 Документация
    • 2.7 Модифицированные версии
    • 2.8 Окончание срока службы
      • 2.8.1 Устаревание
      • 2.8.2 Эмуляция
  • 3 Ссылки
  • 4 Дополнительная литература
GEORGE 1 2

George 1 был простой системой пакетной обработки. Должностные инструкции считывались с карточек или бумажной ленты, которые управляли загрузкой и запуском программ, загруженных с карточек или бумаги. лента или магнитная лента. язык управления заданиями позволял определять используемые периферийные устройства и файлы, а также обрабатывать исключительные ситуации. Описание задания будет проверяться на наличие ошибок перед запуском задания. Джордж использовал надежные программные средства, предоставленные руководителем, для запуска пользовательских программ.

Джордж 2 добавил концепцию автономной обработки периферийных устройств (буферизация ). Несколько различных модулей, работающих параллельно, позволяли перекрывать операции ввода, обработки и вывода:

  • Задания считывались с карт или бумажной ленты во временные файлы на магнитном диске или ленте модулем ввода.
  • Центральный модуль выполнял пользовательские программы, принимая ввод из временных файлов ввода и записывая вывод программы во временные файлы.
  • Модуль вывода записывал временные файлы вывода на физические принтеры и перфораторы.
  • Модуль был также доступен для ввода заданий с станций ввода удаленных заданий, вывод задания может быть распечатан на удаленном принтере.

Если установка была достаточно большой, можно было запустить несколько копий центрального модуля, что позволило несколько заданий для параллельной обработки.

Язык управления заданиями George 2 позволял использовать сохраненные макросы с условными функциями.

Георгий 2 не предоставлял файловой системы, система и пользовательские программы полагались на средства, предоставленные исполнительной властью. Доступ к файлам на диске осуществлялся по уникальным 12-символьным именам, и никакой защиты, кроме бита «не стирать», не было.

MINIMOP можно запускать одновременно с GEORGE 2 на той же машине, чтобы обеспечить возможность разделения времени в режиме онлайн.

Пример пакетного задания Джорджа 2

Вот несколько искусственный пример пакета для Джорджа 2:

Пакет начинается с описания должности, в котором указывается имя задания, используемый код учетной записи Джорджем для выставления счетов и имени пользователя:
JOB PLAN4JOB, 30174, BRIAN
Сначала задание загружает программу #XPLT из файла на диске с именем PROGRAM COMP (XPLT - это ассемблер ). Документ SOURCE используется в качестве входных данных для #XPLT на виртуальном кардридере CR0.
IN ED (PROGRAM COMP) LOAD #XPLT IN CR0 (SOURCE) ENTER 1
Если #XPLT заканчивается сообщением HALT OK, то задание продолжается с метки 1A, в противном случае задание отображает ОШИБКИ КОМПИЛЯЦИИ и переходит к 5END.
ПРИ ОШИБКЕ ОК, ПЕРЕЙДИТЕ К 1A ОТОБРАЖЕНИЕ ОШИБКИ КОМПИЛЯЦИИ ПЕРЕХОДИТЕ К 5END
На метке 1A программа #XPCK загружается и запускается с встроенный документ, доступный на его виртуальном кардридере. (XPCK - это компоновщик, или «консолидатор» в терминологии ICL). (Встроенный документ - это текст между строкой IN CR0 / JD и ограничителем ??? *).
1A IN ED (PROGRAM COMP) LOAD #XPCK IN CR0 / JD * IN ED (SEMICOMPILED) * OUT ED (ТЕСТ ПРОГРАММЫ) * СПИСОК ??? * ВВЕДИТЕ 1 НА УДАЛЕННОМ ЧЧ, ПЕРЕЙДИТЕ НА 2A ОТОБРАЖЕНИЕ «ОШИБКИ КОНСОЛИДАЦИИ» ПЕРЕЙДИТЕ К 5END
Если #XPCK завершится без ошибок, то будет запущена программа #HWLD.
2A IN ED (ТЕСТ ПРОГРАММЫ) LOAD #HWLD ENTER 0 5END END ****
После считывания исходного документа он будет использоваться в качестве входных данных для задания.
DOC SOURCE PROG (HWLD) STEER ( LIST, OBJECT) OUTE (SEMICOMPILED (0)) WSF (HWLD) PLAN (CR) #PRO HWLD40 / TEST #LOW MESS 12HELLO WORLD #PRO #ENT 0 DISTY '11 / MESS 'DEL 2HOK #END ENDPROG ****
Наконец сигнализируется об окончании партии. На этом этапе все задания в пакете будут выполняться по порядку.
Весь вывод из пакета будет распечатан на системном принтере.
КОНЕЦ ПАРТИИ

В реальном приложении задание, вероятно, будет использовать сохраненный макрос и будет намного проще, этот пример был написан от руки, чтобы показать некоторые особенности JCL.

GEORGE 3 4

GEORGE 3 был основной версией операционной системы серии для больших машин серии 1900. Изначально он был выпущен для 1906/7; со временем он стал доступен для моделей вплоть до 1902T. В отличие от George 1 и 2, которые выполнялись как программы пользовательского режима под управлением исполнительной системы, George 3 была полноценной операционной системой, оставляя только низкоуровневую периферию и обработку прерываний урезанной версии исполнительной системы.

Георг 3 был реализован как небольшая резидентная часть в памяти и набор глав (оверлеи ), которые загружались и удалялись из памяти по мере необходимости. Главы были строго независимы от местоположения, что позволяло наилучшим образом использовать память. Внутри Джордж использовал кооперативную многозадачность ; переключение контекста может происходить при любой смене главы (вызов из одной главы в другую) или в других указанных местах кода. Код уровня пользователя был запущен с использованием вытесняющей многозадачности ; переключение контекста было принудительным при операциях ввода-вывода или тактах часов.

Джордж был написан на специальном ассемблере GIN (George INput), который имел более богатые возможности условной компиляции и макросов, чем стандартный ассемблер PLAN. В коде активно использовались макросы, чтобы уменьшить усилия по программированию такой большой системы на языке ассемблера. В более поздних версиях функции макросов GIN использовались для добавления в код функций структурного программирования. Написание системы, по оценкам, заняло 75 лет программиста усилий.

Управление заданиями

George 3 была смешанной пакетной и онлайн-системой. Задания можно было запускать с карт или магнитных лент так же, как George 2, или интерактивно с терминалов MOP (множественная онлайн-обработка), либо простых терминалов Teletype Model 33 ASR или блочный режим Клеммы VDU.

язык управления заданиями был одинаковым на терминалах или в пакетных заданиях и включал условные операции и операции макроса. В отличие от систем Unix язык управления заданиями был частью операционной системы, а не процессом оболочки уровня пользователя.

У задания может быть только одна программа, загруженная в память за раз, но одно задание может запускать другие задания для одновременного выполнения, если это позволяют системные ресурсы и политика сайта. Система могла выгружать пользовательские программы из памяти, пока они ожидали ввода или вывода, если для выполнения других действий требуется память.

Хранилище файлов

Джордж 3 предоставил хранилище файлов с древовидной структурой, частично вдохновленное Multics.

. У каждого пользователя системы был домашний каталог с таким количеством подкаталогов, сколько необходимо под ним. К домашнему каталогу пользователей можно получить доступ напрямую, например, каталог для пользователя JOHN может называться: JOHN, или по полному пути, например, если JOHN работает в отделе информатики, его домашний каталог может быть: MANAGER.USERS. COMPSCI ДЖОН.

Списки контроля доступа использовались для обеспечения безопасности, пользователь мог разрешить или запретить любому пользователю или группе пользователей доступ к своим файлам или каталогам.

Хранилище файловых данных было двухуровневым: файлы могли либо находиться на диске в данный момент, либо, если в системе не хватало места на диске, они могли автоматически переноситься на магнитную ленту. Если была сделана попытка доступа к файлу, находящемуся в данный момент в автономном режиме, задание приостанавливалось, и операторы запрашивали загрузку соответствующей ленты. Когда лента становится доступной, файл возвращается на диск, и работа возобновляется.

George 4

Начиная с 1904A, модуль подкачки был доступен для более крупных процессоров 1900, и George 4 был написан, чтобы воспользоваться этим. George 4 оставался совместимым с George 3. Было обычным делом чередовать George 3 и 4 на одной машине и в файловом хранилище, выполняя George 3 днем ​​для небольших интерактивных рабочих нагрузок и George 4 ночью для больших, интенсивно использующих память, задач.

Георг 4 представил концепцию разреженной программы, программы, адресное пространство которой превышает размер выделенной памяти, а также данные (чистые) только для чтения и области кода. Для использования этих возможностей были предоставлены новые версии консолидатора (компоновщика) и компиляторов.

Исходный код Георгия 3 и 4 был одинаковым; условная компиляция средства ассемблера GIN использовались для выбора, какая версия системы компилируется.

Поскольку функция разбиения по страницам 1900 года не эмулировалась машинами серии 2900, используемыми в более поздних установках Джорджа, Джордж 4 вышел из употребления до Джорджа 3.

Примеры

Вот несколько простых примеров использования Джорджем

Пример пакетного задания

Задание смоделировано на вышеупомянутом задании Джорджа 2, и, как и эта работа, является несколько искусственной, поскольку при реальном использовании большая часть работы будет выполнена предварительно сохраненной макрос-командой.

Работа будет считана с устройства чтения карт или бумажной ленты. С небольшими изменениями (удаление первой команды «JB») его можно было сохранить в файл и запустить с интерактивного (MOP) терминала.

Как и в примере с Джорджем 2, задание начинается с команды JOB (все встроенные команды имеют длинную форму и двухбуквенное сокращение, здесь «JB» - это сокращение от «JOB»). Команда JOB дает имя задания, пользователя, которому выставляется счет за задание: BRIAN, и признак конца задания: «####».
JB PLAN4JOB,: BRIAN, T ####
КОГДА (МЫ) команда завершается с ошибкой, работа будет продолжена с меткой 5CE для восстановления после ошибки. MAXSIZE (MZ) памяти, используемой этим заданием, будет составлять 20K слов.
WE COMERR, GO 5CE MZ 20K
Команда CREATE (CE) используется для создания файла, в данном случае временного рабочего файла " ! ». Затем команда INPUT (IN) копирует весь текст до ограничителя «////» в рабочий файл.
CE! IN!, T //// PROG (HWLD) STEER (LIST, OBJECT) OUTE (SEMICOMPILED) WSF (HWLD) PLAN (CR) #PRO HWLD40 / TEST #LOW MESS 12HHELLO WORLD #PRO #ENT 0 DISTY '11 / MESS 'DEL 2HOK #END ENDPROG ////
Команда LOAD (LO) загружает ПРОГРАММУ XPLT (ассемблер) из каталога: LIB, затем она запускается командой RESUME (RM). Если выполнение не завершается с выходом LD, задание продолжается с меткой 1F для обработки ошибок.
LO: LIB.PROGRAM XPLT RM IF NOT HAL (LD), GO 1F
НАЗНАЧЕНИЕ (AS) используется для подключения виртуального устройства чтения карт 0 к рабочему файлу, созданному выше, который затем удаляется командой ERASE (ER). (Удаление будет отложено до закрытия файла.)
AS * CR0,! ER!
Создается новый рабочий файл и ему назначается виртуальный линейный принтер 0.
CE! AS * LP0,!
Когда PROGRAM XPLT запущена, она попытается открыть дисковый файл в директиве OUTE. Мы хотим, чтобы он использовал временный рабочий файл, поэтому мы просим Джорджа МОНИТОРИРОВАТЬ открытие, останавливая выполнение и позволяя нам предоставить рабочий файл:
MN ON, OPEN
Программа в памяти (PROGRAM XPLT) запускается в ячейке 21.
EN 1 IF NOT MONITOR (OPEN), GO 1F
Новый рабочий файл прямого доступа создается с 128 сегменты слов и начальный размер 40К слов. Ему назначен канал виртуального диска * DA2. Программа ВОЗОБНОВЛЕНА.
CE! (* DA, BUCK1, KWOR40) AS * DA2,! (WRITE) RM
Если он останавливается с выходом OK, работа продолжается с метки 1A, если нет сообщения об ошибке отображается, и задание завершается.
IF HAL (OK), GO 1A 1F DP 0, COMPILATION ERRORS GO 5EX
Команда DELETE (DL) удаляет ассемблер из памяти.
1A DL
Еще один создается рабочий файл, содержащий инструкции для компоновщика. Поскольку инструкции компоновщика должны заканчиваться строкой «****», по умолчанию для команды INPUT используется терминатор.
CE! В ! * IN ED (SEMICOMPILED) * OUT ED (PROGRAM TEST) * LIST ****
Компоновщик: LIB.PROGRAM XPCK загружен и инициализирован.
LO: LIB.PROGRAM XPCK RM IF NOT HAL (LD), GO 2F
Виртуальный кардридер прикреплен к рабочему файлу, содержащему инструкции компоновщика, которые затем стираются.
AS * CR0,! ER!
Затем виртуальный строчный принтер назначается в режиме добавления предпоследнему рабочему файлу, созданному и еще не удаленному (рабочие файлы хранятся в стеке, «!» - это верх стека, «! 1» - тот, который находится под ним, и скоро). Команда LISTFILE (LF) используется для печати файла на системном принтере (распечатка начнется после закрытия файла). Затем файл стирается (стирание будет отложено до завершения листинга). Канал виртуального диска * DA1 назначается верхнему рабочему файлу (содержащий вывод ассемблера), а для компоновщика создается еще один рабочий файл.
AS * LP0,! 1 (APPEND) LF! 1, * LP, PA ER! 1 AS * DA1,! ER! CE! (* DA, BUCK1, KWOR10) AS * DA13,! (WRITE) ER!
Создается файл для хранения выходных данных компоновщика и прикрепляется к каналу виртуального диска * DA14. Затем компоновщик запускается в местоположении 21, и если он завершает работу с сообщением HH, задание продолжается с метки 2A, в противном случае отображается сообщение об ошибке и задание завершается.
CE PROGRAM HWLD (* DA, BUCK1, KWOR5) AS * DA14, PROGRAM HWLD (WRITE) EN 1 IF DEL (HH), GO 2A 2F DP 0, CONSOLIDATION ERRORS GO 5EX
На метке 2A программа, написанная компоновщиком, загружается в память и запускается, начиная с ячейки 20, успешно отображается сообщение, и задание завершается.
2A LO PROGRAM HWLD EN 0 DP 0, JOB COMPLETED GO 5EX
Если какая-либо команда не удалась, команда WHENEVER, заданная в начале задания, вызовет переход к метке 5CE, которая отображается сообщение об ошибке и завершается.
5CE DP 0, ОШИБКА КОМАНДЫ В ЗАДАНИИ
Когда задание достигает метки 5EX, если оно имеет загруженную в данный момент программу, оно удаляется из памяти, и команда ENDJOB (EJ) завершает задание.
5EX IF COR, DL EJ ALL
Об окончании задания сигнализирует завершающая строка, определяемая командой JOB.
####

Пример сеанса MOP

А Все вводимые пользователем данные отображаются в нижнем регистре. Все выходные данные Джорджа в верхнем регистре.

Пользователь вводит control-A на свободном телетайпе, прикрепленном к Джорджу, Джордж отвечает своим идентификационным баннером и подсказкой (время, за которым следует приглашение ввести, обратная стрелка. Затем пользователь входит в систему с помощью команды LOGIN (LN). Ему предлагается ввести пароль, который будет отображаться, когда терминал подключен в полудуплексном режиме с помощью local echo. Затем запускается задание.
ЭТО GEORGE 3 MARK 8.67 21MAR11 21.21.23 ← ln: john, mopjob TYPE PASSWORD ← password STARTED: JOHN, MOPJOB, 21MAR11, 21.21.35 TYPE: MOP
Каталог создается с помощью MAKEDIR ( MK), а текущий каталог меняется на новый с помощью команды DIRECTORY (DY).
21.21.35 ← mk hellodir 21.28.10 ← dy hellodir
Системный макрос NEWCOPYIN используется для чтения с ленты серийный номер 123457. Когда макрос NEWCOPYIN загружает программу, сеанс полностью запускается (если система была сильно загружена, она может ждать на этом этапе).
21.28.16 ← newcopyin (123457) 21.28.3 2 ЗАДАНИЕ ПОЛНОСТЬЮ НАЧАЛОСЬ 21.28.32 0.03 CORE GIVEN 4736 ОЖИДАНИЕ MT 123457
Очевидно системный оператор не смог найти ленту и использовал команду CANTDO, чтобы отказаться от ее загрузки, NEWCOPYIN не работает.
ERROR IN ПАРАМЕТР 2 В OL В NEWCOPYIN: MT (123457) ПРАВИЛЬНО ИДЕНТИФИКАЦИЯ ED, НО НЕДОСТУПНО ДИСПЛЕЙ: ОШИБКА В NEWCOPYIN. МАКРОС ОТКЛОНЕН 21.28.58 БЕСПЛАТНО * CR0, 0 ПЕРЕДАЧИ 21.28.58 0.05 УДАЛЕН, СИНХРОНИЗАЦИЯ 0.00 0.05: УДАЛЕН КОНЕЦ МАКРОСА
На этот раз пользователь пытается снова с правильным серийным номером. Когда лента становится доступной, ему предлагается загрузить файл. Список файлов заканчивается знаком «****».
21.28.58 ← newcopyin (123456) 21.32.21 0.06 CORE GIVEN 4736 ОЖИДАНИЕ MT 123456 21.32.34 USED U31 AS * MT0, MT (123456, HELLOTAPE (0/0)) ← привет, привет (/ plan) ← **** 21.32.52 БЕСПЛАТНО * CR0, ОТОБРАЖЕНИЕ 2 ПЕРЕДАЧ: 1 ПАРАМЕТР ПРИНЯТО ДИСПЛЕЙ 0.08: МОНИТОР ДИСПЛЕЙ: ВВОДНАЯ ЛЕНТА * 123456. ДИСПЛЕЙ 0.08: МОНИТОР 21.32. 52 FREE * FH0, 1 ПЕРЕДАЧИ 21.32.52 FREE U31,8 ПЕРЕДАЧИ 0.10: УДАЛЕНА: OK 21.32.52 0.10 УДАЛЕНА, ЗАБЛОКИРОВАНО 0.00 КОНЕЦ МАКРОСА
Файл был загружен с ленты. Команда LISTFILE (LF) используется для проверки его содержимого
21.32.52 ← lf hello #PRO HWLD40 / TEST #LOW MESS 12HHELLO WRLD #PRO #ENT 0 DISTY '11 / MESS 'DEL 2HOK #END
Там кажется ошибкой, поэтому пользователь использует команду EDIT (ED), чтобы исправить ее. Подкоманда редактора TC используется для позиционирования в строке, содержащей "WRLD", команда R заменяет "WRLD" на "WORLD", затем команда E записывает файл.
21.33.01 ← ed hello
РЕДАКТОР ГОТОВ
0.0 ← tc / wrld / 2.0 ← r / wrld / world / 2.29 ← e
Системный макрос PLANCOMP используется для компиляции файла HELLO (/ PLAN) в ПРОГРАММУ HELO
21.43.46 ← plancomp * cr hello (/ plan), * idhelo ФАЙЛЫ УЖЕ В сети:: LIB.SUBGROUPS-RS (1 / V3): LIB.PROGRAM XPCK (1 / V12K): LIB.PROGRAM XPLT (1 / V8C) 21.43.58 0.58 CORE GIVEN 18944 0.58: HALTED: LD DISPLAY: START JOB HELO, OPEN * DA2 N CA 1641 M = # 00100 FN = SEMICOMPILED 1.00: MONITOR 21.43.58 FREE * CR0, 8 TRANSFERS DISPLAY: COMP OK 84 #HELO 21.43.58 БЕСПЛАТНО * DA2, 9 ПЕРЕВОДОВ 1.01: УДАЛЕНО: FI #XPCK 21.43.58 БЕСПЛАТНО * TR0, 7 ПЕРЕВОДОВ 21.43.58 БЕСПЛАТНО * LP0, 83 ПЕРЕДАЧИ 21.43.58 1.01 УДАЛЕНО, ЗАПРЕЩЕНО 0.00 21.43.59 1.07 ДАННОЕ ОСНОВАНИЕ 11392 21.43.59 БЕСПЛАТНО * CR0, 5 ПЕРЕВОДОВ 21.43.59 БЕСПЛАТНО * DA14,20 ПЕРЕВОДОВ 21.43.59 БЕСПЛАТНО * DA1, 9 ПЕРЕВОДОВ 21.43.59 БЕСПЛАТНО * DA2, 2 ПЕРЕВОДА 21. 43,59 БЕСПЛАТНО * ПЕРЕДАЧИ DA13,7 1.07: УДАЛЕНО: HH 21,43,59 БЕСПЛАТНО * LP0, 32 ПЕРЕДАЧИ 21,43,59 БЕСПЛАТНО * ПЕРЕДАЧИ DA15,0 21,43,59 1,07 УДАЛЕНА, СИНХРОНИЗАЦИЯ 0.00 ОТОБРАЖЕНИЕ: СОСТАВЛЕНИЕ ПЛАНА / КОНСОЛИДАЦИЯ ОКОНЧАНИЕ МАКРОСА
Вновь скомпилированный PROGRAM HELO загружается в память командой LOAD (LD), затем запускается командой ENTER (EN). Он отображает обычное сообщение, а затем удаляется из памяти.
21.43.59 ← lo program helo 21.44.06 ← en 21.44.07 1.09 CORE GIVEN 64 DISPLAY: HELLO WORLD 1.09: DELETED: OK 21.44.07 1.09 DELETED, CLOCKED 0.00
Сегодняшняя тяжелая работа завершена, пользователь выходит из системы с помощью команды LOGOUT (LT). Отображаются время наработки, а также использованные и оставшиеся деньги.
21.44.07 ← lt МАКСИМАЛЬНЫЙ ОНЛАЙН BS ИСПОЛЬЗУЕТСЯ 252 KWORDS 21.44.12 1.09 ЗАВЕРШЕНО: 0 СПИСОК ФАЙЛОВ БЮДЖЕТ ИСПОЛЬЗУЕТСЯ ОСТАЛОСЬ ( M) 70 -97797 ДЕНЬГИ 35 80327 21.44.12 ←

Исходный код

Джордж был распространен в форме, которая позволяла сайту изменять большие части системы. Компиляция системы была начата, затем прервана перед самым концом и записана на магнитную ленту. Компилятор GIN позволил продолжить компиляцию с этого момента на сайте пользователя, возможно, изменив уже скомпилированный код.

Версии George 3 до выпуска 8 предоставлялись в двоичной форме. Любые модификации, необходимые в системе, вносились в виде двоичных исправлений. Чтобы упростить процесс, в большинстве глав Джорджа в конце была пустая область MEND.

Начиная с версии 8, исходники Джорджа распространялись вместе с двоичным файлом, как на магнитной ленте, так и на микрофишах. Система исправлений исходного уровня, известная как MENDITS, использовалась для модификации системы, и существующая глава могла быть полностью заменена новой измененной главой.

Группа пользователей Джорджа установила "схему обмена MEND", чтобы поделиться с Джорджем интересными модификациями. Некоторые модификации распространялись бесплатно, другие - за плату. Когда ICL выпускала новую версию Джорджа, они иногда включали модификации, сделанные пользователями.

Для последней выпущенной версии, 8.67, большинство патчей из схемы обмена MEND были включены в стандартный исходный код Джорджа, отключенного условной компиляцией. Их можно включить как часть стандартного процесса адаптации Джорджа к сайту.

Документация

GEOrge была хорошо документирована внутри в серии отдельных папок, распространяемых как первоначальная версия с поправками. В конце концов все исходные страницы были заменены, так что любая новая копия руководств состояла из коробки с пустыми папками с отрывными листами и стопки поправок. Первой поправкой был список участников, и техническая причина поправки была описана как «сделать всех счастливыми».

Модифицированные версии

Модифицированная версия George 3 была поставлена ​​в Региональный компьютерный центр Манчестерского университета (UMRCC). Это связывало Джорджа 3 с машиной CDC Cyber ​​, на которую Джордж предоставлял функции автономного ввода-вывода и очереди заданий. И ICL, и Cyber ​​обеспечивали онлайн-поддержку как для оборудования, так и для программного обеспечения. Группа поддержки Cyber ​​работала в офисе с названием «Cybermen » на двери.

Конец жизни

Устаревание

С выпуском «Новый диапазон» ICL, серия 2900 с его операционной системой VME, Джордж, стал устаревшим. Однако из-за унаследованных инвестиций в программное обеспечение для Джорджа, ICL выпустила варианты для запуска программного обеспечения серии 1900, включая Джорджа, на машинах серии 2900, сначала Direct Machine Environment (DME), позже Concurrent Machine Environment. (CME), что позволяло одновременно запускать коды 1900 и 2900 в одной системе.

Новые версии George 3 продолжали выпускаться для 2900. Последней версией была 8.67, выпущенная в 1983 году.

По состоянию на 2005 год по крайней мере один сайт в России Джордж 3 по-прежнему работал под управлением DME.

В ноябре 2014 года Джордж 3 запускался на восстановленном ICL 2966 в Национальном музее вычислительной техники.

Эмуляция

и получил копии кассет с выпуском Джорджа 3, когда последний действующий объект в Великобритании, в British Steel Corporation, выводился из эксплуатации и написал эмулятор для 1900, что позволяет запускать Джорджа в Microsoft Windows и Linux в рамках проекта Computer Conservation Society. Эмулятор включает в себя эмуляцию Executive и Java-эмуляцию коммуникационного процессора ICL7903, что позволяет запускать сеансы MOP с помощью telnetting на (в данном случае) порт 2023.

Эмулятор George 3 Executive от Дэвида Холдсворта и Делвина Холройда Сборка: 15 мая 2014 г. Размер памяти: 256 КБ Команда Exec: DA GEORGE3A Ожидание соединения telnet консоли на порту 1900
Эмулятор контроллера связи ICL 7903, созданный Дэвидом Холдсвортом и Делвином Холройдом Сборка: 23 февраля 2014 г. -? для получения информации об использовании Прослушивание соединений TTY на порте 2023 - доступно 4 Прослушивание соединений VDU на порте 7181 - доступно 4 Прослушивание соединения с хостом через порт 7903

Тесты с эмулятором показывают, что Джордж 3 2000 год соответствует.

Ссылки
Дополнительная литература
  • Oestreicher, M.D.; Бейли, М. Дж.; Штраус, Дж. И. (1967-11-01). «GEORGE 3 --- Операционная система общего назначения с разделением времени». Коммуникации ACM. 10 (11): 685–693. doi :10.1145/363790.363806.
Последняя правка сделана 2021-05-21 08:49:23
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте