Компания Oracle представила Solaris 11.4.81 CBE (Common Build Environment), вариант операционной системы Solaris 11.4, нацеленный на использование разработчиками открытого ПО и применение в персональных целях. CBE упрощает доступ к актуальным версиям программ и обновлениям для тех, кто желает использовать Solaris бесплатно. Это второй выпуск серии CBE – первый был опубликован в 2022 году. В отличие от основных сборок Solaris 11.4, лицензия на которые допускает бесплатное использование для тестирования, разработки и применения в персональных проектах, редакция CBE отличается задействованием непрерывной модели публикации новых версий и близка к редакции Solaris 11.4 SRU (Support Repository Update).
Сборка включает новые версии программ, расширенную функциональность и исправления ошибок, доступные на момент формирования выпуска. Для загрузки подготовлен отдельный iso-образ, а также предоставлена возможность перехода на использование CBE после установки обычных сборок Oracle Solaris 11.4. Для переключения на CBE достаточно подключить репозиторий pkg.oracle.com/solaris/release в пакетном менеджере IPS и выполнить команду “pkg update”. Код открытых компонентов Solaris доступен в репозитории на GitHub, а отдельные пакеты можно загрузить с сайта pkg.oracle.com.
Основные изменения по сравнению с прошлым выпуском CBE:
- Среда рабочего стола обновлена до GNOME 45 (раньше поставлялся GNOME 3.38). Внесены косметические изменения в интерфейс, например, индикатор “Обзор” (“Activities”) на рабочем столе заменён на индикатор виртуальных рабочих столов. X-сервер обновлён до ветки 1.20. Добавлены новые версии графических драйверов NVIDIA 470.182.
- Реализация протокола mDNS (Multicast DNS/Zeroconf) заменена на пакет Avahi 0.8. Ранее использовался специфичный для Solaris порт ПО Apple Bonjour.
- Системное окружение для языка Python помечено как самостоятельно управляемое (PEP 668), что не позволяет использовать pip и подобные утилиты для установки дополнительных Python-библиотек в каталоги, в которых размещаются Python-библиотеки, входящие в состав Solaris. Для установки дополнительных Python-пакетов в окружении, отделённом от системного, рекомендуется использовать утилиту pipx.
- Добавлена поддержка системных вызовов preadv и pwritev для чтения и записи данных с использованием нескольких буферов. В libc добавлены новые функции getpeereid, getumask, mremap, core_get_process_content, core_set_process_content, core_get_process_path, core_set_process_path и ucred_getprinc. Значение IOV_MAX (допустимое число элементов массива iovec для одного вызова) увеличено с 16 до 1024.
- В функции u8_strcmp и u8_textprep_str добавлена поддержка Unicode 14.
- В lastlog, utmpx и wtmpx решена проблема 2038 года – адресуемое счётчиком время расширено до 2106 года.
- Добавлена возможность определения настроек сервера SSH с разбивкой на отдельные файлы /etc/ssh/sshd_config.d/*.conf. Пакет OpenSSH обновлён до версии 9.6. Отключена поддержка RSA-подписей на базе SHA-1. Утилита scp переключена на использование SFTP.
- В утилиту ps добавлена опция “-I” для вывода времени в формате ISO 8601.
- В утилиту modinfo добавлена поддержка разделения штатных модулей ядра, поставляемых в Solaris, и отдельно установленных модулей. Для показа только несистемных модулей добавлена опция “-x”.
- В основной состав добавлены утилиты ctfconvert, ctfdump и ctfmerge для работы с отладочными данными в формате CTF (Compact Type Format), обеспечивающем компактное хранение сведений о Си-типах, связях между функциями и отладочных символах. В компоновщик ld встроена поддержка CTF. Добавлена поддержка версии CTF 3. Расширены возможности утилит elfcompress, ldiostat и strip.
- По умолчанию включён запуск процесса ACT (Autonomous Crash dump Tool), упрощающего разбор сбоев в ядре. В отладчик mdb добавлены дополнительные пути для поиска crash-дампов ядра. Расширены диагностические возможности утилиты iostat.
- В утилиты cp и mv добавлен флаг “-S” для сброса буферов на диск при помощи системного вызова fsync.
- Реализовано устройство /dev/full, при чтении выдающее нули, а при записи код ошибки об отсутствии свободного места (ENOSPC).
- В ZFS добавлена поддержка защиты файлов от удаления на определённый срок (File Retention). Для монтирования клонов в режиме clonedir в ZFS задействован каталог “.zfs/clone”. В команды mount/unmount добавлена опция “-r” для монтирования/отмонтирования всех ФС внутри указанной точки монтирования. В команде “zfs send” реализован режим “-w crypto” при котором шифрованные данные передаются без расшифровки. Настройки разделов подкачки и дампов перенесены из /etc/vfstab и /etc/dumpadm.conf в ZFS-свойства.
- Добавлен сервис memory-reserve, позволяющий при помощи механизма MRP (Memory Reservation Pool) во время загрузки зарезервировать память для последующего использования в OSM (Object Storage Manager).
- Добавлена поддержка live-миграции изолированных окружений Kernel Zone (KZ). В утилиту zoneadm добавлена команда “log” для просмотра содержимого логов, связанных с определённой изолированной зоной.
- Добавлен пакет Ansible для централизованного управления конфигураций.
- Обновлены версии программ для разработчиков: GCC 14, LLVM 19, Go 1.23.5, JDK 1.8.0_441-b7, Node.js 20, Perl 5.38, PHP 8.4, Python 3.13,
Ruby 3.13, Rust 1.78, autoconf 2.71, cmake 3.24, GNU make 4.4.1, meson 1.5.2, git 2.48.1, Mercurial 6.8, subversion 1.14.5, vim 9.1, GDB 15.1, ImageMagick 7, MySQL 8.4. - Обновлены версии GRUB 2.12, Shim 15.8, CUPS 2.4.11, OpenLDAP 2.6, Samba 4.21.3, Puppet 7.27.0.
- Добавлен пакет с DNS-сервером Unbound.
- В состав включены библиотеки zstd, pcaudiolib, bdw-gc, libadwaita, fmt, gcr-4, libpaper, libsoup-3, libuv, libyaml, espeak-ng и libxcvt.
- Вместо Snort для обнаружения и предотвращения сетевых вторжений предложено использовать систему Suricata (в Snort 3 задействован LuaJIT, не поддерживающий CPU SPARC).
- Удалены библиотеки gtk2, clutter, webkitgtk4, aalib, gtkmm, cogl, libtorrent.
- Удалены версии OpenSSL 1.0.2 и 1.1, осуществлён переход на OpenSSL 3.