Леонид Черняк – История электронных компьютеров (страница 25)
Четвертое новшество – унификация периферийных устройств и интерфейсов. Впервые IBM стандартизовала работу дисков, лент, терминалов и принтеров, чтобы они одинаково работали со всеми моделями. Ранее каждая машина имела свои устройства, и смена оборудования часто означала дорогостоящую переделку программ. Унификация позволила создавать общую экосистему железа и ПО.
Наконец, принципиально новым был параллельный подход к разработке аппаратуры и программного обеспечения. Для System/360 инженеры и разработчики языков программирования работали вместе с архитекторами процессоров, синхронизируя набор инструкций, операционные системы и языковые стандарты. Это позволяло обеспечить полную совместимость между железом и софтом, что было беспрецедентно.
В совокупности эти новшества сделали System/360 не просто очередной линейкой компьютеров, а фундаментом для всей индустрии вычислительной техники. Универсальная архитектура, масштабируемость, виртуализация, стандартизированная периферия и интегрированная программная поддержка стали теми принципиальными решениями, которые определяли будущее компьютеров на десятилетия вперед.
Железо и софт
В отличие от прежних подходов, где сначала создавали железо, а потом пытались подстроить под него программное обеспечение, команда IBM подошла к System/360 как к единым комплексным системам. С самого начала инженеры процессоров, архитекторы памяти и контроллеров, разработчики операционных систем и языков программирования работали параллельно и синхронно.
Каждая группа имела свои задачи, но решения одной напрямую влияли на других. Например, архитекторы процессора проектировали набор команд так, чтобы он подходил под универсальные задачи – научные расчеты, обработку транзакций, управление вводом-выводом. При этом они консультировались с разработчиками операционной системы: как эти команды будут использоваться для управления памятью, планирования задач, обеспечения многопользовательского режима. Если программисты ОС видели, что какой-то набор команд усложнит поддержку виртуальной памяти или многозадачность, это сразу обсуждалось и корректировалось на уровне архитектуры.
Аналогично, проектирование виртуальной памяти и многозадачности было тесно связано с возможностями железа. Инженеры должны были заранее предусмотреть поддержку изоляции процессов, работу с виртуальными адресами и синхронизацию нескольких потоков. Это напрямую влияло на конструкцию процессоров, регистров, контроллеров памяти. Каждый блок железа создавался с пониманием того, как его будут использовать программы, и каждая функция ОС проектировалась с учетом того, что реально может сделать процессор.
Периферийные устройства и интерфейсы – еще один пример интеграции. Разработчики ОС должны были управлять дисками, лентами, терминалами и принтерами одинаково на всех моделях. Поэтому архитекторы железа создавали унифицированные контроллеры, а программисты ОС одновременно разрабатывали драйверы и стандартизированные методы доступа. Это позволило достичь совместимости между малой и большой моделью без переписывания ПО.
Особенно сложным было согласование масштабируемости. Малые модели имели один процессор и небольшую память, крупные – несколько процессоров и огромные объемы памяти. Команды и операционная система должны были работать на всех моделях одинаково, а это означало проектирование интерфейсов и функций ОС с учетом возможного добавления процессоров, памяти и устройств. Такой уровень интеграции был тогда принципиально новым: инженеры не могли рассматривать железо и софт отдельно, они рожали систему как единое целое.
Таким образом, System/360 – это не просто машина с операционной системой. Это система, которая создавалась одновременно на двух уровнях: аппаратном и программном, где каждый элемент – процессор, память, контроллеры, ОС, языки программирования – был спроектирован с учетом работы всех остальных. Такой подход позволил IBM впервые создать линейку совместимых машин, где программы могли выполняться одинаково на малых и больших моделях, а железо и софт образовывали единый, согласованный организм.
Модели IBM/360
Когда команда IBM перешла от абстрактной идеи «универсальной системы» к созданию конкретных моделей, каждый элемент линейки проектировался одновременно с соответствующей поддержкой в операционной системе. Например, малые модели вроде 360/30 и 360/40 предназначались для небольших предприятий и отделов крупных организаций. Их процессоры были простыми по структуре, но полностью поддерживали общий набор команд, принятый для всей линейки. Это позволяло запускать те же программы, что и на больших моделях, хотя производительность была ограничена.
Для этих малых моделей инженеры создали минимальный блок процессора с базовыми регистрами и контроллерами памяти, одновременно разработав версию операционной системы, способную управлять ограниченными ресурсами. ОС должна была обеспечивать поддержку ввода-вывода, планирование задач и базовую многозадачность в условиях ограниченной памяти. Инженеры аппаратуры и разработчики софта тесно согласовывали, как каждая команда процессора будет интерпретироваться и выполняться в ОС, чтобы не нарушать совместимость с другими моделями.
Средние и крупные модели, например 360/65 и 360/75, требовали принципиально другого подхода к масштабируемости. В этих машинах использовались несколько процессоров, расширенные блоки памяти и высокопроизводительные контроллеры ввода-вывода. Архитекторы процессоров создавали модули, которые можно было добавлять или заменять без изменения основной логики команд, а программисты операционной системы проектировали механизмы управления ресурсами так, чтобы одинаково эффективно работать с малым и большим числом процессоров и объемом памяти. В результате одна и та же ОС могла запускаться как на малой, так и на большой модели, обеспечивая совместимость программного обеспечения и унификацию работы с пользователем.
Особое внимание уделялось периферийным устройствам. Диски, ленточные накопители, терминалы и принтеры разрабатывались так, чтобы одинаково работать на всех моделях. Для этого архитекторы железа создавали унифицированные контроллеры, а программисты ОС одновременно разрабатывали драйверы и стандартизированные методы доступа. Так, операционная система могла управлять устройствами независимо от мощности модели, обеспечивая клиентам возможность расширять систему без переписывания программ.
Одним из ключевых достижений было создание универсального набора команд, поддерживающего все модели. Инженеры процессоров и разработчики ОС тесно взаимодействовали, чтобы каждая команда могла выполняться на всех машинах одинаково. Это потребовало согласования работы арифметических операций, управления памятью, синхронизации процессов и ввода-вывода. Любое изменение на аппаратном уровне обсуждалось с программистами ОС, а новые функции софта учитывались при проектировании железа.
В результате совместного проектирования родились первые реальные системы System/360, где каждая модель представляла собой не отдельный компьютер, а часть единой архитектурной платформы. Малые машины обслуживали ограниченные задачи, большие – крупные вычислительные центры и банки, но все они работали одинаково, использовали один набор инструкций, унифицированные устройства и совместимое программное обеспечение. Именно эта интеграция железа и софта позволила IBM создать по-настоящему универсальную линейку компьютеров, ставшую фундаментом для всей индустрии на следующие десятилетия.
Для иллюстрации интеграции аппаратуры и программного обеспечения в линейке IBM System/360 мы выбрали две модели: 360/30 и 360/75. Причина в том, что они показывают крайние точки спектра возможностей системы. Малая модель 360/30 предназначалась для офисов и отделов средних предприятий, где важна была компактность, экономичность и работа с ограниченными ресурсами. На ее примере хорошо видно, как инженеры оптимизировали выполнение команд, управление памятью и ввод-вывод, сохранив совместимость с другими моделями.
Крупная модель 360/75 предназначалась для крупных вычислительных центров и банков, где требовалась высокая производительность, многопроцессорность и работа с большими объемами памяти и потоками данных. На ее примере можно проследить, как реализовывалась масштабируемость, управление ресурсами и поддержка сложной многозадачной среды.
Эти две модели позволяют увидеть полный диапазон решений, которые инженеры IBM внедрили, чтобы линейка System/360 стала единой и универсальной. Малая машина показывает оптимизацию ресурсов, большая – масштабирование и сложность управления, а единая архитектура объединяет их в одну систему.
Когда команда IBM приступила к созданию этих моделей, инженеры и разработчики программного обеспечения работали параллельно и синхронно. В 360/30 процессор имел минимальный набор регистров и простую структуру, поэтому пришлось тщательно продумывать, как выполнять все команды универсального набора эффективно на малой машине. Операционная система поддерживала многозадачность и управление памятью в условиях ограниченных ресурсов, а драйверы периферийных устройств позволяли подключать диски, ленточные накопители и терминалы точно так же, как на более мощных моделях.