UNIX System Services
UNIX System Services (USS) — это компонент операционной системы z/OS (ранее OS/390 и MVS/ESA), предоставляющий среду, совместимую с UNIX, для запуска приложений и выполнения команд, характерных для операционных систем семейства UNIX. USS реализует спецификации POSIX (Portable Operating System Interface) и XPG (X/Open Portability Guide), позволяя программам, написанным для UNIX, работать на мейнфреймах IBM без существенных изменений. В контексте z/OS USS является не отдельной операционной системой, а подсистемой, интегрированной в основную среду MVS (Multiple Virtual Storage).
История
Разработка UNIX System Services началась в конце 1980-х годов как часть проекта IBM по внедрению UNIX-совместимости в операционные системы для мейнфреймов. Первая версия, называвшаяся OpenEdition MVS, была выпущена в 1993 году для MVS/ESA SP 4.3. Основной целью было обеспечение переносимости приложений UNIX на платформу z/Architecture, которая доминировала в корпоративных вычислениях. В 1996 году, с выходом OS/390, компонент был переименован в UNIX System Services. Название «UNIX» используется по лицензии The Open Group, которая сертифицирует соответствие стандарту Single UNIX Specification.
С момента появления USS прошёл несколько этапов модернизации, включая поддержку 64-битной адресации, улучшенную работу с файловыми системами (zFS — z/OS File System) и интеграцию с другими компонентами z/OS, такими как CICS (Customer Information Control System) и IMS (Information Management System).
Архитектура и интеграция
USS функционирует как подсистема в рамках z/OS, используя единое ядро MVS. Это означает, что процессы UNIX и традиционные задачи MVS (например, пакетные задания JCL) могут сосуществовать и взаимодействовать через общие ресурсы, такие как память, диски и устройства ввода-вывода. Ключевые особенности архитектуры:
- Единое адресное пространство: USS-процессы выполняются в адресных пространствах MVS, что обеспечивает прямой доступ к данным и системным вызовам z/OS.
- Файловая система: USS использует иерархическую файловую систему (HFS) или более современную zFS, которая поддерживает длинные имена файлов, права доступа (аналогично UNIX) и символические ссылки. Эти файловые системы могут быть смонтированы в корневую директорию USS.
- Системные вызовы: USS реализует более 1000 системных вызовов POSIX, включая fork(), exec(), open(), read(), write(), а также сигналы, семафоры и разделяемую память.
- Безопасность: USS интегрирован с системой безопасности z/OS — RACF (Resource Access Control Facility) или её аналогами (Top Secret, ACF2). Пользователи и группы UNIX отображаются на профили RACF, что позволяет применять единые политики доступа.
Ключевые компоненты
Командная оболочка (shell)
USS предоставляет несколько командных оболочек, совместимых с UNIX:
- Bourne Shell (sh) — базовая оболочка для выполнения скриптов.
- Korn Shell (ksh) — расширенная оболочка с поддержкой истории команд и редактирования строки.
- C Shell (csh) — оболочка с синтаксисом, похожим на язык C.
- Bash (bash) — доступна как дополнительный продукт (например, bash для z/OS).
Утилиты и команды
USS включает стандартные утилиты UNIX, такие как:
- ls, cp, mv, rm, chmod, chown — для работы с файлами.
- ps, kill, top — для управления процессами.
- grep, awk, sed — для обработки текста.
- find, tar, gzip — для архивации и поиска.
- vi, emacs — текстовые редакторы.
Программные интерфейсы
USS поддерживает:
- POSIX Threads (pthreads) — для многопоточного программирования.
- Сокеты (Berkeley Sockets) — для сетевого взаимодействия (TCP/IP).
- IPC (Inter-Process Communication) — очереди сообщений, семафоры, разделяемая память.
- C Runtime Library — стандартная библиотека языка C, расширенная для z/OS.
Применение
UNIX System Services широко используется в корпоративных средах, где требуется сочетание надёжности мейнфреймов и гибкости UNIX. Основные области применения:
- Перенос приложений: Многие коммерческие и открытые программы, написанные для Linux или других UNIX-систем, могут быть скомпилированы и запущены на USS. Примеры: веб-серверы (Apache HTTP Server), базы данных (DB2, Oracle), интерпретаторы языков (Python, Perl, PHP).
- Автоматизация и скриптинг: Администраторы используют shell-скрипты для автоматизации задач управления z/OS, таких как резервное копирование, мониторинг логов и запуск пакетных заданий.
- Разработка и отладка: USS предоставляет среду для разработки программ на C/C++, Java и других языках с использованием стандартных инструментов (make, gcc, gdb).
- Интеграция с другими системами: USS позволяет мейнфреймам взаимодействовать с UNIX-серверами и рабочими станциями через протоколы NFS, SSH, FTP и HTTP.
Сравнение с другими UNIX-средами
USS отличается от классических UNIX-систем (например, Linux, AIX, Solaris) следующими особенностями:
- Интеграция с MVS: В отличие от Linux на мейнфрейме (z/Linux), USS не является отдельной ОС, а работает как подсистема z/OS. Это обеспечивает прямой доступ к ресурсам MVS, таким как очереди сообщений JES (Job Entry Subsystem) и базы данных VSAM.
- Производительность: USS использует аппаратные возможности z/Architecture (например, криптографические ускорители, каналы ввода-вывода) для достижения высокой пропускной способности.
- Ограничения: Некоторые расширенные функции UNIX (например, поддержка всех типов файловых систем, таких как ext4 или XFS) отсутствуют. Кроме того, USS не поддерживает многозадачность в стиле UNIX с полным вытеснением — планирование процессов осуществляется ядром MVS.
Интересные факты
- USS является одним из немногих примеров реализации UNIX-совместимости на мейнфреймах, которая сохраняет обратную совместимость с приложениями, написанными для MVS.
- В 2020 году IBM объявила о поддержке контейнеризации в USS через Docker для z/OS, что позволило запускать контейнеры с приложениями Linux на мейнфреймах.
- USS сертифицирован The Open Group как UNIX-система, что даёт право использовать торговую марку «UNIX» (на момент написания статьи — 2025 год, статус сертификации может меняться).
Источники
- IBM z/OS UNIX System Services User's Guide (SA23-2279-xx)
- IBM z/OS UNIX System Services Planning (GA32-0884-xx)
- The Open Group — UNIX Certification
- «z/OS UNIX System Services: A Guide for System Programmers» — IBM Redbooks (SG24-7800-xx)
- Стандарт POSIX.1-2017 (IEEE Std 1003.1)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →