Введение
Операционная система для мейнфреймов
Michigan Terminal System (MTS) — одна из первых операционных систем с разделением времени. Созданная в 1967 году в Мичиганском университете для использования на ЭВМ IBM S/360 67, S/370 и совместимых мейнфреймах, она разрабатывалась и использовалась консорциумом из восьми университетов в США, Канаде и Великобритании на протяжении 33 лет (1967–1999).
Обзор
Университетский многопрограммный супервизор Мичигана (UMMPS) был первоначально разработан сотрудниками академического вычислительного центра Университета Мичигана для работы на ЭВМ IBM S/360 67, S/370 и совместимых с ними. Это программное обеспечение можно описать как многопрограммный, многопроцессорный супервизор с виртуальной памятью и разделением времени, запускающий несколько резидентных, повторно входящих программ. Среди этих программ – Мичиганская терминальная система (MTS), предназначенная для интерпретации команд, управления выполнением, управления файлами и ведения учёта. Конечные пользователи взаимодействовали с вычислительными ресурсами через MTS, используя терминальные, пакетные и серверные возможности. Поддержка MTS для конечных пользователей была прекращена 30 июня 1996 года. К этому времени большинство сервисов перешли на клиент-серверные вычислительные системы, обычно Unix для серверов и различные версии Mac, PC и Unix для клиентов. Университет Мичигана окончательно вывел из эксплуатации свою систему MTS 30 мая 1997 года. Считается, что Rensselaer Polytechnic Institute (RPI) был последним учреждением, использовавшим MTS в производственной среде. RPI прекратил использование MTS в июне 1999 года. Сегодня MTS продолжает работать с использованием эмуляторов IBM S/370, таких как Hercules, Sim390 и FLEX ES.
Происхождение
В середине 1960-х годов Мичиганский университет предоставлял услуги пакетной обработки на оборудовании IBM 7090 под управлением Университетской исполнительной системы Мичигана (UMES), но проявлял интерес к предоставлению интерактивных услуг с использованием разделения времени. В то время возможности компьютеров были ограничены их небольшим объемом оперативной памяти. Когда IBM представила семейство компьютеров System/360 в середине 1960-х годов, оно не предложило решения этой проблемы, и внутри IBM существовали разногласия относительно важности и необходимости поддержки разделения времени. В январе 1966 года была опубликована статья под названием «Программная и адресная структура в среде разделения времени» Брюса Ардена, Бернарда Галлера, Фрэнка Вестервельта (все – заместители директора Вычислительного центра UM) и Тома О’Брайана, основанная на некоторых базовых идеях, разработанных в Массачусетском технологическом институте (MIT). В статье была описана архитектура виртуальной памяти с использованием динамического преобразования адресов (DAT), которая могла быть использована для реализации разделения времени. После года переговоров и проектных исследований IBM согласилась изготовить уникальную версию мэйнфрейма S/360 65 с функциями динамического преобразования адресов (DAT), поддерживающими виртуальную память и отвечающими стремлению UM поддерживать разделение времени. Компьютер получил название Model S/360 65M. Эксперимент по разделению времени начался как «половина страницы кода, написанная на кухонном столе» в сочетании с небольшой многопрограммной системой LLMPS из Лаборатории Линкольна MIT. В этот момент UM предстояло решить, вернуть ли Model 67 и выбрать другой мэйнфрейм, или разработать MTS в качестве промежуточной системы для использования до готовности TSS. Было принято решение продолжить разработку MTS, и сотрудники перенесли свою первоначальную работу с Model 50 на Model 67. Разработка TSS была в конечном итоге отменена IBM, затем возобновлена, а затем снова отменена. Но к этому времени UM понравилась разработанная ими система, она больше не рассматривалась как временная, и MTS использовался в UM и других учреждениях в течение 33 лет.
Оборудование
В теории MTS будет работать на IBM S/360 67, любой из серий IBM S/370, включающих виртуальную память, и их преемниках. MTS работал на следующих компьютерах в производственных, тестовых или опытных конфигурациях: первый Amdahl 5860 (серийный номер 1) в 1982 году и первый выпущенный на заводе IBM 3090–400 в 1986 году. NUMAC использовал MTS на первом S/360 67 в Великобритании и, вероятно, первом в Европе. Университет Британской Колумбии (UBC) инициировал перенос MTS для работы на серии IBM S/370 (IBM S/370 168) в 1974 году. Университет Альберты установил первый Amdahl 470V/6 в Канаде (серийный номер P5) в 1975 году. К 1978 году NUMAC (в Университете Ньюкасла-на-Тайне и Университете Дарема) перенес основную деятельность MTS на свою серию IBM S/370 (IBM S/370 168). MTS был разработан для поддержки до четырех процессоров на IBM S/360 67, хотя IBM выпустила только конфигурации с одним (однопроцессорные и полудуплексные) и двумя (дуплексные) процессорами модели 67. В 1984 году RPI обновил MTS для поддержки до 32 процессоров в аппаратной серии IBM S/370 XA (Extended Addressing), хотя, вероятно, реально использовалась конфигурация максимум из 6 процессоров. MTS поддерживает IBM Vector Facility, доступный в качестве опции на системах IBM 3090 и ES/9000. В начале 1967 года, работая на однопроцессорном IBM S/360 67 в UM без поддержки виртуальной памяти, MTS обычно поддерживал 5 одновременных терминальных сессий и одну пакетную задачу. К концу 1991 года MTS в UM работал на IBM ES/9000 720, поддерживая более 600 одновременных терминальных сессий и от 3 до 8 пакетных задач. Использование виртуальной памяти и динамического преобразования адресов (DAT) на IBM S/360 67 в 1967 году. Использование многопроцессорности на IBM S/360 67 с двумя процессорами в 1968 году. Программы с доступом к (для того времени) очень большим виртуальным адресным пространству. Прямой язык команд, одинаковый для терминальных и пакетных задач. Надежная, независимая от устройств модель ввода/вывода, позволяющая одним и тем же командам и программам обращаться к терминалам, дисковым файлам, принтерам, магнитным и бумажным лентам, считывателям карт и перфораторам, дискетам, сетевым узлам и устройству голосового ответа (ARU). Файловая система с поддержкой "строчных файлов", где номера строк и длина отдельных строк хранятся в виде метаданных, отдельно от содержимого данных строки, а также возможность чтения, вставки, замены и удаления отдельных строк в любом месте файла без необходимости чтения или записи всего файла. Редактор файлов ($EDIT) с интерфейсами командной строки и "визуальным" режимом, а также сопоставление шаблонов на основе шаблонов SNOBOL4. Возможность обмена файлами с контролируемым доступом (чтение, запись, изменение, расширение записи, удаление, разрешение). Возможность разрешать доступ к файлам не только другим идентификаторам пользователей и проектам (также известным как группы), но и конкретным командам или программам, а также комбинациям идентификаторов пользователей, проектов, команд и программ. Система электронной почты ($MESSAGESYSTEM), поддерживающая локальную и сетевую почту с возможностью отправки сообщений группам, отзыва сообщений, которые еще не были прочитаны, добавления получателей в сообщения после их отправки и отображения истории сообщений в цепочке электронной почты без необходимости включать текст из старых сообщений в каждое новое сообщение. Возможность удаленного доступа к лентам и эффективной обработки наборов данных, охватывающих несколько лент. Наличие богатой коллекции хорошо документированных библиотек подпрограмм. Возможность для нескольких пользователей быстро загружать и использовать коллекцию общих повторно входящих подпрограмм, доступных в общей виртуальной памяти. Наличие компиляторов, ассемблеров и системы символической отладки (SDS), позволяющих пользователям отлаживать программы, написанные на языках высокого уровня, таких как FORTRAN, Pascal, PL/I, а также на языке ассемблера. Надежная модель защиты, использующая аппаратное обеспечение виртуальной памяти и состояния супервизора и проблемного состояния оборудования S/360 и S/370, а также программно разделяющая выполнение в проблемном состоянии на системный (привилегированный или незащищенный) и пользовательский (защищенный или непривилегированный) режимы. Относительно небольшой объем кода выполняется в режиме супервизора. Например, подпрограммы поддержки устройств (DSR, также известные как драйверы устройств) не являются частью супервизора и выполняются в системном режиме в проблемном состоянии, а не в режиме супервизора. Эмулированная инструкция Branch on Program Interrupt (BPI).
on the following computers in production, benchmarking, or trial configurations: the first Amdahl 5860 (serial number 1) in 1982, and the first factory shipped IBM 3090–400 in 1986. NUMAC ran MTS on the first S/360 67 in the UK and very likely the first in Europe. The University of British Columbia (UBC) took the lead in converting MTS to run on the IBM S/370 series (an IBM S/370 168) in 1974. The University of Alberta installed the first Amdahl 470V/6 in Canada (serial number P5) in 1975. By 1978 NUMAC (at University of Newcastle upon Tyne and University of Durham) had moved main MTS activity on to its IBM S/370 series (an IBM S/370 168). MTS was designed to support up to four processors on the IBM S/360 67, although IBM only produced one (simplex and half duplex) and two (duplex) processor configurations of the Model 67. In 1984 RPI updated MTS to support up to 32 processors in the IBM S/370 XA (Extended Addressing) hardware series, although 6 processors is likely the largest configuration actually used. MTS supports the IBM Vector Facility, available as an option on the IBM 3090 and ES/9000 systems. In early 1967 running on the single processor IBM S/360 67 at UM without virtual memory support, MTS was typically supporting 5 simultaneous terminal sessions and one batch job. By late 1991 MTS at UM was running on an IBM ES/9000 720 supporting over 600 simultaneous terminal sessions and from 3 to 8 batch jobs. The use of Virtual memory and Dynamic Address Translation (DAT) on the IBM S/360 67 in 1967. The use of multiprocessing on an IBM S/360 67 with two CPUs in 1968. Programs with access to (for the time) very large virtual address spaces. A straightforward command language that is the same for both terminal and batch jobs. A strong device independent input/output model that allows the same commands and programs to access terminals, disk files, printers, magnetic and paper tapes, card readers and punches, floppy disks, network hosts, and an audio response unit (ARU). A file system with support for "line files" where the line numbers and length of individual lines are stored as metadata separate from the data contents of the line, and the ability to read, insert, replace, and delete individual lines anywhere in the file without the need to read or write the entire file. A file editor ($EDIT) with both command line and "visual" interfaces and pattern matching based on SNOBOL4 patterns. The ability to share files in controlled ways (read, write change, write expand, destroy, permit). The ability to permit files, not just to other user IDs and projects (aka groups), but to specific commands or programs and combinations of user IDs, projects, commands and programs. An e mail system ($MESSAGESYSTEM) that supports local and network mail with the ability to send to groups, to recall messages that haven't already been read, to add recipients to messages after they have been sent, and to display a history of messages in an e mail chain without the need to include the text from older messages in each new message. The ability to access tapes remotely, and to handle data sets that extend across multiple tapes efficiently. The availability of a rich collection of well documented subroutine libraries. The ability for multiple users to quickly load and use a collection of common reentrant subroutines, which are available in shared virtual memory. The availability of compilers, assemblers, and a Symbolic Debugging System (SDS) that allow users to debug programs written in high level languages such as FORTRAN, Pascal, PL/I, as well as in assembly language. A strong protection model that uses the virtual memory hardware and the S/360 and S/370 hardware's supervisor and problem states and via software divides problem state execution into system (privileged or unprotected) and user (protected or unprivileged) modes. Relatively little code runs in supervisor state. For example, Device Support Routines (DSRs, aka device drivers) are not part of the supervisor and run in system mode in problem state rather than in supervisor state. A simulated Branch on Program Interrupt (BPI) instruction.
Распространение
Университет Мичигана распространял MTS на магнитной ленте нерегулярно, а также из цифрового архива Deep Blue Мичиганского университета. Работая с материалами дистрибутива D6.0, можно создать версию MTS, загружаемую для IPL. Новый дистрибутив D6.0A MTS упрощает эту задачу. D6.0A основан на версии MTS D6.0 1988 года с различными исправлениями и обновлениями, обеспечивающими более плавную работу под Hercules в 2012 году. В будущем будет доступна версия MTS, загружаемая для IPL, основанная на версии MTS, которая использовалась в Мичиганском университете в 1996 году, незадолго до прекращения работы MTS. В первые годы MTS предоставлялся бесплатно без необходимости лицензирования для организаций, заинтересованных в его запуске и располагающих квалифицированным персоналом для его поддержки. В середине 1980-х годов были формализованы лицензионные соглашения, при которых Мичиганский университет выступал в качестве агента и выдавал лицензии от имени Консорциума MTS. Лицензии на MTS были доступны для академических организаций за годовую плату в 5000 долларов США, для других некоммерческих организаций – за 10 000 долларов США, а для коммерческих организаций – за 25 000 долларов США. Лицензия ограничивала использование MTS для предоставления коммерческих вычислительных услуг. Лицензиаты получали копию полного набора дистрибутивных лент MTS, любые дополнительные дистрибутивы, подготовленные в течение года, письменные инструкции по установке, две копии текущей пользовательской документации и ограниченную поддержку. Лишь немногие организации лицензировали MTS. Некоторые лицензировали MTS для запуска единственной программы, такой как CONFER. Собранные средства использовались для покрытия части общих расходов Консорциума MTS.