Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

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

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

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

ГЕОРГИЙ 1 и 2 [ править ]

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

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

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

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

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

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

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

Пример пакетного задания George 2 [ править ]

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

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

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

ГЕОРГИЙ 3 и 4 [ править ]

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

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

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

Управление заданиями [ править ]

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

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

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

Хранилище файлов [ править ]

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

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

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

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

Базовый механизм дискового хранения George 3 в 1968 году, вероятно, был самой ранней коммерческой версией файловой системы Copy-On-Write . Это работало так, что все измененные блоки записывались в блоки в «свободном» списке. Блоки, содержащие метаданные, также обрабатывались таким же образом, но вместе с блоками данных были физически записаны в таком порядке, что, когда был записан последний «главный» блок, файл фиксировался. Если в какой-либо момент машина выйдет из строя, аппаратное обеспечение гарантировало, что файл будет в исходной, неизмененной форме или полностью обновлен.

Еще одна полезная функция заключалась в том, что Filestore мог имитировать все стандартные периферийные устройства, такие как устройства чтения и перфорации карт, магнитные ленты и диски. Это позволяло старым программам George 1 и 2, которым требовались эти физические устройства, работать под управлением George 3 без изменений. Это могло бы ускорить выполнение работ, которые требовали до некоторой степени автоматизации смены ленты или диска на Джорджах 1 и 2, а для этого требовалось два оператора; несколько десятков смен лент и пять часов - теперь не требовалось никаких операторов, кроме установки двух рабочих лент для результатов, и закончилось за 45 минут.

Георгий 4 [ править ]

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

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

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

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

Примеры [ править ]

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

Пример пакетного задания [ править ]

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

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

Как и в примере с Джорджем 2, задание начинается с команды JOB (все встроенные команды имеют длинную форму и двухбуквенное сокращение, здесь «JB» - это сокращение от «JOB»). Команда JOB дает имя задания , пользователя, который должен выставить счет за задание : BRIAN , и признак конца задания "####".
JB PLAN4JOB,: BRIAN, T ####
КОГДА (МЫ) команда завершается с ошибкой, работа будет продолжена с меткой 5CE для восстановления после ошибки. MAXSIZE (MZ) памяти , используемой этим заданием будет 20К слов.
МЫ COMERR, GO 5CEМЗ 20К
Команда CREATE (CE) используется для создания файла, в данном случае временного рабочего файла, «!». Затем команда INPUT (IN) копирует весь текст до терминатора «////» в рабочий файл.
CE!В!, Т ////ПРОГ (HWLD)УПРАВЛЕНИЕ (СПИСОК, ОБЪЕКТ)АННОТАЦИЯ (ПОЛУКОМПЛЕКТАЦИЯ)WSF (HWLD)ПЛАН (CR)#PRO HWLD40 / TEST#НИЗКИЙMESS 12HELLO МИР# ПРО#ENT 0 DISTY '11 / MESS ' DEL 2HOK#КОНЕЦENDPROG////
Команда ЗАГРУЗИТЬ (LO) загружает ПРОГРАММУ XPLT (ассемблер) из каталога : LIB , затем он запускается командой RESUME (RM). Если выполнение не прерывается с выходным LD, задание продолжается с меткой 1F для обработки ошибок.
LO: LIB.PROGRAM XPLTRMЕСЛИ НЕ HAL (LD), GO 1F
Команда ASSIGN (AS) используется для подключения виртуального устройства чтения карт 0 к рабочему файлу, созданному выше, который затем удаляется командой ERASE (ER). (Стирание будет отложено до закрытия файла).
AS * CR0 ,!ER!
Создается новый рабочий файл и ему назначается виртуальный построчный принтер 0.
CE!AS * LP0 ,!
Когда PROGRAM XPLT запущен, он попытается открыть дисковый файл в директиве OUTE. Мы хотим, чтобы он использовал временный рабочий файл, поэтому мы просим Джорджа МОНИТОРИРОВАТЬ открытие, останавливая выполнение и позволяя нам предоставить рабочий файл:
MN ON, ОТКРЫТО
Программа в памяти (PROGRAM XPLT) запускается в ячейке 21.
EN 1ЕСЛИ НЕ МОНИТОР (ОТКРЫТ), ПЕРЕЙДИТЕ на 1 этаж
Создается новый рабочий файл с прямым доступом со 128 блоками слов и начальным размером 40 КБ слов. Ему назначен канал виртуального диска * DA2. Программа возобновлена.
CE! (* DA, BUCK1, KWOR40)КАК * DA2,! (ЗАПИСАТЬ)RM
Если он останавливается с выходом OK, задание продолжается с меткой 1A, в противном случае отображается сообщение об ошибке и задание завершается.
ЕСЛИ HAL (OK), GO 1A1F DP 0, ОШИБКИ КОМПИЛЯЦИИGO 5EX
Команда DELETE (DL) удаляет ассемблер из памяти.
1A DL
Еще один рабочий файл создается для хранения инструкций для компоновщика. Поскольку инструкции компоновщика должны заканчиваться строкой «****», терминатор по умолчанию используется для команды INPUT.
CE!В !* В ED (ПОЛУКОМПЛЕКТАЦИЯ)* OUT ED (ТЕСТ ПРОГРАММЫ)*СПИСОК****
Компоновщик : LIB.PROGRAM XPCK загружается и инициализируется.
LO: LIB.PROGRAM XPCKRMЕСЛИ НЕ HAL (LD), GO 2F
Виртуальный кардридер прикрепляется к рабочему файлу, содержащему инструкции компоновщика, который затем стирается.
AS * CR0 ,!ER!
Затем виртуальный строчный принтер назначается в режиме добавления предпоследнему рабочему файлу, созданному и еще не удаленному (рабочие файлы хранятся в стеке, «!» - это верх стека, «! 1» - тот, который находится под ним, и т. Д.) . Команда LISTFILE (LF) используется для печати файла на системном принтере (распечатка начнется после закрытия файла). Затем файл стирается (стирание будет отложено до завершения листинга). Канал виртуального диска * DA1 назначается верхнему рабочему файлу (содержащему выходные данные ассемблера), а для компоновщика создается еще один рабочий файл.
AS * LP0,! 1 (ПРИЛОЖЕНИЕ)LF! 1, * LP, PAER! 1КАК * DA1 ,!ER!CE! (* DA, BUCK1, KWOR10)КАК * DA13,! (ЗАПИСАТЬ)ER!
Файл создается для хранения вывода компоновщика и прикрепляется к каналу виртуального диска * DA14. Затем компоновщик запускается в местоположении 21, и если он завершается с сообщением HH, задание продолжается с метки 2A, в противном случае отображается сообщение об ошибке и задание завершается.
ПРОГРАММА CE HWLD (* DA, BUCK1, KWOR5)AS * DA14, ПРОГРАММА HWLD (ЗАПИСЬ)EN 1ЕСЛИ DEL (HH), GO 2A2F DP 0, ОШИБКИ КОНСОЛИДАЦИИ GO 5EX
На метке 2A программа, написанная компоновщиком, загружается в память и запускается, начиная с ячейки 20, отображается сообщение об успешном завершении и задание завершается.
2A LO ПРОГРАММА HWLDEN 0DP 0, РАБОТА ВЫПОЛНЕНАGO 5EX
Если какая-либо команда не удалась, команда WHENEVER, заданная в начале задания, вызовет переход к метке 5CE, которая отобразит сообщение об ошибке и завершит работу .
5CE DP 0, ОШИБКА КОМАНДЫ В ЗАДАНИИ
Когда задание получает метку 5EX, если в нем есть загруженная в данный момент программа, оно удаляется из памяти, и команда ENDJOB (EJ) завершает задание.
5EX IF COR, DLEJ ALL
Об окончании задания сигнализирует строка-ограничитель, определяемая командой JOB .
####

Пример сеанса СС [ править ]

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

Пользователь вводит control-A на свободном телетайпе, прикрепленном к Джорджу, Джордж отвечает своим идентификационным баннером и приглашением (время, за которым следует приглашение ввести , стрелка назад. Затем пользователь входит в систему с помощью команды LOGIN (LN) У него запрашивают пароль, который будет отображаться эхом, когда терминал подключен в полудуплексном режиме с локальным эхом . Затем задание запускается.
ЭТО GEORGE 3 MARK 8.67 НА 21МАР1121.21.23 ← ln: john, mopjob
ТИП ПАРОЛЬ ← парольНАЧАЛО: ДЖОН, MOPJOB, 21MAR11, 21.21.35 ТИП: MOP
Каталог создается с помощью команды MAKEDIR (MK), а текущий каталог изменяется на новый с помощью команды DIRECTORY (DY).
21.21.35 ← мк хеллодир
21.28.10 ← ди хеллодир
Системный макрос NEWCOPYIN используется для чтения с ленты серийного номера 123457. Когда макрос NEWCOPYIN загружает программу, сеанс полностью запускается (если система была сильно загружена, на этом этапе он может ждать).
21.28.16 ← новая копия в (123457)21.28.32 РАБОТА НАЧАЛАСЬ ПОЛНОСТЬЮ21,28,32 0,03 ДАННОЕ ЯДРО 4736ОЖИДАНИЕ MT 123457
Очевидно, системный оператор не смог найти ленту и использовал команду CANTDO, чтобы отказаться от загрузки, NEWCOPYIN не работает.
ОШИБКА В ПАРАМЕТРЕ 2 В OL В NEWCOPYIN: MT (123457) ИДЕНТИФИКАЦИЯ ПРАВИЛЬНОЭД НО НЕТ ДОСТУПНОДИСПЛЕЙ: ОШИБКА В NEWCOPYIN. ЗАБРОШЕННЫЙ МАКРОС21.28.58 БЕСПЛАТНО * CR0, 0 ПЕРЕВОДОВ21,28,58 0,05 УДАЛЕНО, ЗАПРЕЩЕНО 0,000,05: УДАЛЕНОКОНЕЦ МАКРОСА
На этот раз пользователь пытается снова ввести правильный серийный номер. Когда лента становится доступной, ему предлагается загрузить файл. Список файлов заканчивается знаком «****».
21.28.58 ← новая копия в (123456)21.32.21 0.06 ДАННОЕ ЯДРО 4736ОЖИДАНИЕ MT 12345621.32.34 ИСПОЛЬЗУЕМЫЙ U31 AS * MT0, MT (123456, HELLOTAPE (0/0))привет, привет (/ plan)****21.32.52 БЕСПЛАТНО * CR0, 2 ПЕРЕВОДАДИСПЛЕЙ: ПРИНЯТ 1 ПАРАМЕТРОТОБРАЖАТЬ0,08: МОНИТОРДИСПЛЕЙ: ВХОДНАЯ ЛЕНТА * 123456.ОТОБРАЖАТЬ0,08: МОНИТОР21.32.52 БЕСПЛАТНО * FH0, 1 ПЕРЕВОД21.32.52 БЕСПЛАТНЫЕ ПЕРЕВОДЫ U31,80.10: УДАЛЕНО: ОК21.32.52 0.10 УДАЛЕНО, ЗАБЛОКИРОВАНО 0.00КОНЕЦ МАКРОСА
Файл загружен с ленты. Команда LISTFILE (LF) используется для проверки его содержимого.
21.32.52 ← lf привет#PRO HWLD40 / TEST#НИЗКИЙMESS 12HHELLO WRLD# ПРО#ENT 0 DISTY '11 / MESS ' DEL 2HOK#КОНЕЦ
Кажется, произошла ошибка, поэтому пользователь использует команду EDIT (ED), чтобы исправить ее. Подкоманда редактора TC используется для позиционирования в строке, содержащей «WRLD», команда R заменяет «WRLD» на «WORLD», затем команда E записывает файл.
21.33.01 ← эд привет
РЕДАКТОР ГОТОВ
0.0 ← tc / wrld /
2.0 ← r / wrld / world /
2.29 ← e
Системный макрос PLANCOMP используется для компиляции файла HELLO (/ PLAN) в PROGRAM HELO
21.43.46 ← plancomp * cr привет (/ plan), * idheloФАЙЛЫ УЖЕ ОНЛАЙН:: LIB.SUBGROUPS-RS (1 / V3): LIB.PROGRAM XPCK (1 / V12K): LIB.PROGRAM XPLT (1 / V8C)21,43,58 0,58 ОСНОВНОЕ ДАННОЕ 189440,58: ОСТАНОВЛЕННЫЙ: LDДИСПЛЕЙ: НАЧАТЬ РАБОТУ HELO,ОТКРЫТЫЙ * DA2 N CA 1641 M = # 00100 FN = ПОЛУКОМПЛЕКТОВАННЫЙ1.00: МОНИТОР21.43.58 БЕСПЛАТНО * CR0, 8 ПЕРЕВОДОВДИСПЛЕЙ: COMP OK 84 #HELO21.43.58 БЕСПЛАТНО * DA2, 9 ПЕРЕВОДОВ1.01: УДАЛЕНО: FI #XPCK21.43.58 БЕСПЛАТНО * TR0, 7 ПЕРЕВОДОВ21.43.58 БЕСПЛАТНО * LP0, 83 ПЕРЕВОДА21.43.58 1.01 УДАЛЕНО, ЗАБЛОКИРОВАНО 0.0021.43.59 1.07 CORE GIVEN 1139221.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: УДАЛЕНО: HH21.43.59 БЕСПЛАТНО * LP0, 32 ПЕРЕВОДА21.43.59 БЕСПЛАТНО * ПЕРЕВОД DA15,021,43,59 1,07 УДАЛЕНО, ЗАПРЕЩЕНО 0,00ДИСПЛЕЙ: СОСТАВЛЕНИЕ / КОНСОЛИДАЦИЯ ПЛАНА ОККОНЕЦ МАКРОСА
Недавно скомпилированный PROGRAM HELO загружается в память командой LOAD (LD), затем запускается командой ENTER (EN). Он отображает традиционное сообщение, а затем удаляет себя из памяти.
21.43.59 ← программа lo
helo 21.44.06 ← ru21.44.07 1.09 CORE GIVEN 64ДИСПЛЕЙ: ПРИВЕТ, МИР1.09: УДАЛЕНО: ОК21.44.07 1.09 УДАЛЕНО, ЗАБЛОКИРОВАНО 0.00
Завершается сегодняшняя тяжелая работа, пользователь выходит из системы с помощью команды LOGOUT (LT). Время мельницы и деньги используются и остальные отображаются.
21.44.07 ← lt
МАКСИМАЛЬНОЕ ИСПОЛЬЗОВАНИЕ ОНЛАЙН BS 252 KWORDS21.44.12 1.09 ЗАВЕРШЕНО: 0 СПИСОК ФАЙЛОВИСПОЛЬЗОВАННЫЙ БЮДЖЕТ СЛЕВАВРЕМЯ (М) 70 -97797ДЕНЬГИ 35 8032721.44.12 ←

Исходный код [ править ]

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

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

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

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

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

Документация [ править ]

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

Измененные версии [ править ]

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

Конец жизни [ править ]

Устаревание [ править ]

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

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

По состоянию на 2005 год, по крайней мере, на одном сайте в России Джордж 3 все еще работал под DME. [9]

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

Эмуляция [ править ]

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

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

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

Ссылки [ править ]

  1. ^ В «Другой антологии ICL» Джордж Фелтон объясняет происхождение названия следующим образом:
    «Примерно в январе 1965 года в моем офисе, когда я был за границей, была встреча, на которой обсуждались различные способы распределения функций между предлагаемой операционной системой и исполнительной . Схема а был обсужден и отклонен. Схема в то же самое. и схемы C, D, E и F были отброшены в быстрой последовательности. Когда схема G подошел, все были счастливы, и было принято решение принять его. в " GE нераля ORG anisational E nvironment »также быстро было сформулировано как официальное расширение аббревиатуры. Но имя «ДЖОРДЖ» в любом случае было естественным выбором: в нем звучали отголоски автопилотов самолетов.; это было немного весело; и я, конечно, не собирался возражать ".
  2. ^ Гудман, HP (2004-01-01). «3.4.2- Операционные системы Джорджа для компьютеров серии ICL 1900» . Архивировано из оригинала на 2011-06-28 . Проверено 15 февраля 2011 .
  3. ^ Кармайкл, Хэмиш (ноябрь 1998 г.). Еще одна антология ICL (PDF) . Лэйдлоу Хикс. ISBN  978-0-9527389-2-3. Проверено 5 декабря 2013 .
  4. ^ «Технические документы Multics в Интернете» . Проверено 15 февраля 2011 .
  5. ^ GEORGE 3 Онлайн-справочник
  6. ^ Oestreicher, MD (апрель-июнь 1971). «Дизайн внутренней структуры операционной системы ICL George 3». Программное обеспечение, практика и опыт . 1 (2): 189–200. DOI : 10.1002 / spe.4380010209 .
  7. ^ Кэмбелл-Келли, Мартин (1989). ICL: история бизнеса и техники . Издательство Оксфордского университета. п. 239. ISBN 0-19-853918-5.
  8. ^ "Годовой отчет UEA CPC 1975-76" (PDF) . Проверено 6 мая 2014 .
  9. ^ Холдсворт, Дэвид (осень 2005 г.). «Деятельность общества» . ВОСКРЕСЕНИЕ Бюллетень Общества сохранения компьютеров (36) . Проверено 14 апреля 2014 . Совершенно неожиданно я получил почтовое сообщение от русского, у которого все еще есть система George 3, работающая на DME.
  10. ^ Holroyd, Delwyn (Winter 2014). «Деятельность общества» . ВОСКРЕСЕНИЕ Бюллетень Общества сохранения компьютеров (68). ISSN 0958-7403 . Проверено 12 апреля 2015 . Я рад сообщить, что в этом месяце проект 2966 достиг важной вехи. 15 ноября мы впервые успешно загрузили George 3 под CME, и к концу дня терминал 7501 был доступен для посетителей, чтобы они могли сыграть в приключение Colossal Cave, которое обычно проводится на Raspberry Pi с запущенным эмулятором George 3 Executive Emulator. 
  11. ^ Эмулятор GEORGE 3 от Университета Лидса
  12. ^ George3 работает на Raspberry Pi

Дальнейшее чтение [ править ]

  • Oestreicher, MD; Бейли, MJ; Штраус, JI (1967-11-01). «GEORGE 3 --- Операционная система общего назначения с разделением времени». Коммуникации ACM . 10 (11): 685–693. DOI : 10.1145 / 363790.363806 .