Какво ново предлага Linux ядрото версия 5.2
След два месеца създаване Линус Торвалдс показа Linux Kernel 5.2. Сред най-важните промени в новото Linux ядро можем да изброим режимът на работа на файловата система Ext4 без да се регистрират основните и дребните букви, отделените систематични извиквания за монтиране на файлова система, драйверите за GPU Mali 4xx/ 6xx/7xx, опцията за култивиране промените смисъла на sysctl в BPF стратегиите, device-mapper модула dm-dust, отбраната от MDS офанзивите, поддръжката на Sound Open Firmware за DSP, усъвършенстваната продуктивност на BFQ, опцията за потреблението на PSI (Pressure Stall Information) в Оценка за съвместимост Android и други.
В новата версия на Linux ядрото са направени 15100 промени на сорс кода, осъществени от 1882 разработчика. Размерът на пача е 62 MB : измененията са засегнали 30889 файла, добавени са нови 625094 реда сорс код, отстранени са 531864 реда код. Около 45% от всички показани в Linux Kernel 5.2 промени са свързани с драйверите за другите устройства, към 21% са измененията за характерен хардуер и нови архитектури, 12% са свързани с мрежовия стек, 3% – с файловите системи и още 3% – с вътрешните подсистеми на ядрото. 12,4% от всички промени са осъществени от Intel, 6.3% – Red Hat, 5.4% – Гугъл, 4.0% – AMD, 3.1% – SUSE, 3% – IBM, 2.7% – Huawei, 2.7% – Linaro, 2.2% – ARM, 1.6% – Oracle.
Основните нововъведения в Linux ядрото версия 5.2Дискова подсистема, вход/изход, файлови системи:За Ext4 е добавена поддръжката на работа без значение регистъра на знаците в имената на файловете. Тази алтернатива може да се задейства единствено при празните папки, тъй като няма по какъв начин в една из съща директория да бъдат разпознати двата режима на работа – с различаване и без различаване на основните и дребните букви. Активирането на новия режим става с атрибута „+F“ (EXT4_CASEFOLD_FL). В този режим, системата не се преценява с регистъра: файловете Test.txt, test.txt и test.TXT се смятат за идентични в тези папки. По подразбиране файловата система се преценява с горния и долния указател на знаците, като се изключи досиетата, маркирани с атрибута „chattr +F“Унифицирани са функционалностите за обработка на UTF-8 знаците в имената на файловете и новите функционалности към този момент се употребяват за търсене и нормализиране на низоветеВ XFS е добавена нужната инфраструктура за мониторинг положението на файловата система и нов ioctl за питане на статуса за продуктивност. Реализирана е пробната инспекция в действително време на броячите на суперблоковетеВ device-mapper е прибавен новия модул „dm-dust“, който може да симулира появяването на неприятни дискови блокове или неточности при четене на диска. Модулът доста опростява настройката и тестването на приложенията и системите за предпазване на информация, за поява на сривовеЗначително е усъвършенствана продуктивността на входно/изходните интервенции. При високо I/O натоварване осъществените оптимизации до 80% понижават интервенциите, като да вземем за пример времето за пускане на приложенияДобавена е нова серия систематични извиквания за монтиране на файлови системи: fsopen(), open_tree(), fspick(), fsmount(), fsconfig() и move_mount(). Тези систематични извиквания дават опция за обособена обработка на другите стадии на монтирането – култивиране на суперблока, приемане на информация за файловата система, основаване на точка на монтиране и така нататък Разделените извиквания дават опция за осъществяването на по-сложни сюжети на монтиране, които до момента се правиха само посредством систематичното извикване mount(). Става допустимо обособеното осъществяване на интервенции като пренастройване на суперблок, включване на варианти, смяна на точката на монтиране и миграция към друго пространство на именатаВ подсистемата FUSE е препоръчан нов API за ръководство на кеширането на даннитеВиртуализация и безопасностПремахнати са областите в ядрото, допускащи осъществяването на код от наличните за запис по този начин наречени отразени области на паметта. По този метод се блокират бъдещи евентуални недоглеждания, които биха могли да се употребяват за атакаДобавен е новия параметър за пускане на Linux ядрото „mitigations=“, който е банален метод за включването и изключването на другите отбрани против хардуерните уязвимости в процесорите на Intel. Използването на параметъра „mitigations=off“ изключва всички налични способи за отбрана от хардуерните уязвимости. Използваният по дифолт режим „mitigations=auto“ включва отбраните и не въздейства на потреблението на Hyper Threading. Режимът „mitigations=auto,nosmt“ изключва и Hyper Threading
В Kconfig е добавена обособената секция „kernel hardening“ с алтернатива за засилена отбрана на ядрото. Засега в новата секция са събрани единствено вариантите за включване инспекциите на GCC плъгинитеЗа PowerPC архитектурата е осъществена поддръжката на хардуерните механизми за ограничение на нежелателните пътища за достъп до ядрото от потребителското пространствоДобавен е код за блокирането на офанзивите от клас MDS (Microarchitectural Data Sampling) за процесорите на Intel. Предлагат се два режима на отбрана: цялостен, изискващ нов микрокод, и повърхностен, който не подсигурява цялостното изчистване на буферите на процесора. Управлението на тази отбрана става посредством параметъра „mds=“, който може да има смисли „full“, „full,nosmt“ (с изключване на Hyper-Threads) и „off“Мрежова подсистемаДобавена е поддръжката на IPv6 шлюзове за IPv4 маршрутите. Така да вземем за пример, допустимо е да се указват правила за маршрутизация от вида „ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0“;За ICMPv6 са осъществени ioctl извикванията icmp_echo_ignore_anycast и icmp_echo_ignore_multicast за игнориране на ICMP ECHO за anycast и multicast адресите. Добавена е опция за ограничение интензивността на обработката на ICMPv6 пакетитеДобавена е опция за прикачването на Foo-Over-UDP тунелите към избран адрес, мрежови интерфейс или сокет (досега това ставаше единствено посредством обща маска)В безжичния стек е добавена опция за осъществяване обработването на OWE (Opportunistic Wireless Encryption) в потребителското пространствоПамет и систематични процесиВъв втората версия на cgroups е добавена функционалността freezer, благодарение на която може да бъде спряна работата в cgroup и краткотрайно да бъдат освободени някои систематични запаси (процесор, вход/изход и евентуално и памет). Управлението се реализира посредством ръководещите файлове cgroup.freeze и cgroup.events в cgroup дървотоДовършена е работата по подсистемата PSI (Pressure Stall Information), която дава опция за прецизен разбор и информация за времето, което би трябвало да измине за приемането на систематичен запас (CPU, памет, I/O). С помощта на PSI напълно тъкмо може да се дефинира забавянето на системата и каква е повода за забавянето, В новата версия е допустима конфигурация на прага на чувствителността на времената. Тази алтернатива дава опция в Оценка за съвместимост Android на напълно ранен етап да се дефинира дефицита на паметта, да се дефинира източника на проблемите и краткотрайно да се забави работата на приложенията, които не са изключително значими за потребителя. По този метод казусът се взема решение, преди потребителят да е забелязал смяна в работата на Android устройството. При стрес тестванията, новата система за мониторинг на паметта демонстрира 10 пъти по-малко подправени данни в съпоставяне със статистиката на предходната vmpressureОптимизиран е кодът за инспекция на BPF стратегиите, който в този момент при огромните стратегии работи 20 пъти по-бързо. Оптимизацията е дала опция да се вдигне лимита ма размера на BPF стратегиите от 4096 на един милион инструкцииЗа MIPS32 архитектурата е осъществен JIT компилатор за виртуалната машина eBPFЗа 32-битовата архитектура PowerPC е добавена поддръжката на инструмента KASan (Kernel address sanitizer), с който се откриват грешките при работа с паметтаЗа архитектурата PA-RISC е добавена поддръжката на дебъгера на ядрото KGDBХардуерВ новото Linux ядро е включен драйвера Lima за графичните процесори Mali 400/450, употребен в редица остарели ARM чипове. За по-новите интегрирани графични ускорители Mali е прибавен драйвера Panfrost, поддържащ чиповете с архитектура Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) и Bifrost (Mali G3x, G5x, G7x)Добавена е поддръжката на звукови устройства, употребяващи отворените фърмуери Sound Open Firmware (SOF). Въпреки съществуването на отворени драйвери, кодът на фърмуерите за звуковите чипове и до момента е закрит и се дава във тип на двоични файлове. Проектът Sound Open Firmware бе иницииран от Intel и има за цел основаването на отворени фърмуери за DSP чиповете, свързани с обработването на тон (по-късно към плана се причисли Google). Към сегашен ден в границите на този план се оферират отворени фърмуери за звуковите чипове на платформите Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake и IceLake
В DRM драйвера за Intel (i915) е добавена поддръжката на чиповете Elkhartlake (Gen11). Добавени са PCI идентификатори за чиповете Comet Lake (Gen9). Включен е режим за асинхронно превключване сред буферите и видео паметта (async flip) при осъществяване на запис посредством mmio. По този метод доста е увеличена продуктивността при някои 3D логаритми. Така да вземем за пример, в 3DMark Ice Storm теста продуктивността скача с 300-400%. Добавена е поддръжката на технологията HDCP2.2 (High-bandwidth Digital Content Protection) за криптиране на видеосигнала, преминаващ през HDMIВ драйвера Nouveau е добавена поддръжката на дънните платки, основани на чипсета NVIDIA Turing 117 (TU117, употребява се в GeForce GTX 1650). В kconfig е добавена спомагателна конфигурация за изключване на остарелите функционалности, които към този момент не се употребяват в настоящите версии на libdrmВ API DRM и драйвера amdgpu е добавена поддръжката на timeline обектите за синхронизация, която дава опция да не се употребяват бавните типичен блокировкиВ драйвера amdgpuн за графичния процесор Vega20 е добавена поддръжката на RAS (Reliability, Availability, Serviceability), както и пробната поддръжка на подсистемата SMU 11, заменила предходната технология Powerplay. За GPU Vega12 е добавена поддръжката на режима BACO (Bus Active, Chip Of). Добавена е и поддръжката на XGMI и новата високоскоростна шина PCIe 4.0 за графикатаДобавен е драйвера aspeed за GFX на системата върху чипа ASPEEDДобавена е поддръжката на ARM системите върху чипа и платките Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD,,Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510, ST Micro (stm32mp157a, stm32mp157c), NXP ( Eckelmann ci4x10 (i.MX6DL), i.MX8MM EVK (i.MX8MM), ZII i.MX7 RPU2 (i.MX7), ZII SPB4 (VF610), Zii Ultra (i.MX8M), TQ TQMa7S (i.MX7Solo), TQ TQMa7D (i.MX7Dual), Kobo Aura (i.MX50), Menlosystems M53 (i.MX53)), NVIDIA Jetson Nano (Tegra T210).
Едновременно с това Латиноамериканската фондация за свободен програмен продукт образува версия на напълно свободно Linux Kernel 5.2 ядро. Това е ядрото Linux-libre 5.2-gnu, напълно изчистено от съставни елементи на фърмуери и драйвери, съдържащи несвободни детайли или сектори код, потреблението на които по някакъв метод е лимитирано от производителя. В новата версия са включени файловете на Sound Open Firmware. Изключена е опцията за зареждането на блобове в драйверите mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp и ucsi_ccg. Обновен е кодът за изчистване от блобове в дфрайверите и подсистемите на ixp4xx, imx-sdma, amdgpu, nouveau и goya, както и от документите към микрокодовете. Премахнат е r8822be драйвера.
В новата версия на Linux ядрото са направени 15100 промени на сорс кода, осъществени от 1882 разработчика. Размерът на пача е 62 MB : измененията са засегнали 30889 файла, добавени са нови 625094 реда сорс код, отстранени са 531864 реда код. Около 45% от всички показани в Linux Kernel 5.2 промени са свързани с драйверите за другите устройства, към 21% са измененията за характерен хардуер и нови архитектури, 12% са свързани с мрежовия стек, 3% – с файловите системи и още 3% – с вътрешните подсистеми на ядрото. 12,4% от всички промени са осъществени от Intel, 6.3% – Red Hat, 5.4% – Гугъл, 4.0% – AMD, 3.1% – SUSE, 3% – IBM, 2.7% – Huawei, 2.7% – Linaro, 2.2% – ARM, 1.6% – Oracle.
Основните нововъведения в Linux ядрото версия 5.2Дискова подсистема, вход/изход, файлови системи:За Ext4 е добавена поддръжката на работа без значение регистъра на знаците в имената на файловете. Тази алтернатива може да се задейства единствено при празните папки, тъй като няма по какъв начин в една из съща директория да бъдат разпознати двата режима на работа – с различаване и без различаване на основните и дребните букви. Активирането на новия режим става с атрибута „+F“ (EXT4_CASEFOLD_FL). В този режим, системата не се преценява с регистъра: файловете Test.txt, test.txt и test.TXT се смятат за идентични в тези папки. По подразбиране файловата система се преценява с горния и долния указател на знаците, като се изключи досиетата, маркирани с атрибута „chattr +F“Унифицирани са функционалностите за обработка на UTF-8 знаците в имената на файловете и новите функционалности към този момент се употребяват за търсене и нормализиране на низоветеВ XFS е добавена нужната инфраструктура за мониторинг положението на файловата система и нов ioctl за питане на статуса за продуктивност. Реализирана е пробната инспекция в действително време на броячите на суперблоковетеВ device-mapper е прибавен новия модул „dm-dust“, който може да симулира появяването на неприятни дискови блокове или неточности при четене на диска. Модулът доста опростява настройката и тестването на приложенията и системите за предпазване на информация, за поява на сривовеЗначително е усъвършенствана продуктивността на входно/изходните интервенции. При високо I/O натоварване осъществените оптимизации до 80% понижават интервенциите, като да вземем за пример времето за пускане на приложенияДобавена е нова серия систематични извиквания за монтиране на файлови системи: fsopen(), open_tree(), fspick(), fsmount(), fsconfig() и move_mount(). Тези систематични извиквания дават опция за обособена обработка на другите стадии на монтирането – култивиране на суперблока, приемане на информация за файловата система, основаване на точка на монтиране и така нататък Разделените извиквания дават опция за осъществяването на по-сложни сюжети на монтиране, които до момента се правиха само посредством систематичното извикване mount(). Става допустимо обособеното осъществяване на интервенции като пренастройване на суперблок, включване на варианти, смяна на точката на монтиране и миграция към друго пространство на именатаВ подсистемата FUSE е препоръчан нов API за ръководство на кеширането на даннитеВиртуализация и безопасностПремахнати са областите в ядрото, допускащи осъществяването на код от наличните за запис по този начин наречени отразени области на паметта. По този метод се блокират бъдещи евентуални недоглеждания, които биха могли да се употребяват за атакаДобавен е новия параметър за пускане на Linux ядрото „mitigations=“, който е банален метод за включването и изключването на другите отбрани против хардуерните уязвимости в процесорите на Intel. Използването на параметъра „mitigations=off“ изключва всички налични способи за отбрана от хардуерните уязвимости. Използваният по дифолт режим „mitigations=auto“ включва отбраните и не въздейства на потреблението на Hyper Threading. Режимът „mitigations=auto,nosmt“ изключва и Hyper Threading
В Kconfig е добавена обособената секция „kernel hardening“ с алтернатива за засилена отбрана на ядрото. Засега в новата секция са събрани единствено вариантите за включване инспекциите на GCC плъгинитеЗа PowerPC архитектурата е осъществена поддръжката на хардуерните механизми за ограничение на нежелателните пътища за достъп до ядрото от потребителското пространствоДобавен е код за блокирането на офанзивите от клас MDS (Microarchitectural Data Sampling) за процесорите на Intel. Предлагат се два режима на отбрана: цялостен, изискващ нов микрокод, и повърхностен, който не подсигурява цялостното изчистване на буферите на процесора. Управлението на тази отбрана става посредством параметъра „mds=“, който може да има смисли „full“, „full,nosmt“ (с изключване на Hyper-Threads) и „off“Мрежова подсистемаДобавена е поддръжката на IPv6 шлюзове за IPv4 маршрутите. Така да вземем за пример, допустимо е да се указват правила за маршрутизация от вида „ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0“;За ICMPv6 са осъществени ioctl извикванията icmp_echo_ignore_anycast и icmp_echo_ignore_multicast за игнориране на ICMP ECHO за anycast и multicast адресите. Добавена е опция за ограничение интензивността на обработката на ICMPv6 пакетитеДобавена е опция за прикачването на Foo-Over-UDP тунелите към избран адрес, мрежови интерфейс или сокет (досега това ставаше единствено посредством обща маска)В безжичния стек е добавена опция за осъществяване обработването на OWE (Opportunistic Wireless Encryption) в потребителското пространствоПамет и систематични процесиВъв втората версия на cgroups е добавена функционалността freezer, благодарение на която може да бъде спряна работата в cgroup и краткотрайно да бъдат освободени някои систематични запаси (процесор, вход/изход и евентуално и памет). Управлението се реализира посредством ръководещите файлове cgroup.freeze и cgroup.events в cgroup дървотоДовършена е работата по подсистемата PSI (Pressure Stall Information), която дава опция за прецизен разбор и информация за времето, което би трябвало да измине за приемането на систематичен запас (CPU, памет, I/O). С помощта на PSI напълно тъкмо може да се дефинира забавянето на системата и каква е повода за забавянето, В новата версия е допустима конфигурация на прага на чувствителността на времената. Тази алтернатива дава опция в Оценка за съвместимост Android на напълно ранен етап да се дефинира дефицита на паметта, да се дефинира източника на проблемите и краткотрайно да се забави работата на приложенията, които не са изключително значими за потребителя. По този метод казусът се взема решение, преди потребителят да е забелязал смяна в работата на Android устройството. При стрес тестванията, новата система за мониторинг на паметта демонстрира 10 пъти по-малко подправени данни в съпоставяне със статистиката на предходната vmpressureОптимизиран е кодът за инспекция на BPF стратегиите, който в този момент при огромните стратегии работи 20 пъти по-бързо. Оптимизацията е дала опция да се вдигне лимита ма размера на BPF стратегиите от 4096 на един милион инструкцииЗа MIPS32 архитектурата е осъществен JIT компилатор за виртуалната машина eBPFЗа 32-битовата архитектура PowerPC е добавена поддръжката на инструмента KASan (Kernel address sanitizer), с който се откриват грешките при работа с паметтаЗа архитектурата PA-RISC е добавена поддръжката на дебъгера на ядрото KGDBХардуерВ новото Linux ядро е включен драйвера Lima за графичните процесори Mali 400/450, употребен в редица остарели ARM чипове. За по-новите интегрирани графични ускорители Mali е прибавен драйвера Panfrost, поддържащ чиповете с архитектура Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) и Bifrost (Mali G3x, G5x, G7x)Добавена е поддръжката на звукови устройства, употребяващи отворените фърмуери Sound Open Firmware (SOF). Въпреки съществуването на отворени драйвери, кодът на фърмуерите за звуковите чипове и до момента е закрит и се дава във тип на двоични файлове. Проектът Sound Open Firmware бе иницииран от Intel и има за цел основаването на отворени фърмуери за DSP чиповете, свързани с обработването на тон (по-късно към плана се причисли Google). Към сегашен ден в границите на този план се оферират отворени фърмуери за звуковите чипове на платформите Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake и IceLake
В DRM драйвера за Intel (i915) е добавена поддръжката на чиповете Elkhartlake (Gen11). Добавени са PCI идентификатори за чиповете Comet Lake (Gen9). Включен е режим за асинхронно превключване сред буферите и видео паметта (async flip) при осъществяване на запис посредством mmio. По този метод доста е увеличена продуктивността при някои 3D логаритми. Така да вземем за пример, в 3DMark Ice Storm теста продуктивността скача с 300-400%. Добавена е поддръжката на технологията HDCP2.2 (High-bandwidth Digital Content Protection) за криптиране на видеосигнала, преминаващ през HDMIВ драйвера Nouveau е добавена поддръжката на дънните платки, основани на чипсета NVIDIA Turing 117 (TU117, употребява се в GeForce GTX 1650). В kconfig е добавена спомагателна конфигурация за изключване на остарелите функционалности, които към този момент не се употребяват в настоящите версии на libdrmВ API DRM и драйвера amdgpu е добавена поддръжката на timeline обектите за синхронизация, която дава опция да не се употребяват бавните типичен блокировкиВ драйвера amdgpuн за графичния процесор Vega20 е добавена поддръжката на RAS (Reliability, Availability, Serviceability), както и пробната поддръжка на подсистемата SMU 11, заменила предходната технология Powerplay. За GPU Vega12 е добавена поддръжката на режима BACO (Bus Active, Chip Of). Добавена е и поддръжката на XGMI и новата високоскоростна шина PCIe 4.0 за графикатаДобавен е драйвера aspeed за GFX на системата върху чипа ASPEEDДобавена е поддръжката на ARM системите върху чипа и платките Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD,,Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510, ST Micro (stm32mp157a, stm32mp157c), NXP ( Eckelmann ci4x10 (i.MX6DL), i.MX8MM EVK (i.MX8MM), ZII i.MX7 RPU2 (i.MX7), ZII SPB4 (VF610), Zii Ultra (i.MX8M), TQ TQMa7S (i.MX7Solo), TQ TQMa7D (i.MX7Dual), Kobo Aura (i.MX50), Menlosystems M53 (i.MX53)), NVIDIA Jetson Nano (Tegra T210).Едновременно с това Латиноамериканската фондация за свободен програмен продукт образува версия на напълно свободно Linux Kernel 5.2 ядро. Това е ядрото Linux-libre 5.2-gnu, напълно изчистено от съставни елементи на фърмуери и драйвери, съдържащи несвободни детайли или сектори код, потреблението на които по някакъв метод е лимитирано от производителя. В новата версия са включени файловете на Sound Open Firmware. Изключена е опцията за зареждането на блобове в драйверите mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp и ucsi_ccg. Обновен е кодът за изчистване от блобове в дфрайверите и подсистемите на ixp4xx, imx-sdma, amdgpu, nouveau и goya, както и от документите към микрокодовете. Премахнат е r8822be драйвера.
Източник: kaldata.com
КОМЕНТАРИ




