LINUX.ORG.RU

Ядро Linux 4.5

 ,


1

3

В результате 2 месяцев работы и около 13 тысяч исправлений от примерно 1500 разработчиков вышла новая версия ядра Linux 4.5. Около 45% всех изменений связаны с драйверами устройств, примерно 17% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 14% связано с сетевым стеком, 4% — с файловыми системами и 3% — с внутренними подсистемами ядра.

Наиболее значимые и интересные новшества:

  • Добавлен новый системный вызов copy_file_range, позволяющий ускорить выполнение операций копирования данных из одного файла в другой файл с выполнением операции только на стороне ядра, без предварительного чтения данных в память процесса в пространстве пользователя, что избавляет от частого переключения контекста между ядром и пространством пользователя.
  • Для файловой системы Btrfs решены проблемы с масштабируемостью обработки свободного дискового пространства. Вместо использования кэша свободных блоков, становящегося узким местом на больших и нагруженных файловых системах (более 30 Тб), реализован новый экспериментальный метод представления кэша свободного дискового пространства, который лишен ограничений с масштабируемостью и не требует обновления после каждого изменения в ФС.
  • Для модуля dm-verity (device-mapper verity), предназначенный для проверки целостности хранимых блоков данных по криптографическим хэшам (например, используется для верификации загрузки в платформе Android), добавлена поддержка кодов прямой коррекции ошибок (FEC, Forwarded Error Correction, помехоустойчивое кодирование), которые позволяют не только выявить повреждения, но и восстановить исходное состояние блоков данных.
  • Для файловой системы ext4 реализована поддержка квот проектов («project quota»). Файлы могут быть привязаны к отдельным «проектам» для которых применяются иные квоты, отличающиеся от общих системных квот.
  • Проделана работа по оптимизации производительности работы режима SO_REUSEPORT для UDP-сокетов. Опция SO_REUSEPORT позволяет сразу нескольким слушающим сокетам подключиться к одному порту для приёма соединений с распределением поступающих запросов одновременно по всем подключенным через SO_REUSEPORT сокетам, что упрощает создание многопоточных серверных приложений.
  • В cgroup memory controller добавлена возможность учёта в едином пуле потребления памяти структурами данных, связанными с работой сокетов, анонимной памятью и кэше страниц памяти, позволяя учитывать состояние потребителей памяти в процессе распределения и лимитирования памяти в группе. Например, при нехватке памяти, может быть приостановлено выделение памяти на сетевые структуры.
  • Добавлена поддержка опции SOCK_DESTROY, позволяющей системному администратору принудительно закрыть TCP-соединение через интерфейс «netlink socket diag», инициируя операцию TCP ABORT с отправкой другой стороне RST-уведомления о завершении соединения.
  • В nftables добавлена поддержка перенаправления и дублирования пакетов netdev, например, для быстрого проброса пакетов с одного интерфейса на другой или между входным/выходным буфером одного интерфейса. Также добавлена поддержка изменения данных в пакете (mangling packet payload) с автоматической корректировкой контрольной суммы и возможность учёта в правилах счётчика байт или пакетов.
  • Обеспечена возможность сборки ядра в GCC 4.9+ с включённой опцией -fsanitize=undefined, активирующей отладочный режим UBSAN (Undefined Behavior Sanitizer) с реализацией детектора неопределенного поведения, добавляющего в скомпилированный код дополнительные проверки для выявления во время выполнения программы ситуаций, когда поведение программы становится неопределенным (зависит от реализации компилятора) из-за ошибки программиста.
  • В системный вызов madvise, предоставляющий средства для оптимизации управления памятью процесса, добавлена поддержка флага MADV_FREE, который дополняет уже имеющийся флаг MADV_DONTNEED, через который ядру можно загодя сообщить о готовящемся освобождении блока памяти, т.е. о том, что этот блок уже не нужен и может использоваться ядром.
  • В вызов epoll добавлена поддержка флага EPOLLEXCLUSIVE, решающего проблемы с масштабируемостью в многопоточных приложениях.
  • Интерфейс cgroup v2 переведён в разряд официально поддерживаемых и более не скрыт в категории экспериментальных разработок. В рамках cgroup v2 предлагается единая унифицированная иерархия cgroup (Cgroup unified hierarchy), пришедшая на смену гибкой, но не получившей практического применения, поддержке произвольного числа иерархий cgroup, определяющих применение правил к группам процессов (например, одна иерархия для распределения ресурсов CPU, а другая для регулирования потребления памяти).
  • Поддержка принудительной блокировки файлов (Mandatory file locking) переведена в разряд опциональных возможностей и требует явного включения в файле конфигурации. В будущем реализацию принудительной блокировки файлов планируется удалить из ядра.
  • Добавлена защита от приведения устройств с проблемными прошивками в нерабочее состояние после очистки конфигурации UEFI в результате удаления содержимого директории /sys/firmware/efi/efivars, например, после запуска «rm -rf /» под пользователем root. В новой версии ряд переменных в /sys/firmware/efi/efivars защищён от удаления.
  • В User-Mode Linux добавлена поддержка системного вызова seccomp().
  • В файл конфигурации ядра добавлена новая опция CONFIG_IO_STRICT_DEVMEM (отключена по умолчанию), позволяющая блокировать доступ к областям памяти /dev/mem, связанных с работой драйверов устройств.
  • Внесены улучшения в реализацию TPM/TPM2 (Trusted Platform Module).
  • В Smack добавлена проверка 'file receive', позволяющая определить права доступа к сокету в привязке к процессу, а не к i-node.
  • Возможность увеличения диапазона случайных значений, используемых при работе системы рандомизации адресного пространства (ASLR). Вместо заданных в коде значений параметры рандомизации теперь можно менять через /proc/sys/vm/mmap_rnd_bits и /proc/sys/vm/mmap_rnd_compat_bits, что может использоваться для усиления безопасности, но чревато проблемами с распределением больших блоков памяти.
  • Возможность лимитирования числа неименованных каналов (pipe), которые может создать один пользователь. Указанная возможность позволяет защититься от атак, в результате которых пользователь может израсходовать всю доступную память через открытие большого числа неименованных каналов, данные в которых остаются никогда не прочитаны.
  • В драйвер AMDGPU добавлена экспериментальная поддержка технологии динамического управления питанием Powerplay. Powerplay позволяет решить проблему с посредственной производительностью GPU Radeon в Linux, вызванную тем, что по умолчанию GPU запускается в режиме низкого энергопотребления, не позволяющего добиться максимальной производительности. Powerplay динамически отслеживает нагрузку на графическую подсистему и при необходимости повышает тактовую частоту GPU, переводя его в режим максимальной производительности. В настоящее время поддержка Powerplay реализована для GPU Tonga и Fiji, а также для интегрированных APU Carrizo и Stoney, использование нового драйвера AMDGPU с которыми демонстрирует существенное увеличение производительности. Из-за необходимости дополнительной стабилизации и тестирования кода режим Powerplay пока отключен по умолчанию, для включения следует передать ядру параметр «amdgpu.powerplay=1»;
  • Из драйвера Radeon полностью удалена поддержка переключения видеорежимов в пространстве пользователя (UMS), для управления видеорежимами теперь можно использовать только KMS.
  • Расширены возможности DRM-драйвера для видеокарт Intel: добавлена поддержка будущего поколения чипов Kabylake, идущего на смену Skylake.
  • Расширены возможности DRM-драйвера для видеокарт NVIDIA (Nouveau): представлена возможность изменения скорости для шины PCI Express.
  • Включена новая версия Media controller API, позволяющая улучшить поддержку расширенных устройств Video4Linux (например, радио и TV) и дающая возможность использовать функциональность мультимедиа контроллера в других подсистемах, таких как DVB, ALSA и IIO.
  • Обновлена реализация проекта по обеспечению создания универсальных многоплатформенных ARM-сборок, позволяющих использовать одну сборку ядра для загрузки на различных ARM-процессорах ARMv6 и ARMv7. В новой версии отмечается включение наработок по рефакторингу ARM-сборок и добавление новых подсистем для улучшения абстрагирования от особенностей каждой платформы.
  • Поддержка новых ARM-плат: Sigma Designs Tango4, Raspberry Pi 2 (BCM2836), Rockchip RK3228, Freescale LS1043a, LogicPD DM3730, Cosmic+ M4 (Freescale Vybrid).
  • Поддержка USB-контроллеров Mediatek MT65xx, Renesas USB3.0, Renesas R-Car 3 USB 2.0 PHYs, Hisilicon hi6220 USB PHYs.
  • Поддержка криптографических ускорителей Rockchip и Intel C3xxx, C3xxxvf, C62x, C62xvf.
  • Поддержка звуковых карт Imagination Technologies, звуковых сопроцессоров AMD и кодеков Cirrus Logic CS47L24, Rockchip rk3036 Inno, Dialog Semiconductor DA7217/DA7218, Texas Instruments pcm3168a, Realtec RT5616/5659.

Более полная новость на opennet

>>> Подробности (на английском языке)

★★★★★

Проверено: Klymedy ()
Последнее исправление: JB (всего исправлений: 4)
Ответ на: комментарий от Quasar

Можно. Только не поможет, потому что она никогда не запустится. Потому что все упадет где-то на этапе vkEnumerateInstanceExtensionProperties - vkCreateInstance

anonymous
()
Ответ на: комментарий от anonymous

Это не говоря уже о том, что падать будет на одной из тысячи строк супротив одной из 5. По-сути в пукане мы получили все минусы OpenGL (обязательные баги, несоответствие спецификации, куча упоротого бойлерплейта) в стократном размере.

anonymous
()
Ответ на: комментарий от anonymous

Только если в опенгле баги были на этапе отрисовки, то здесь фейл уже на этапе создания контекста.

anonymous
()

Когда обновиться то можно будет?

hotpil ★★★★
()
Ответ на: комментарий от anonymous

Ну и нефиг на невидии тестировать. Невидия даже в OpenGL нормально до сих пор не умеет.

Quasar ★★★★★
()
Ответ на: комментарий от mix_mix

Мда.

ну, надо же фс-девелоперам зарплаты свои как-то обосновывать...

anonymous
()
Ответ на: комментарий от fehhner

Интересно, когда на арчик прилетит...

Вчера прилетело .

uname -a

Linux arch 4.5.0-1-ARCH #1 SMP PREEMPT Tue Mar 15 09:41:03 CET 2016 x86_64 GNU/Linux

anonymous
()
Ответ на: комментарий от anonymous

Интересно, когда на арчик прилетит...

Вчера прилетело .

А где ты его брал, если не секрет?

%uname -r    
4.4.5-1-ARCH

% yaourt -Syua
:: Обновление баз данных пакетов...
 core не устарел
 extra не устарел
 community не устарел
 archlinuxfr не устарел
 multilib не устарел
 Другие пакеты: \ 31 / 31

fehhner ★★★★★
()
Ответ на: комментарий от anonymous

Testing раскоментируй в pacman.conf

Там не только ядро, но и куча другого полно. Часто ломается, если с тестинга обновляться?)

fehhner ★★★★★
()
Ответ на: комментарий от anonymous

Счас нет столько времени новые баги ловить и репортить, подожду офф релиза в общем(

fehhner ★★★★★
()
Ответ на: комментарий от BattleCoder

Градусы - это утекающее время жизни заряда батарейки

rmu ★★
()
Ответ на: комментарий от vurdalak

Проиграли все. Потому что защищать этот файл должно само устройство, а не ядро.

Точно. Жесточайшее ограничение свободы админа. Если он не может удалить файл - то он не имеет над ним власти, т.е. он уже не админ, а просто «продвинутый юзер».

drfaust ★★★★★
()
Ответ на: комментарий от fehhner

Часто ломается, если с тестинга обновляться?)

Уже год (или больше) на тестинге. Конкретно из-за тестинга не ломалось ничего, но держу lts ядро на всякий случай.

Deleted
()
Ответ на: комментарий от Deleted

Уже год (или больше) на тестинге. Конкретно из-за тестинга не ломалось ничего, но держу lts ядро на всякий случай.

Хмм, стоит попробовать тогда.

fehhner ★★★★★
()
Ответ на: комментарий от vurdalak

Почему-то из-под винды его стереть не получается...

// Дальше тред лень читать

kas501 ★★★
()

Мужики! Если здесь есть арчеводы, просветите, плиз! Если 15-го марта ядро 4.5 только появилось в репозитории «testing», когда примерно его ждать в core?

matumba ★★★★★
()
Ответ на: комментарий от anonymous

Пацан

Давно не пацан.

а ты раскомментируй тестинг и обнови только ядро. Очевидно же.

Если только разово так сделать и закомментировать сходу, чёт сразу не подумал. Иначе нет смысла - устану потом пакеты до актуальных обновлять и следить за версиями вручную.

fehhner ★★★★★
()
Ответ на: комментарий от fehhner

Там возможно ещё сопутствующие ядру пакеты можно обновить будет из тестинга. Ну например всякие btrfs/f2fs-tool... Но не критично.

anonymous
()
Ответ на: комментарий от anonymous

Там возможно ещё сопутствующие ядру пакеты можно обновить будет из тестинга. Ну например всякие btrfs/f2fs-tool... Но не критично.

Ага, обновил ксорг ещё и завелось ядро новое)
На моём радике плазма наконец научилась включать дополнительный монитор без ребута с этим ядром и ксоргом, что я считаю очень существенным прогрессом (раньше нужно было ребутнуться и держать монитор воткнутым заранее для норм работы). А вот выключать - нет, то панель пропадёт после этого, то весь рабочий стол (кроме окон), чёрный. Если прибить и запустить плазму - всё снова в порядке, на одном экране, как и надо. Но это конечно не то поведение, которого хотелось бы - видеть лаги и перезапускать плазму при отключении монитора, чтобы привести в порядок.

fehhner ★★★★★
()
Ответ на: комментарий от fehhner

Пацан

Давно не пацан.

Значит жлоб, потому-что следующий возрастной этап — стареющий пацан — типа жлоб.

anonymous
()
Ответ на: комментарий от i-rinat

шансов, что firmware будут чинить, вообще нет.

Шансы всегда есть. Вот пойдет под виндами эпидемия вируса, окирпичивающего комп. Тогда сразу починят.

anonymous
()

Они уже научились переводить ноуты в сон нормально? До сих пор мой самсунг через раз уходит в сон и дважды просыпается.

skvitek ★★★
()

Нетбук перестал засыпать крышкой, тля.

anonymous
()
Ответ на: комментарий от moooV

Хорошего от копрораций не жди, радуся что хоть дрова десктопные пилят.

anonymous
()
Ответ на: комментарий от anonymous

Пацаны шлют код в швабодные драйвера, мужики сидят с блобом. Дальше сам понимаешь.

anonymous
()
Ответ на: комментарий от anonymous

PCI-E это point-to-point шина, для каждого устройства может быть своя скрость или вообще линк может быть отключен для экономии энергии.

anonymous
()
Ответ на: комментарий от anonymous

Пацан, а ты...

Значит жлоб, потому-что следующий возрастной этап — стареющий пацан — типа жлоб.

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

fehhner ★★★★★
()
Ответ на: комментарий от i-rinat

Потому что система не должна приходить в состояние полной неработоспособности от удаления каких-то настроек.

Ты про железку или софт? Если про железку, то тут весьма печальное настоящее.
По крайней мере на девайсах Bay/Cherry Trail стали применять микросхемы bios, настройки которого сохраняются в этой самой бивосовой микросхеме. Внешнего сброса не предусмотрено, только из самого bios. Пользователь наковырявший «чего то там в настройках» после нажатия F10 получает кирпич окончательно и сразу. Почитай отзывы например на 4PDA, там таких пострадальцев становится все больше и больше.

anonymous
()

Расширены возможности DRM-драйвера для видеокарт Intel: добавлена поддержка будущего поколения чипов Kabylake, идущего на смену Skylake.

Кто в курсе допилили ли наконец в этой версии ядра поддержку управления питанием в Bay Trail/Cherry Trail?
Если Intel не сподабливается поддерживать свои сегодняшние SOC какая тут нафиг «поддержка будущего поколения чипов»...

anonymous
()

по-умолчанию GPU запускается в режиме низкого энергопотребления

А нет опции его сразу после инициализации перевести в режим максимальной производительности, да так и оставить?

Sectoid ★★★★★
()
Ответ на: Уууууу от PitStop

Поддерживаю, с 2.6.28 пошла бездуховность. А после перехода на 3 я вообще перестал за этим всем следить.

moooV
()
Ответ на: комментарий от lagavulin16

Знаю точно, что туда много чего бэкпортируют. Ищи в чейнджлогах то, что тебе надо если что.

Gonzo ★★★★★
()

В ляликсе как всегда, либо экспериментальное, либо толком не работает

anonymous
()
Ответ на: Уууууу от PitStop

Ипать я старый. На 4.х даже не сидел, а вот 2.0.х помню отлично.

А может у тебя Pentium 4. Сидя у старого железа такое можно легко говорить. У кого новый процессор и материнская плата тем, самый свежий релиз нужен.

* Причина перехода на 3-ю версию был в связан с принятием новой нумерации. А именно x.x.x
* Переход на 4-ю версию связан с желанием линуксоидов побыстрее увидеть «ядро теминатора». Оправдать переход на 4-ю версию могу так: «Линуксоиды тоже люди, которые имеют свои слабости». Как ни крути фильм каноничный, и среди линуксоидов популярный.

anonymous
()

мне SO_REUSEPORT для UDP нравится. мне он пригодится. правда, пока ещё дебиан докондыбает до 4-го ядра... а в продакшене именно он.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от skvitek

Ну так тут ситуация как с OS X, ибо нормальная поддержка железа большинства ноутов есть только у венды. Но вот только у OS X официальная позиция, что плевать на не свои ноуты. А в линуксах как бэ все поддерживаем в теории, а по факту и близко нет, поэтому ноутбуки надо подбирать правильно.

Вот samsung не выпускает вроде ни одного ноута с линуксом.

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 1)
Ответ на: комментарий от fornlr

нормальная поддержка железа большинства ноутов есть только у венды

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

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.