Введение

Исследовательский проект 1970-х годов. Проект Future Systems (FS) был научно-исследовательской и опытно-конструкторской работой, выполненной в IBM в начале 1970-х годов, направленной на разработку революционной линейки компьютерных продуктов, включая новые программные модели, которые должны были упростить разработку программного обеспечения, используя возможности современного мощного оборудования.

Предыстория

До конца 1960-х годов IBM получала основную часть прибыли от аппаратного обеспечения, комплектуя системы сопроводительным программным обеспечением и услугами для повышения их привлекательности. Ценник был только на аппаратное обеспечение, но эти цены включали в себя надбавку на программное обеспечение и услуги. Другие производители начали предлагать совместимое оборудование, в основном периферийные устройства, такие как ленточные и дисковые накопители, по цене, значительно более низкой, чем у IBM, что уменьшало потенциальную базу для возмещения стоимости программного обеспечения и услуг. Ситуация резко изменилась, когда Джин Амдал покинул IBM и основал компанию, производящую совместимые с System/370 системы, которые были быстрее и дешевле предложений IBM. В начале 1971 года внутренняя целевая группа IBM, Project Counterpoint, пришла к выводу, что бизнес совместимых мэйнфреймов действительно жизнеспособен и что основание для включения стоимости программного обеспечения и услуг в цену аппаратного обеспечения быстро исчезнет. Другой стратегической проблемой было то, что стоимость вычислительных ресурсов неуклонно снижалась, а затраты на программирование и эксплуатацию, состоящие в основном из расходов на персонал, неуклонно росли. Следовательно, доля бюджета заказчика на ИТ, доступная поставщикам аппаратного обеспечения, значительно сократится в ближайшие годы, а вместе с ней и база доходов IBM. IBM необходимо было, решая вопросы стоимости разработки и эксплуатации приложений в своих будущих продуктах, одновременно снизить общую стоимость ИТ для клиентов и увеличить свою долю в этих затратах. В то же время IBM подвергалась юридическим преследованиям за свою доминирующую позицию и политику включения программного обеспечения и услуг в цену аппаратного обеспечения, поэтому любая попытка "повторного комплектования" части своих предложений должна была быть убедительно обоснована исключительно техническими причинами, чтобы выдержать любые юридические претензии.

Доступ к данным

Одним из принципов проектирования FS был "склад единого уровня", который расширил идею виртуальной памяти (VM) для охвата постоянных данных. В традиционных системах программы выделяют память для хранения значений, представляющих данные. Эти данные обычно исчезают при выключении машины или выходе пользователя из системы. Чтобы обеспечить доступность этих данных в будущем, требуется дополнительный код для записи их на постоянное хранилище, такое как жесткий диск, и последующего чтения. Для упрощения этих распространенных операций в 1960-х годах появилось несколько движков баз данных, позволявших программам передавать данные движку для сохранения и последующего извлечения по запросу. Параллельно развивалась концепция виртуальной памяти. В ранних системах объем памяти, доступный программе для выделения под данные, ограничивался объемом основной памяти системы, который мог меняться в зависимости от таких факторов, как перемещение системы с одного компьютера на другой или выделение памяти другими программами. Системы виртуальной памяти решали эту проблему, определяя максимальный объем памяти, доступный всем программам – как правило, очень большое число, значительно превышающее объем физической памяти. Если программа запрашивает выделение памяти, которая физически недоступна, блок основной памяти записывается на диск, а освободившееся пространство используется для нового выделения. При запросе программой данных из выгруженной ("страничной" или "свопированной") области памяти, они невидимо загружаются обратно в основную память. Склад единого уровня – это, по сути, расширение виртуальной памяти на всю память, внутреннюю и внешнюю. Системы VM невидимо записывают память на диск, что является той же задачей, что и файловая система, поэтому нет причин, по которым она не может быть использована в качестве файловой системы. Вместо того чтобы программы выделяли память из "основной памяти", которая затем, возможно, перемещалась в другое резервное хранилище VM, вся память выделяется VM немедленно. Это означает, что нет необходимости в сохранении и загрузке данных – простое выделение памяти в памяти приводит к тому же эффекту, поскольку система VM записывает данные на диск. Когда пользователь снова входит в систему, эти данные и программы, которые их использовали (также находящиеся в той же объединенной памяти), становятся доступны немедленно в том же состоянии, в котором они были ранее. Вся концепция загрузки и сохранения упраздняется, программы и целые системы продолжают работу с того места, где они были остановлены, даже после перезагрузки машины. Эта концепция была исследована в системе Multics, но оказалась очень медленной, что было связано с ограничениями доступного оборудования, где основная память была реализована на ферритовых сердечниках, а резервное хранилище – на жестких дисках или магнитных барабанах – было значительно медленнее. С появлением новых типов энергонезависимой памяти, в частности, пузырьковой памяти, симуляции показали, что выполнение собственных инструкций FS на высокопроизводительной машине было медленнее, чем эмуляция System/370 на той же машине. Проект FS был окончательно закрыт, когда IBM осознала, что принятие системы клиентами будет значительно ниже, чем предполагалось изначально, поскольку не существовало разумного пути миграции приложений для клиентов, использующих архитектуру 360. Чтобы обеспечить максимальную свободу при проектировании действительно революционной системы, простота миграции приложений не была одной из основных целей проекта FS, но предполагалось, что она будет решена с помощью программных средств миграции, учитывающих новую архитектуру. В конечном итоге оказалось, что стоимость переноса огромных инвестиций пользователей в приложения, написанные на COBOL и ассемблере, на FS во многих случаях, вероятно, превысит стоимость приобретения новой системы.