Компания Red Hat представила первую бета-версию дистрибутива Red Hat Enterprise Linux 8. Готовые установочные образы публично доступны для архитектур x86_64, s390x (IBM System z), ppc64le и Aarch64 (ARM64). Исходные тексты rpm-пакетов Red Hat Enterprise Linux 8 доступны через Git-репозиторий CentOS. Релиз ожидается в первой половине следующего года.

В качестве основы для построения новой ветки использованы технологии, входящие в состав Fedora 28. Новая ветка примечательна переходом по умолчанию на Wayland, заменой iptables на nftables, обновлением базовых компонентов (ядро 4.18, GCC 8), применением пакетного менеджера DNF вместо YUM, использованием модульного репозитория, прекращением поддержки KDE и Btrfs.

Ключевые изменения:

  • Осуществлён переход на пакетный менеджер DNF с предоставлением прослойки для совместимости с Yum на уровне опций командной строки. По сравнению с Yum, DNF обладает заметно более высокой скоростью работы и низким потреблением памяти, более качественно управляет зависимостями и поддерживает группировку пакетов в модули;
  • Разделение на базовый репозиторий BaseOS и модульный репозиторий AppStream. В BaseOS распространяется минимальный необходимый для работы системы набор пакетов, всё остальное перенесено в репозиторий AppStream. AppStream можно использовать в двух вариантах: как классический RPM-репозиторий и как репозиторий в модульном формате.

    Модульный репозиторий предлагает сгруппированные в модули наборы rpm-пакетов, поддержка которых осуществляется независимо от релизов дистрибутива. Модули можно использовать для установки альтернативных версий определённого приложения (например, можно установить PostgreSQL 9.6 или PostgreSQL 10). Модульная организация позволяет пользователю переходить на новые значительные выпуски приложения не дожидаясь нового релиза дистрибутива и оставаться на старых, но ещё поддерживаемых, версиях после обновления дистрибутива. Модули включают базовое приложение и необходимые для его работы библиотеки (в качестве зависимости могут использоваться другие модули);

  • В качестве рабочего стола по умолчанию предлагается GNOME 3.28 с применением по умолчанию дисплейного сервера на базе Wayland. Окружение на базе X.Org Server доступно в качестве опции. Из состава исключены пакеты с рабочим столом KDE, оставлена только поддержка GNOME;
  • Пакет с ядром Linux построен на базе выпуска 4.18. В качестве компилятора по умолчанию задействован GCC 8.2. Системная библиотека Glibc обновлена до выпуска 2.28.
  • В качестве реализации языка программирования Python по умолчанию задействован Python 3.6. Предоставлена ограниченная поддержка Python 2.7. В базовую поставку Python не входит, его нужно устанавливать дополнительно. Обновлены версии Ruby 2.5, PHP 7.2, Perl 5.26. В состав включена система сборки CMake (3.11);
  • В инсталлятор Anaconda добавлена поддержка установки системы на накопители NVDIMM;
  • В инсталлятор и систему добавлена возможность шифрования дисков с использованием формата LUKS2, который заменил собой ранее применяемый формат LUKS1 (в dm-crypt и cryptsetup LUKS2 теперь предлагается по умолчанию). LUKS2 примечателен упрощённой системой управления ключами, возможностью использования секторов большого размера (4096 вместо 512, снижает нагрузку при расшифровке), символьными идентификаторами разделов (label) и средствами резервирования метаданных с возможностью их автоматического восстановления из копии в случае выявления повреждения.
  • Добавлена новая утилита Composer, предоставляющая инструменты для создания кастомизированных загрузочных системных образов, пригодных для развёртывания в окружениях различных облачных платформ;
  • Удалена поддержка файловой системы Btrfs. В состав больше не входят модуль ядра btrfs.ko, утилиты btrfs-progs и пакет snapper;
  • В состав включён инструментарий Stratis, предоставляющий средства для унификации и упрощения настройки и управления пулом из одного или нескольких локальных накопителей. Stratis реализован в виде слоя (демон stratisd), построенного поверх подсистемы devicemapper и XFS, и позволяет использовать такие возможности как динамическое выделение места в хранилище, снапшоты, обеспечение целостности и создание слоёв для кэширования, без наличия квалификации эксперта по администрированию систем хранения;
  • Реализованы общесистемные политики настройки криптографических подсистем, охватывающие протоколы TLS, IPSec, SSH, DNSSec и Kerberos. При помощи команды update-crypto-policies теперь можно выбрать один из
    режимов выбора криптоалгоритмов: default, legacy, future и fips. По умолчанию задействован выпуск OpenSSL 1.1.1 с поддержкой TLS 1.3;

  • Обеспечена общесистемная поддержка смарткарт и HSM (Hardware Security Modules) c криптографическими токенами PKCS#11;
  • На смену iptables, ip6tables, arptables и ebtables пришёл пакетный фильтр nftables, который теперь применяется по умолчанию и примечателен унификацией интерфейсов фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов. Nftables предоставляет на уровне ядра лишь общий интерфейс, не зависящий от конкретного протокола и предоставляющий базовые функции извлечения данных из пакетов, выполнения операций с данными и управления потоком. Непосредственно логика фильтрации и специфичные для протоколов обработчики компилируются в байткод в пространстве пользователя, после чего данный байткод загружается в ядро при помощи интерфейса Netlink и выполняется в специальной виртуальной машине, напоминающей BPF (Berkeley Packet Filters). Демон firewalld переведён на использование nftables в качестве бэкенда по умолчанию. Для преобразования старых правил добавлены утилиты iptables-translate и ip6tables-translate;
  • Для обеспечения сетевой связи между несколькими контейнерами добавлена поддержка драйверов для построения виртуальной сети IPVLAN;
  • В базовую поставку включён http-сервер nginx (1.14). Apache httpd обновлён до версии 2.4.35, а OpenSSH до 7.8p1.

    Из СУБД в репозиториях доступны MySQL 8.0, MariaDB 10.3, PostgreSQL 9.6/10 и Redis 4.0. СУБД MongoDB не вошла в состав из-за перехода на новую лицензию SSPL, которая пока не признана открытой;

  • Модернизированы компоненты для виртуализации. По умолчанию при создании виртуальных машин используется тип Q35 (эмуляция чипсета ICH9) с поддержкой PCI Express. Для создания и управления виртуальными машинами теперь можно использовать web-интерфейс Cockpit. Интерфейс virt-manager объявлен устаревшим. QEMU обновлён до версии 2.12. В QEMU реализован режим sandbox-изоляции, ограничивающий системные вызовы, которые могут использовать компоненты QEMU;
  • Добавлена поддержка механизмов трассировки на базе eBPF, в том числе при помощи инструментария SystemTap (4.0). В состав включены утилиты для сборки и загрузки BPF-программ;
  • Добавлена экспериментальная поддержка подсистемы XDP (eXpress Data Path), позволяющей в Linux запускать BPF-программы на уровне сетевого драйвера с возможностью прямого доступа к DMA-буферу пакетов и на стадии до выделения буфера skbuff сетевым стеком;
  • В состав добавлена утилита boom для управления настройками загрузчика. Boom упрощает выполнение таких операций как создание новых загрузочных записей, например, при необходимости загрузки со LVM-снапшота. Boom ограничен только добавлением новых загрузочных записей и не может применяться для изменения уже существующих;
  • Интегрирован легковесный инструментарий для управления изолированными контейнерами, использующий для сборки контейнеров Buildah, для запуска – Podman и для поиска готовых образов – Skopeo;
  • Расширены возможности, связанные с кластеризацией. Менеджер кластерных ресурсов Pacemaker обновлён до версии 2.0. В утилите pcs обеспечена полная поддержка Corosync 3, knet и обращения по именам узлов;
  • Объявлены устаревшими и теперь не поставляются по умолчанию классические скрипты для настройки сети (network-scripts). Для обеспечения обратной совместимости вместо скриптов ifup и ifdown добавлены обвязки над NetworkManager, работающие через утилиту nmcli;
  • Удалены пакеты: crypto-utils, cvs, dmraid, empathy, finger, gnote, gstreamer, ImageMagick, mgetty, phonon, pm-utils, rdist, ntp (заменн на chrony), qemu (заменён на qemu-kvm), qt (заменён на qt5-qt), rsh, rt, rubygems (теперь входит в основной пакет ruby), system-config-firewall, tcp_wrappers, wxGTK.