Новое ядро Linux 4.6

Обсудить

15 мая 2016 года Линус Торвальдс презентовал новое ядро Линукса – Linux Kernel 4.6. Работа над ним велась в течение двух месяцев, и в результате ядро обладает некоторыми значительными нововведениями.

Нововведения

Как и всегда при выпуске новых версий разработчики в первую очередь исправили найденные в предыдущих релизах ошибки – набралось около 12 тысяч исправлений, в процессе отладки которых поучаствовало 15 тысяч программистов. В итоге были изменены 9990 файлов, а размер патча составляет 37 Мбайт. Большое внимание было направлено на драйверы устройств – их затрагивает примерно 46% от количества всех изменений. Остальные перемены коснулись кода, связанного с аппаратными архитектурами (20%), соединения сетевых коммутаторов (12%), файловых систем (5%) и внутренних подсистем ядра (4%). Появилось более 500 тысяч строк кода, при этом чуть меньше 250 тысяч строк были удалены.

Распределенная файловая система OrangeFS является закономерным продолжением проекта Parallel Virtual file System (PVFS). OrangeFS показывает высокие результаты, если использовать ее для работы с большим объемом данных; она в целом рассматривается как система для high-end-серверов и кластеров. Иными словами, эта файловая система обеспечивает максимальную производительность во время работы с HPC, потоковой медиа-информацией и при решении задач, касающихся молекулярной генетики и биоинформатики.

Linux 4.6 поддерживает пятую версию B.A.T.M.A.N. («Better Approach To Mobile Adhoc Networking) – этот протокол маршрутизации позволяет узлам передавать друг другу пакеты по динамически создаваемым маршрутам. Протокол OGM имеет теперь две части: OGMv2 отвечает за распространение метрик по сети и определение наиболее оптимальных маршрутов, а ELP (Echo Location Protocol) – за обнаружение соседних узлов и анализ качества линка.

Подсистема Kernel Connection Multiplexor (KCM) теперь отвечает за эффективную работу с получением и отправлением сообщений по TCP, используя интерфейс датаграммам.

Изменения коснулись и файловой системы OCFS2 (Oracle Cluster File System): в нее была внедрена система проверки целостности файлов. Благодаря ей работа файловой системы будет продолжена даже при возникновении определенных сбоев.
Что касается сервера NFSv4.1, то теперь в нем есть раскладка pNFS SCSI, которая позволяет использовать команды SCSI для более хорошей изоляции и идентификации устройства.

64-битная журналируемая файловая система XFS теперь имеет новую функцию ioctl под названием Q_XGETNEXTQUOTA, которая отвечает за управление квотами. А в файловой системе Ext4 изменилась реализация кэша mbcache, благодаря чему улучшилась масштабируемость xattr. Наконец, в сборку ядра для FAT была введена опция CONFIG_FAT_DEFAULT_UTF8, она по умолчанию включает кодировку UTF-8 при монтировании разделов с FAT.

Также новая версия ядра Linux поддерживает протокол SuperSpeedPlus, благодаря которому данные можно передавать со скоростью до 10 Гбит/с (если подключить внешний накопитель USB версии 3.1 Gen2).

Возможность изменять какие-либо сетевые параметры для определенного класса устройств теперь также присутствует в ядре Linux 4.6.

Благодаря внедрению LCO (Local Checksum Offload) значительно повысилась скорость выполнения операций расчёта контрольных сумм пакетов для туннелированных протоколов.

А открытые в режиме TCP_INFO сокеты теперь поддерживают RFC-4898 и две новых опции tcpi_min_rtt и tcpi_notsent_bytes, которые показывают минимальный RTT для потока и размер очереди данных, которые еще не отправлены.

Значение параметра max_inline в файловой системе B-tree FS было изменено на 2 Кб (ранее оно составляло 4 Кб). Также теперь появилась новая возможность монтировать при помощи опции nologreplay: ведение лога replay препятствует изменению данных в файловой системе. Что касается опции recovery, то она была заменена опцией монтирования под названием usebackuproot.

Новый добавленный в ядро поток ядра oom_reaper отвечает за решение проблемы задержки высвобождения памяти, если вы принудительно завершаете какие-либо процессы, когда существует нехватка памяти. Код OOM killer стал более надежным: специализированный поток возвращает системе память завершающегося процесса, так как ему она уже не понадобится.

Более экономичные режимы энергосбережения теперь доступны благодаря поддержке управления питанием хост-контроллера AHCI: если все SATA-порты перешли в режим сна, то подача энергии на контроллер прекращается.

Подсистема perf была значительно переработана, а ее возможности расширены.

Опция irqaffinity=, которая появилась в Linux 4.6, ограничивает число ядер CPU для обработки прерываний, то есть если вы выделите процессор для выполнения определенной задачи, прерывания на обработку прерываний производиться не будут.

Важным моментом является появление Intel MPK (Memory Protection Keys) – поддержки механизма ключей защиты памяти. Благодаря этому механизму вы можете разделить память, которую используете, на отдельные зоны и к каждой из них применить какие-либо ограничения.

Теперь алгоритм GCM-AES-128 используется для шифрования трафика в локальной сети. Это стало возможно благодаря шифрованию на уровне MAC (MACsec) в Ethernet – возможность предусмотрена стандартом IEEE 802.1AE. Таким образом, стал трафик DHCP и VLAN защищен от перехвата.

Естественно, это далеко не все нововведения, которые коснулись новой версии ядра Линукс. Про остальные изменения вы можете прочитать в статье по этой ссылке: http://kernelnewbies.org/Linux_4.6

Как установить новую версию ядра в Ubuntu

Обращаю ваше внимание, что ядро – это жизненно важный компонент операционной системы, и его обновление может привести к каким-либо неожиданным последствиям. Поэтому без необходимости не устанавливайте новую версию ядра.

Для начала следует проверить, какая версия ядра у вас сейчас используется. Для этого вам нужно выполнить следующую команду:

$ uname –r

Для более полной выдачи информации вы можете набрать в командной строке:

$ uname –mrs

или

$ uname -a

Последняя команда выводит вообще всю информацию, из которой вы сможете узнать, например, о версии ядра (к примеру, 3.11.4-201), разрядности операционной системы (x86_64 – 64-битная) и о некоторых других параметрах.

Перед обновлением самого ядра рекомендуется выполнить обновление системы до соответствующей ветки (branch):

$ sudo apt-get dist-upgrade

Теперь перейдем к обновлению версии самого ядра – для этого вам необходимо использовать утилиту update-kernel, получить и установить которую вы можете при помощи следующих команд:

$ sudo apt-get update
$ sudo apt-get install update-kernel
$ sudo update-kernel

После установки новой версии ядра обратите внимание на модули: устанавливайте новые модули ядра только после обновления ядра до соответствующей версии. Поэтому правильный порядок действий: сначала обновите версию ядра, а затем устанавливайте модули, которые вам нужны.

Теперь необходимо обновить загрузчик ядра:

$ sudo update-grub

После перезагрузки компьютера необходимо снова выполнить команду uname , чтобы убедиться, что ядро обновлено до новой версии.

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

VDS/VPS

Комментарии