Разработчик | Международные компьютеры и табуляторы |
---|---|
Написано на | языке ассемблера |
Рабочее состояние | Историческое |
Исходная модель | Исходный код доступен лицензиатам. |
Первоначальный выпуск | 1960-е годы |
Последний выпуск | 8,67 / 1985; 35 лет назад (1985) |
Доступно на | английском |
Платформах | ICT 1900 series компьютеров |
Kernel type | Monolithic |
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.
George 1 был простой системой пакетной обработки. Должностные инструкции считывались с карточек или бумажной ленты, которые управляли загрузкой и запуском программ, загруженных с карточек или бумаги. лента или магнитная лента. язык управления заданиями позволял определять используемые периферийные устройства и файлы, а также обрабатывать исключительные ситуации. Описание задания будет проверяться на наличие ошибок перед запуском задания. Джордж использовал надежные программные средства, предоставленные руководителем, для запуска пользовательских программ.
Джордж 2 добавил концепцию автономной обработки периферийных устройств (буферизация ). Несколько различных модулей, работающих параллельно, позволяли перекрывать операции ввода, обработки и вывода:
Если установка была достаточно большой, можно было запустить несколько копий центрального модуля, что позволило несколько заданий для параллельной обработки.
Язык управления заданиями George 2 позволял использовать сохраненные макросы с условными функциями.
Георгий 2 не предоставлял файловой системы, система и пользовательские программы полагались на средства, предоставленные исполнительной властью. Доступ к файлам на диске осуществлялся по уникальным 12-символьным именам, и никакой защиты, кроме бита «не стирать», не было.
MINIMOP можно запускать одновременно с GEORGE 2 на той же машине, чтобы обеспечить возможность разделения времени в режиме онлайн.
Вот несколько искусственный пример пакета для Джорджа 2:
JOB PLAN4JOB, 30174, BRIAN
IN ED (PROGRAM COMP) LOAD #XPLT IN CR0 (SOURCE) ENTER 1
ПРИ ОШИБКЕ ОК, ПЕРЕЙДИТЕ К 1A ОТОБРАЖЕНИЕ ОШИБКИ КОМПИЛЯЦИИ ПЕРЕХОДИТЕ К 5END
1A IN ED (PROGRAM COMP) LOAD #XPCK IN CR0 / JD * IN ED (SEMICOMPILED) * OUT ED (ТЕСТ ПРОГРАММЫ) * СПИСОК ??? * ВВЕДИТЕ 1 НА УДАЛЕННОМ ЧЧ, ПЕРЕЙДИТЕ НА 2A ОТОБРАЖЕНИЕ «ОШИБКИ КОНСОЛИДАЦИИ» ПЕРЕЙДИТЕ К 5END
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 был основной версией операционной системы серии для больших машин серии 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 ДЖОН.
Списки контроля доступа использовались для обеспечения безопасности, пользователь мог разрешить или запретить любому пользователю или группе пользователей доступ к своим файлам или каталогам.
Хранилище файловых данных было двухуровневым: файлы могли либо находиться на диске в данный момент, либо, если в системе не хватало места на диске, они могли автоматически переноситься на магнитную ленту. Если была сделана попытка доступа к файлу, находящемуся в данный момент в автономном режиме, задание приостанавливалось, и операторы запрашивали загрузку соответствующей ленты. Когда лента становится доступной, файл возвращается на диск, и работа возобновляется.
Начиная с 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) терминала.
JB PLAN4JOB,: BRIAN, T ####
WE COMERR, GO 5CE MZ 20K
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 ////
LO: LIB.PROGRAM XPLT RM IF NOT HAL (LD), GO 1F
AS * CR0,! ER!
CE! AS * LP0,!
MN ON, OPEN
EN 1 IF NOT MONITOR (OPEN), GO 1F
CE! (* DA, BUCK1, KWOR40) AS * DA2,! (WRITE) RM
IF HAL (OK), GO 1A 1F DP 0, COMPILATION ERRORS GO 5EX
1A DL
CE! В ! * IN ED (SEMICOMPILED) * OUT ED (PROGRAM TEST) * LIST ****
LO: LIB.PROGRAM XPCK RM IF NOT HAL (LD), GO 2F
AS * CR0,! ER!
AS * LP0,! 1 (APPEND) LF! 1, * LP, PA ER! 1 AS * DA1,! ER! CE! (* DA, BUCK1, KWOR10) AS * DA13,! (WRITE) ER!
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 LO PROGRAM HWLD EN 0 DP 0, JOB COMPLETED GO 5EX
5CE DP 0, ОШИБКА КОМАНДЫ В ЗАДАНИИ
5EX IF COR, DL EJ ALL
####
А Все вводимые пользователем данные отображаются в нижнем регистре. Все выходные данные Джорджа в верхнем регистре.
ЭТО GEORGE 3 MARK 8.67 21MAR11 21.21.23 ← ln: john, mopjob TYPE PASSWORD ← password STARTED: JOHN, MOPJOB, 21MAR11, 21.21.35 TYPE: MOP
21.21.35 ← mk hellodir 21.28.10 ← dy hellodir
21.28.16 ← newcopyin (123457) 21.28.3 2 ЗАДАНИЕ ПОЛНОСТЬЮ НАЧАЛОСЬ 21.28.32 0.03 CORE GIVEN 4736 ОЖИДАНИЕ MT 123457
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 КОНЕЦ МАКРОСА
21.32.52 ← lf hello #PRO HWLD40 / TEST #LOW MESS 12HHELLO WRLD #PRO #ENT 0 DISTY '11 / MESS 'DEL 2HOK #END
21.33.01 ← ed hello
РЕДАКТОР ГОТОВ
0.0 ← tc / wrld / 2.0 ← r / wrld / world / 2.29 ← e
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 ОТОБРАЖЕНИЕ: СОСТАВЛЕНИЕ ПЛАНА / КОНСОЛИДАЦИЯ ОКОНЧАНИЕ МАКРОСА
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
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 год соответствует.