Введение
Недействующее программное обеспечение системы совместного использования времени.
MUSIC/SP (Multi User System for Interactive Computing/System Product; первоначально McGill University System for Interactive Computing) была разработана в Университете Макгилла в 1970-х годах на основе ранней системы совместного использования времени IBM под названием RAX (Remote Access Computing System). Система работала на мейнфрейм-аппаратуре серий IBM S/360, S/370 и 4300 и предлагала инновационные для того времени функции, такие как контроль доступа к файлам и сжатие данных. Она была создана для того, чтобы предоставить ученым и студентам возможность интерактивно создавать и запускать свои программы на терминалах, в то время как большинство вычислений на мейнфреймах все еще выполнялось с использованием перфокарт. С течением времени разработка продолжалась, и система развивалась, включив в себя электронную почту, Интернет и, в конечном итоге, Всемирную паутину. В конце 1980-х годов, в период расцвета, системой пользовались более 200 университетов, колледжей и школьных округов в Северной и Южной Америке, Европе и Азии. MUSIC изначально разрабатывалась как самостоятельная операционная система, но с появлением виртуальной машины IBM VM/370 стало более распространенным развертывание MUSIC как гостевой операционной системы, работающей под управлением VM/370.
Файловая система
Файловая система MUSIC/SP была уникальной во многих отношениях. Существовал единый общесистемный индекс файлов. Идентификатор пользователя-владельца и имя файла хешировались для определения местоположения файла в этом индексе, что позволяло находить любой файл в системе с помощью одной операции ввода-вывода. Однако для пользователя это представляло собой плоскую файловую систему, лишенную иерархической структуры каталогов, обычно используемой в DOS, Microsoft Windows и Unix. В 1990 году поверх этой системы была реализована "древовидная" структура каталогов, что сделало её более совместимой с файловыми системами, доступными в то время. По умолчанию информация, хранящаяся в файлах, сжималась, что обеспечивало значительную экономию дискового пространства. Файловая система имела достаточно сложную схему контроля доступа, позволяющую владельцу управлять правами на чтение, запись, добавление данных и выполнение файла. Также существовало понятие "общедоступного" файла, видимого всем пользователям, и "приватного" файла, видимого только владельцу.
Виртуальная память
Первоначальные версии системы не поддерживали виртуальную память и преобразование адресов. Одновременно в оперативной памяти мог находиться только один активный пользователь. Для организации совместного использования времени между разными пользователями использовалась подкачка (на диск), а также применялся переменный квант времени. Поддержка виртуальной памяти была внедрена в 1985 году. Это позволило нескольким пользователям одновременно находиться в оперативной памяти, сняло многие ограничения на размер запускаемых программ и обеспечило значительное повышение производительности. Производительность системы также была улучшена за счет предварительной загрузки часто используемых модулей в виртуальную память при запуске, что обеспечивало их одновременную доступность для всех пользователей.
Языки программирования
Система была разработана для поддержки академических вычислений и обучения информатике, поэтому был доступен широкий набор языков программирования. Ядро системы было написано на ассемблере IBM/370, но большинство встроенных приложений – на FORTRAN. Система поддерживала компиляторы Waterloo WATFIV и WATBOL, а также предоставляла компиляторы для Pascal, C, PL/I, BASIC, APL, ALGOL, RPG и GPSS. В системе отсутствовал язык командной оболочки до тех пор, пока в 1984 году не был портирован REXX из CMS. Впоследствии, в 1986 году, был создан полноценный пользовательский интерфейс, полностью написанный на REXX.
Электронная почта и Интернет
Электронная почта была одним из основных приложений в MUSIC/SP. Изначально интерфейс электронной почты предоставлял доступ к локальной почте. С развитием сетей этот доступ был расширен и включил в себя возможность работы с почтой BITNET и Интернет. MUSIC/SP не имел прямого доступа к Интернету до 1990 года, когда в систему был портирован код TCP/IP WiscNet Университета Висконсина, что позволило системе предоставлять доступ ко всем интернет-сервисам.
Совместимость с другими системами IBM
Основной особенностью системы была возможность запуска программ, разработанных для основной операционной системы IBM (MVS). Это достигалось за счет использования эмулятора MVS, который перехватывал системные вызовы на уровне инструкции Supervisor Call (SVC). Большинство сторонних приложений работали именно в этом режиме. Вместо разработки собственной версии приложения, разработчики MUSIC/SP обычно начинали с версии для MVS и перекомпилировали её для работы в режиме эмуляции MVS. Поскольку эмуляция MVS представляла собой лишь небольшую часть функциональности реальной системы, приложения, как правило, работали на MUSIC/SP более эффективно.
Другие особенности
Одним из главных преимуществ системы в учебных заведениях было то, что благодаря использованию специальных строк, называемых "управляющими картами", в начале файла, исходные файлы для любого поддерживаемого языка могли автоматически направляться в соответствующий компилятор (Fortran был компилятором по умолчанию), компилироваться, связываться и выполняться (параметры компиляции, связывания и выполнения также задавались в управляющих картах) простым вводом имени файла в командной строке. Начиная с 1980 года, поддерживался широкий спектр терминалов, включая устройства на основе EBCDIC, использующие проприетарные протоколы IBM, и асинхронные устройства на основе ASCII. Поскольку терминалы подключались через различные типы внешних процессоров (в соответствии с общепринятой практикой разделения времени IBM как в то время, так и сейчас), и, следовательно, могли функционировать без участия центрального процессора в течение значительного времени, MUSIC использовал переменные кванты времени, которые при вычислительно-интенсивных задачах могли достигать нескольких секунд на квант; напротив, если пользователь заполнял выходной буфер или выполнял интерактивное чтение, квант времени немедленно завершался.
Эмуляция
Эмулятор Sim390 содержит демонстрационную систему MUSIC/SP. Он свободно доступен и работает в Microsoft Windows. Демонстрационная система также работает под Hercules.