В выпуске Fedora 42, намеченный на конец апреля, предложено разрешить сопровождающим включать в пакеты дополнительные варианты исполняемых файлов, собранные с включением оптимизаций для микроархитектур x86-64-v2, x86-64-v3 и x86-64-v4. Отмечается, что Fedora продолжает собирать пакеты для архитектуры x86-64-v1, в то время как CentOS использует при сборке архитектуру x86-64-v2, а RHEL 10 - x86-64-v3. В большинстве случаев прирост производительности при сборке для подобных архитектур не превышает 10%, но в отдельных ситуациях приводит к заметному повышению производительности (до 120%). Предложение пока не утверждено комитетом FESCo (Fedora Engineering Steering Committee), отвечающим за техническую часть разработки дистрибутива Fedora.

В Fedora уже допускается поставка дополнительных библиотек, оптимизированных для расширенных версий архитектуры x86_64, и подобную возможность теперь планируют распространить на исполняемые файлы. Загрузка оптимизированных реализаций библиотек осуществляется компоновщиком (dynamic linker), который проверяет наличие дополнительных вариантов в подкаталогах glibc-hwcaps, размещаемых в областях ФС, просматриваемых при поиске библиотек (например, /usr/lib64/glibc-hwcaps/x86-64-v2).

В случае исполняемых файлов предлагается использовать прослойку hwcaps-loader, которая будет выбирать и запускать вариант исполняемого файла, соответствующий возможностям текущей системы. Для пакетов, поставляющих несколько вариантов исполняемых файлов данную прослойку предлагается выставлять через символическую ссылку. Решение о добавлении дополнительно оптимизированных исполняемых файлов будут принимать сопровождающие, в зависимости от результатов тестирования производительности конкретных пакетов.

Версии x86-64-v* определяют неофициальный способ идентификации срезов состояния микроархитектуры, охватывающих определённые наборы расширений:

  • x86-64-v2 охватывает расширения SSE3, SSE4_2, SSSE3, POPCNT, LAHF-SAHF и CMPXCHG16B.
  • x86-64-v3 - AVX, AVX2, BMI2, FMA, LZCNT, MOVBE и SXSAVE.
  • x86-64-v4 - AVX512F, AVX512BW, AVX512CD, AVX512DQ и AVX512VL.

Дополнительно можно отметить предложение по унификации обновления загрузчиков grub и shim в атомарных и обычных вариантах Fedora. Вместо обновления содержимого каталогов /boot и /boot/efi через вызов скрипта во время установки rpm-пакета, для обновления загрузчика предлагается использовать инструментарий bootupd, который уже применяется в атомарно обновляемых вариантах Fedora. В rpm-пакетах с загрузчиками содержимое предлагается устанавливать не напрямую в каталоги /boot и /boot/efi, а в отдельный каталог внутри раздела /usr, после чего синхронизировать с ним содержимое /boot и /boot/efi. Подобный подход даст возможность реализовать запасной вариант загрузки, который можно использовать для отката к старой конфигурации в случае проблем после обновления загрузчика.

    • Minona
      link
      fedilink
      arrow-up
      0
      ·
      1 year ago

      Там кроме “RHEL and Co.” никто не нужен.

      • Oberstserj
        link
        fedilink
        arrow-up
        0
        ·
        1 year ago

        Где-то в сторонке хихикнул NixOS.

        • Minona
          link
          fedilink
          arrow-up
          0
          ·
          1 year ago

          Ну и пусть хихикает, он же роллинг.

          • Oberstserj
            link
            fedilink
            arrow-up
            0
            ·
            1 year ago

            он же роллинг.

            Ты уже пятый. Предыдущие четверо так и не смогли внятно сформулировать чем же это так плохо.

            А вовторых, прежде чем про это вообще говорить, посмотри как это реализовано в никсе. Разговоры отпадут сами собой.

            • Minona
              link
              fedilink
              arrow-up
              0
              ·
              1 year ago

              Никс хорош для упаковки приложений в контейнеры.

              • Oberstserj
                link
                fedilink
                arrow-up
                0
                ·
                1 year ago

                И все? Остальные фишки ты типа забыл. Удобненько.

          • odalist
            link
            fedilink
            arrow-up
            0
            ·
            1 year ago

            он же роллинг.

            Нет, не роллинг.

            • Oberstserj
              link
              fedilink
              arrow-up
              0
              ·
              1 year ago

              Никс не является ни чисто ролингом, ни версионным. Именно из-за организации самого дистра. Не говоря уже о системе боксов, где можно иметь одну софтину в разных версиях и запускать с разными библиотеками. Но @Minona даже почитать описание дистра не осилил.

              • odalist
                link
                fedilink
                arrow-up
                0
                ·
                1 year ago

                Никс не является ни чисто ролингом, ни версионным.

                Отлично объяснил. Спасибо.