Прошло два месяца активной работы над новой версией ядра, и сегодня Линус Торвальдс наконец-то представил ядро Linux 4.9. Наиболее заметными измерениями можно назвать инструменты для диагностики и блокирования переполнений стека ядра, а также включение поддержки SELinux в OverlayFS, плюс реализация шины Gerybus, чего хотелось многим.

Что касается статистики, то она, как всегда, обширна. В новой версии было принято 15 тысяч исправлений от 1400 разработчиков. Общий размер патча составляет 45 Мб. Изменения в патче затронули 11042 файлов, с добавлением 632157 строк кода и удалением 354728 строк. Не является сюрпризом и то, что большая часть (около 42%) представленных в этой версии изменений так либо иначе связаны с драйверами устройств. Еще 19% изменений связаны с обновлением кода для различных аппаратных архитектур, 12% — сетевой стек, 5% — файловые системы, 4% — подсистемы ядра.

Ну а теперь немного чуть подробнее о том, что же является значимыми изменениями в новой версии ядра.

Сетевая подсистема


  • Наконец-то в ядро добавлена реализация алгоритма контроля перегрузки TCP, который предложила корпорация Google. Речь идет о так называемом BBR (Bottleneck Bandwidth and RTT), который успешно применяется для того, чтобы сократить задержки передачи данных для трафика с таких ресурсов, как google.com и YouTube;
  • В netfilter был добавлен модуль генерации случайных чисел. Этот модуль рекомендуется использовать для выбора случайного назначения пакета, например, это может быть рэндомное распределение по очередям;
  • Представлен новый механизм настройки сетевого mesh-протокола B.A.T.M.A.N. («Better Approach To Mobile Adhoc Networking), реализованный на основе интерфейса netlink;
  • Плюс ко всему в netfilter добавили механизм „quota“, где реализованы байтовые квоты. В качестве примера можно привести возможность установки квоты в 100 Мб, где после того, как исчерпан лимит трафика для этого правила, действие самого правила прекратится.

Безопасность и виртуализация


  • Здесь, главным образом, нужно выделить добавление нескольких изменений с реализацией механизма виртуального маппинга стека ядра (CONFIG_VMAP_STACK), который предоставляет целый ряд инструментов для определения и блокирования переполнений стека. Все сказанное актуально для архитектуры х86. Новая возможность, скорее всего, станет проблемой для злоумышленников, которые планируют эксплуатировать уязвимости в ядре. Эти изменения позволяют сократить число операций по распределению памяти, повысить безопасность и реализовать различные средства для того, чтобы осуществить диагностику выхода за границы стека. Все это реализовано благодаря разработчикам, минимизировавшим задержку за счет оптимизаций и кэширования;
  • Для SELinux добавили поддержку многослойных файловых систем — это, в первую очередь, OverlayFS. Они используются для построения окружений в системах так называемой контейнерной изоляции;
  • Также реализованы такие системные вызовы, как pkey_alloc(), pkey_free() и pkey_mprotect(), где добавлена поддержка специфического механизма PKU (Memory Protection Keys for Userspace), который работает в будущих моделях процессоров Intel.

Системные сервисы и память


  • Здесь основным изменением является добавление подсистемы Greybus. Она разработана специально для того, чтобы обеспечить взаимодействие компонентов модульного смартфона Ara (да, про него не забыли!). Так вот, Greybus позволяет использовать внутреннюю шину для взаимодействия аппаратных компонентов, которые подключаются по мере необходимости. Здесь есть поддержка маршрутизации вызовов и приватного взаимодействия. А это позволяет двум компонентам взаимодействовать друг с другом в закрытом режиме. Возможно, энтузиасты проекта модульного смартфона теперь смогут продолжить работу;
  • Добавлен новый набор файлов в /sys/kernel/irq, где описывается состав таблицы обработчиков прерываний. Новый набор позиционируется, как замена /proc/interrupts;
  • Появилась опция CONFIG_DEBUG_TEST_DRIVER_REMOVE, которая позволяет протестировать работоспособность выгрузки драйвера устрйоства через выполнение цикла загрузки, выгрузки и повторной загрузкий драйвера на начальном этапе — инициализации устройства. Все это работает в автоматическом режиме;
  • Также разработчики продолжили развивать средства форматирования документации к ядру.

Файлы и диски


  • Модуль FUSE получил поддержку списков контроля доступа, которые соответствуют POCIX ACL;
  • В файловую систему XFS добавлена поддержка ряда общих экстентов, которые позволяют нескольким владельцам использовать совместно информацию о непрерывных областях данных. Эта возможность позволяет реализовать в XFS вызова copy_file_range() ;
  • Ну а в NFS-сервер разработчики добавили поддержку операции COPY, которая определена в спецификации NFS4.2 и позволяет выполнить копирование содержимого файла без перемещения информации от сервера к клиенту и обратно.

Аппаратное обеспечение


  • В драйвере AMDGPU появилась поддержка (пока экспериментальная) семейства GPU Southern Islands на базе микроархитектуры GCN 1.0. Добавлены инструменты для работы с виртуальными дисплеями;
  • Добавлена поддержка систем платформы Mellanox Technologies;
  • Также добавлена поддержка процессоров Loongson 1C;
  • Теперь поддерживаются контроллеры USB 3.0 Broadcom Northstar и контроллеров USB 2.0 Rockchip/Innosilicon.

Что же, спасибо Линусу и всему сообществу разработчиков — теперь ждем новых свершений, которые позволяют развивать Linux.
Поделиться с друзьями
-->

Комментарии (20)


  1. delvin-fil
    12.12.2016 04:04

    Уже собираю. Любопытно, как оно себя проявит.


  1. blabla
    12.12.2016 04:09

    Используем в продакшене BBR начиная с 4.8, скорость передачи заметно повышает.


  1. delvin-fil
    12.12.2016 04:28
    -16

    uptime 5 минут — полет нормальный


  1. moooV
    12.12.2016 05:52
    -22

    Совсем недавно 2.6.32 был, а тут уже 4.9. И всего-то пару лет прошло.

    image


    1. Diaskhan
      12.12.2016 06:11
      -4

      Фактически PHP 6 тоже не было, но как вы видите 7 работает нормально..


      Иногда разработчик пропускает номер версии, чтобы не отставать от конкурентов или других продуктов той же компании: например, Microsoft Access перепрыгнул сразу от 2.0 к 7.0. Netscape Communicator пропустил пятую версию, так как Internet Explorer добрался уже до 6.0; к тому же версию 5.0 в User-Agent’ах застолбили тестовые выпуски браузера Mozilla Suite.


      1. ls1
        12.12.2016 06:28
        +7

        Так пишете как будто третьей ветки ядра не было


      1. fear86
        12.12.2016 22:40

        6-й был, он просто в релиз не вышел.


    1. aso
      12.12.2016 11:02
      -1

      Май 14-го, LM-17 Qiana — ядро 3.13


  1. Corpsee
    12.12.2016 07:46
    -2

    до 2010го чуть больше, чем пара лет


  1. Shaz
    12.12.2016 08:14
    -3

    Они там нормальную поддержку сетевух от Intel так и не прикрутили еще?


  1. unixwz
    12.12.2016 09:03
    -2

    Не успеем оглянуться и уже скоро будет ядро 5-ой версии.


  1. delvin-fil
    12.12.2016 10:53
    -16

    Не любят Gentoo на хабре! Минусуют с остервенением :)
    Правильно! Не за что еее любить — гадость! И гентушники — красноглазики упоротые! :)


  1. k12th
    12.12.2016 11:15
    -1

    Greybus <...> модульного смартфона Ara

    Смартфона еще и в помине нет, а поддержку для него уже прикрутили?


    1. Am0ralist
      12.12.2016 18:25

      Хуже того, вроде бы как еще в сентябре гугл вообще закрыл этот проект.



    1. k12th
      14.12.2016 11:50

      Окей, окей, смартфон уже есть и поддержка для него — дело первоочередной важности! Только не минусите, пожалуйста:)


  1. Shaz
    12.12.2016 19:05
    +10

    Топик зла какой-то…


  1. robert_ayrapetyan
    12.12.2016 21:17
    -3

    А мой коммент никто не посмеет заминусить!


  1. fedor1113
    13.12.2016 23:31

    Хаброглюк… Не понимаю, как безобидная статья про релиз новой версии ядра Linux собрала такое… Это же у Microsoft "(don't) be evil". Кто-то ведь меня заминусует теперь, да?..


    1. ls1
      14.12.2016 06:28
      +4

      Хаброглюк
      В результате которого в комментах разверзся филиал LOR'а