История операционных систем мэйнфреймов IBM |
---|
Disk Operating System/360 , также DOS/360 , или просто DOS , является прекращённым первым членом последовательности операционных систем для IBM System/360 , System/370 и более поздних мэйнфреймов . Она была анонсирована IBM в последний день 1964 года и впервые была поставлена в июне 1966 года. [1] В своё время DOS/360 была самой широко используемой операционной системой в мире. [2]
Базовая операционная система (BOS) была ранней версией DOS и TOS, которая могла обеспечить полезную функциональность в системе с объемом основной памяти всего 8 КБ и одним дисководом 2311. [3]
TOS/360 (Tape Operating System/360, не DOS как таковая и не так называемая) — операционная система IBM для System/360 , использовавшаяся в первые дни около 1965 года для поддержки System/360 Model 30 и аналогичных платформ.
TOS, как следует из слова "Tape" в названии, требовал ленточный накопитель. Он разделял большую часть кодовой базы [4] и некоторые руководства [5] [6] с IBM DOS/360.
TOS выдержала 14 выпусков и была прекращена [7] [ проверка не пройдена ], когда такие диски, как IBM 2311 и IBM 2314, стали более доступными во времена System/360, [8] [ проверка не пройдена ], тогда как на IBM 7090 они были дорогой роскошью .
DOS/360 была основной операционной системой для большинства малых и средних установок S/360.
DOS/VS был выпущен в 1972 году. Первый выпуск DOS/VS был пронумерован как «Выпуск 28», что означало постепенную модернизацию DOS/360. [9] Он добавил виртуальную память для поддержки нового оборудования серии System/370 . Он использовал фиксированную таблицу страниц , которая отображала единое адресное пространство размером до 16 мегабайт для всех объединенных разделов.
DOS/VS увеличила количество разделов (отдельных одновременных программ) с трех (названных Background, Foreground 1 и Foreground 2) до пяти (BG и F1–F4) и позволила в общей сложности системе иметь пятнадцать подзадач. [10] : стр. 24–28
На смену DOS/VS пришла DOS/VSE через z/VSE .
DOS/VSE была представлена в 1979 году как «расширенная» версия DOS/VS для поддержки новых процессоров 4300. [11] Системы 4300 включали функцию под названием ECPS:VSE, которая обеспечивала одноуровневое хранилище как для процессора, так и для каналов ввода-вывода. [12] DOS/VSE поддерживала ECPS:VSE, но также могла работать на System/370 без этой функции. VSE была последней бесплатной версией DOS.
VSE/Advanced Functions [13] (VSE/AF), подготовленный к выпуску в 1983 году, добавил поддержку новых устройств и функциональность в DOS/VSE. Многие инсталляции запускали VSE/AF с использованием таких продуктов, как VSE System Installation Productivity Option/Extended (VSE System IPO/E), который объединял DOS/VSE, VSE/AF и различные другие продукты.
SSX/VSE («Small System Executive») была попыткой IBM упростить покупку и установку VSE, предоставив предварительно сгенерированную систему, содержащую ОС и наиболее популярные продукты. [14] SSX был выпущен в 1982 году, [15] а затем заменен на VSE/SP. SSX продавался IBM как пакет из 14 компонентов (Advanced Functions/VSE, VSE/POWER, ACF/VTAME, VSE/VSAM, CICS/DOS/VS, DOS/VS, Sort/Merge, VSE/ICCF, VSE/OCCF, VSE/IPCS, DOS/COBOL, Back Up/Restore, Space Management, VSE/DITTO), и изначально соглашался предлагать отдельные продукты только по отдельности через RPQ , хотя позже IBM согласилась добавить эти продукты по отдельности в свой прайс-лист под давлением независимых поставщиков программного обеспечения, которые утверждали, что объединение нарушает антимонопольное законодательство. [16]
В 1986 году IBM выпустила VSE/SP («Системный продукт») одновременно с анонсом процессоров 9370. VSE/SP заменил SSX/VSE и связал VSE с наиболее популярными программными продуктами VSE, такими как VSE/AF, ACF/VTAM , CICS и POWER/VS . [17] VSE/SP поддерживал только 24-битные адреса, несмотря на просьбы клиентов предоставить версию XA (31 бит).
VSE/ESA была 31-разрядной версией DOS/VSE, выпущенной в 1990 году с поддержкой до 384 МБ реального хранилища. Она предоставляла до двенадцати статических разделов и позволяла запускать VSE/POWER и ACF/VTAM в частных адресных пространствах . Она представила новую функцию, называемую динамическими разделами , которая могла допускать до 150 одновременных заданий, каждое в своем собственном адресном пространстве. [18] Версия 1 могла работать в режиме ESA или 370, причем режим ESA также поддерживал оборудование XA с ограничениями. Версия 2 (1995) поддерживала только режим ESA с оборудованием ESA. Версия 2 добавила поддержку многопроцессорности через новый Turbo Dispatcher , который позволяет различным разделам выполняться одновременно на разных процессорах. Раздел может работать только на одном процессоре одновременно, что в основном ограничивает многопроцессорность многозадачностью . Теоретически поддерживается («допустимо») до десяти процессоров, но эффективно используется до четырех. [19] [20] Эти ограничения сохраняются в последнем z/VSE. [21]
IBM выпустила z/VSE 3.1 в 2005 году. Это изменение в названии отражало новый брендинг «System z» для линейки продуктов мэйнфреймов IBM, но не представляло собой фундаментального изменения в архитектуре по сравнению с VSE/ESA 2.7, которая предшествовала ему. В частности, он не поддерживал новую 64-битную z/Architecture, работая только в 31-битном режиме даже на 64-битных машинах. z/VSE 4.1, выпущенный в 2007 году, представил поддержку 64-битной реальной адресации с объемом памяти до 8 ГБ. Однако, хотя части супервизора работают в 64-битном режиме, он предоставляет только 31-битные виртуальные адресные пространства для приложений с проблемным состоянием. По одной из оценок на 2011 год количество сайтов, использующих z/VSE, составляло около 4000. [22]
При разработке нового поколения оборудования для унифицированных компьютеров System/360 (или S/360) IBM изначально взяла на себя обязательство поставлять единую операционную систему OS/360 , также совместимую с машинами начального уровня; но оборудование уже было доступно, и проект OS/360 все больше и больше отставал от графика, как подробно описано Фредом Бруксом в книге «Мифический человеко-месяц» . IBM была вынуждена быстро разработать четыре дополнительные системы:
Когда OS/360 наконец-то был выпущен, с опозданием на год, ему требовалось не менее 64 КБ памяти. DOS была разработана для использования небольшого объема памяти и могла работать на машинах с 16 КБ, конфигурация, доступная на бюджетной модели S/360 30. В отличие от OS/360, DOS/360 изначально была однозадачной системой, которая не поддерживала многозадачность . Позднее была выпущена версия с многозадачностью, поддерживающая до трех разделов памяти , требующая 32 КБ памяти. Несмотря на свои ограничения, DOS/360 стала самой широко используемой операционной системой для процессоров с менее чем 256 КБ памяти [ необходима цитата ] потому что: Аппаратное обеспечение System/360 продавалось очень хорошо; DOS/360 хорошо работала на процессорах System/360, которые могли себе позволить организации среднего размера; и она была лучше, чем «операционные системы», которые были у этих клиентов раньше.
DOS/360 была операционной системой, которая заполнила временной промежуток между объявлением System/360 и доступностью предполагаемой операционной системы OS/360. В результате задержки ряд клиентов внедрили системы DOS и вложили значительные средства в их запуск. IBM ожидала, что пользователи DOS/360 вскоре перейдут на OS/360, но в результате этих инвестиций они не захотели соглашаться на такое преобразование. Затем IBM необходимо было продолжать предлагать DOS/360 в качестве дополнительной операционной системы. В Hacker's Jargon File неверно указано, что GECOS (также известная как GCOS) была скопирована с DOS/360, что было не так, однако операционная система Xerox Data Systems Xerox (XOS) была намеренно похожа на DOS для упрощения переноса программ.
DOS/360 требовала ЦП System/360 (модель 25 и выше) со стандартным набором инструкций (десятичные и с плавающей точкой наборы инструкций опциональны). Минимальное требование к памяти составляло 16 КБ; защита памяти требовалась только в случае использования мультипрограммирования. Требовались принтер-клавиатура 1052 Model 7 [NB 2] , либо селекторный, либо мультиплексорный канал , и по крайней мере один дисковод — изначально 2311 вмещал 7,25 МБ. Кардридер , перфоратор и линейный принтер обычно включались, но магнитные ленточные приводы могли быть заменены. [23] : стр.10
Типичная конфигурация может состоять из S/360 модели 30 с памятью 32 КБ и набором десятичных инструкций, устройства чтения/перфорации карт IBM 2540 , принтера IBM 1403 , двух или трех дисков IBM 2311, двух накопителей на магнитной ленте IBM 2415 и консоли 1052-7.
Следующее описание применимо к DOS/360, если не указано иное. Более поздние версии предлагают дополнительную функциональность.
Поскольку DOS/360 был разработан для работы на младших моделях System/360, использование памяти вызывало беспокойство. Было возможно сгенерировать DOS- супервизор , резидентную часть операционной системы, размером всего 5902 байта. [23] : стр. 297 Подробные таблицы перечисляли требования к памяти для каждой опции sysgen , часто всего 100 байт. Минимальная система оставляла чуть более 10 КБ памяти для одного пакетного раздела, чего было достаточно для запуска утилит и всех компиляторов, кроме COBOL , PL/I и полного FORTRAN IV . Чтобы сохранить использование памяти как можно меньшим, DOS была полностью написана на языке ассемблера .
Концепция переходной области является частью обсуждения Mythical Man-Month по проектированию и использованию основной памяти. [24] Чтобы еще больше сократить использование памяти, супервизор использовал наложения, называемые переходными процессами , которые считывались в одну из двух зарезервированных переходных областей по мере необходимости.
Использование префиксов $$A и $$B обеспечивало быструю загрузку переходных процессов, поскольку их имена сохранялись в каталоге первыми.
DOS/VS добавили Machine Check и Channel Check Handlers, которые были еще одним набором переходных процессов, начинающихся с $$RAST и выполняющихся в области Recovery Transient. Это было сделано в рамках усовершенствований надежности, доступности и удобства обслуживания (RAS) для System/370 . До этого добавления машинные проверки вызывали завершение работы программы, а проверки каналов вызывали завершение работы программы, обращающейся к устройству, в момент возникновения ошибки.
Как и OS/360 , начальные выпуски DOS могли запускать только одну программу за раз. Более поздние версии «настоящего» DOS могли запускать до трех программ одновременно в отдельных разделах памяти, поддерживаемых теми же функциями аппаратной защиты памяти более масштабируемой операционной системы OS/360. Они были обозначены как BG ( фоновый режим ), F1 ( передний план 1 ) и F2 ( передний план 2 ). Мультипрограммирование было дополнительной функцией DOS/360, выбираемой при генерации системы . [23] : стр.34 Более поздняя опция SYSGEN позволяла выполнять пакетные операции в любом разделе FG. В противном случае приоритетные программы должны были запускаться вручную оператором компьютера .
DOS/VS допускала до семи одновременных программ, хотя пять или шесть были более распространенным числом из-за меньшего масштаба оборудования, обычно размещающего системы DOS. И DOS, и DOS/VS позволяют устанавливать число разделов в IPL (Initial Program Load), термин IBM для Boot load.
Исполняемые программы хранились в Core Image Library . Во время работы DOS не могла освободить место, поскольку программы удалялись или заменялись новыми версиями. Когда Core Image Library заполнялась, ее приходилось сжимать с помощью служебной программы, и это могло остановить разработку до ее завершения. Многие магазины просто замораживали изменения на день, сжимали CIL «офлайн» и выполняли IPL с новой Core Image Library в начале рабочего дня. Также поддерживались перемещаемая библиотека для связываемых объектных программ и библиотека исходных операторов для макросов ассемблера и включаемого текста. Установки могли определять дополнительные частные перемещаемые и исходные библиотеки операторов на других томах диска.
DOS/360 имел набор служебных программ , ассемблер и компиляторы для FORTRAN , COBOL и, в конечном итоге, PL/I , а также поддерживал ряд организаций файлов с методами доступа , облегчающими их использование:
Последовательные и ISAM-файлы могут хранить записи как фиксированной, так и переменной длины, и все типы могут занимать более одного тома на диске.
DOS/360 предлагал Базовый метод доступа к телекоммуникациям ( BTAM ) и Метод доступа к очередям телекоммуникаций ( QTAM ). BTAM был примитивным и сложным в использовании по более поздним стандартам, но он позволял осуществлять связь практически с любым типом терминала, что было большим преимуществом в то время, когда было мало стандартизации протоколов связи. Простота его API также позволяла относительно легко взаимодействовать с внешними процессорами связи, что способствовало тому, что машины DOS/360 становились узлами в многоуровневых сетях крупных организаций. С другой стороны, пользователям QTAM не требовалось так много знаний об отдельных устройствах, поскольку QTAM работал на логическом уровне, используя макросы OPEN/CLOSE/GET/PUT.
Все операторы управления заданиями DOS начинались с « // » в столбцах карты один и два, за исключением конца задания , который был « /&␢ », конца данных , « /*␢ », и комментариев , « *␢ ». ( В следующем описании символ « ␢ » представляет один пробел .)
JOB
указывает на «начало контрольной информации для задания». Формат: . <имя задания> должно содержать от одного до восьми буквенно-цифровых символов для идентификации задания. <комментарии> игнорируются.// JOB <jobname> <comments>
EXEC
определяет программу, которая должна быть выполнена как шаг задания . «Все операторы управления, необходимые для выполнения, должны быть обработаны» до того, как EXEC
оператор будет прочитан. Формат:// EXEC <program>
PAUSE
«может использоваться для разрешения действий оператора между этапами задания». Формат — . Комментарий используется для предоставления сообщения оператору.// PAUSE <comment>
comments
может использоваться для отображения сообщения оператору. Формат — * <comment>
./*
. Любые данные в операторе, следующие за пробелом, игнорируются./&
. Любые данные в операторе, следующие за пробелом, игнорируются.OPTION
операторе указаны значения системных опций, которые применяются к этой работе. Формат — .// OPTION <option1>[,<option2>...]
ASSGN
«используется для назначения логического устройства ввода-вывода физическому устройству». Формат — . SYSxxx указывает на логическое устройство, например SYS001 или SYSIPT. <device> — это либо «X'cuu'», что означает физическое устройство (канал и устройство), «IGN» для игнорирования или «UA» для неназначенного. <tape option> указывает либо настройки режима ленты, такие как плотность, четность и т. д., либо «ALT» для указания альтернативного устройства.// ASSGN SYSxxx,<device>[,<tape option>]
RESET
сбрасывает указанные назначения устройств ввода-вывода на их постоянные значения. Формат . <option> может быть "SYS" для сброса всех назначений логических устройств системы, "PROG" для сброса всех назначений программатора, "ALL" для сброса всех назначений или "SYSxxx" для сброса назначения для логического устройства "SYSxxx", например SYS002.// RESET <option>
LISTIO
дает команду системе вывести список всех указанных назначений ввода-вывода, действующих в данный момент. Формат: . <option> — это "SYS" для вывода списка всех системных назначений, "PROG", "F1" или "F2" для вывода списка всех назначений для фонового или указанного основного раздела, "ALL", "SYSxxx", "X'cuu'", "UNITS" для вывода списка всех назначенных блоков, "UA" для вывода списка всех неназначенных блоков или "DOWN" для вывода списка всех блоков, помеченных как неработающие.// LISTIO <option>
MTC
выдает команду на магнитную ленту. Формат: . <opcode> — это функция, например, «FSF» для перемещения вперед на один файл или «REW» для перемотки ленты назад. <nn> — это число, которое может указывать, сколько раз должна быть выполнена операция, например, перемещение вперед на два файла.// MTC <opcode>,SYSxxx[,<nn>]
VOL
содержится информация о метке тома диска или ленты для стандартной проверки меток. Формат — .// VOL SYSxxx,<volume>
TPLAB
оператор для информации о метке ленты и операторы DLAB
и XTENT
для информации о метке диска и экстенте. По крайней мере, еще в 1968 году TPLAB
оператор был заменен на TLBL
и DLAB
оператор на DLBL
. Эти операторы использовали многочисленные позиционные параметры и имели довольно высокую плотность информации.[25]
DOS JCL был разработан для скорости и простоты анализа; полученный позиционный синтаксис был значительно более загадочным, чем управление заданиями на основе ключевых слов OS/360.
Ранняя DOS не включала подсистему спулинга для повышения эффективности ввода-вывода перфокарт и линейного принтера . К концу 1960-х годов и IBM, и поставщики стороннего рынка начали заполнять этот пробел. Спулер IBM был опцией под названием Priority Output Writers, Execution Processors and Input Readers (POWER) , а Software Design, Inc., независимая компания-разработчик программного обеспечения, продавала спулер под названием GRASP .
DOS/360 не имел перемещающегося загрузчика , поэтому программистам приходилось редактировать ссылки и редактировать отдельные исполняемые версии каждой программы для каждого раздела или адресного пространства, в котором программа, скорее всего, будет запущена. В качестве альтернативы программы на языке ассемблера могли быть написаны как самоперемещающиеся , но это приводило к дополнительной сложности и штрафу за размер, хотя и небольшому. Крупные магазины DOS с несколькими машинами и несколькими макетами разделов часто писали свой собственный перемещающийся загрузчик, чтобы обойти эту проблему.
Интерфейс прикладного программирования DOS/360 был несовместим с OS/360. Программы на языках высокого уровня, написанные для DOS, необходимо было скомпилировать и связать, прежде чем их можно было использовать с OS/360. Незначительные различия между компиляторами DOS и ОС иногда требовали внесения изменений в программы. Однако перенос в другом направлении был более сложным. Поскольку OS/360 имела значительно больше функций, поддерживаемых в своем API, любое использование этих функций приходилось удалять из программ, портируемых на DOS. Это было меньшей проблемой для программистов, работающих на языках высокого уровня, таких как COBOL . С другой стороны, программы на ассемблере имели тенденцию чаще использовать эти самые функции и обычно требовали большей модификации для запуска на DOS.
Не забывайте TOS, незаконнорожденного кузена DOS. Любой из них может быть сгенерирован из одного и того же набора библиотек дистрибутива...
с DOS/VSE SCP (программирование управления системой) VSE/Advanced Functions обеспечивает поддержку операционной системы для процессоров IBM, перечисленных в разделе «Требования к машине».