Основни промени и нововъведения в Linux ядрото версия 5.8

Виртуализация и безопасност
  • Осигурено е блокирането на зареждането на модулите на ядрото, които имат секции с код, в които са вдигнати флаговете, разрешаващи операциите по писане и четене на данни. Тази промяна е направена в рамките на по-голям проект за премахване на страниците памет, в които едновременно е разрешено четенето и писането на данни.
  • Дадена е възможност за създаването на отделни procfs екземпляри, даващи възможност за използването на няколко точки за монтирането на procfs, на които са зададени различни опции, но в едно и също пространство на имената на идентификаторите на процесите (pid namespace). Досега всяка промяна в една от точките на монтиране водеше до промени и в другите точки.
  • За ARM64 архитектурата е реализирана поддръжката на механизма Shadow-Call Stack, предоставян от компилатора Clang за защита и презапис на адреса за връщане от функция в случай на препълване на буфер в стека. Идеята е след прехвърляне на управлението към друга функция, да се запази адреса за завръщане в отделен ‘сенчест’ стек, откъдето този адрес може да бъде извлечен след изпълнението на функцията.
  • За архитектурата ARM64 е добавена поддръжката на инструкцията ARMv8.5-BTI (Branch Target Indicator) за защита изпълнението на блок процесорни инструкции, към които не трябва да се извършва условен преход. Блокирането на преходите към произволен участък от кода е реализирано за противодействието на експлойти, които използват възвратно ориентирано програмиране (ROP – Return-Oriented Programming), при което атакуващият не използва свой код, а сглобява действащ експлойт от късчетата процесорни инструкции в паметта на устройството.
  • Добавена е поддръжката на хардуера за inline криптиране на блоковите устройства (Inline Encryption). Устройствата за inline криптиране обикновено са вградени в запомнящото устройство, но логически са разположени между системната памет и диска, като се осъществява прозрачно криптиране и декриптиране на информацията в реално време.
  • Добавен е новия параметър на командния ред на ядрото initrdmem, даващ възможност да се укаже физическия адрес за поместването на initrd в паметта.
  • Добавено е новото устройство virtio-mem, даващо възможност за реализирането на горещо поставяне и махане на памет.
  • Добавена е защита срещу уязвимостта CROSSTalk/SRBDS, даваща възможност за възстановяване на резултатите от изпълнението на някои инструкции, изпълнени от друго ядро на централния процесор.
Памет и системни услуги
  • В Linux Kernel вече са приети препоръките за използването на инклузивна терминология. На разработчиците не се препоръчва да се използват комбинациите от думи  ‘master / slave’ и ‘blacklist / whitelist’, както и отделната дума ‘slave’. Препоръките се отнасят само за новото използване на тези термини.
  • В новото ядро е включен инструмента на настройка KCSAN (Kernel Concurrency Sanitizer).
  • Добавен е нов универсален механизъм за прехвърляне на уведомленията от ядрото в потребителското пространство.
  • В Cgroup е добавена настройката memory.swap.high, която може да се използва за забавяне на процесите, които заемат твърде много място в swap дяла.
  • Добавен е механизмът BPF iterator, предназначен за извеждане в потребителското пространство на информация от някои от структурите на ядрото.
  • Предоставена е възможност за използването на пръстеновиден буфер за обмен на данни между BPF програмите
  • В механизма padata, предназначен за организацията на паралелното изпълнение на процесите в ядрото е добавена поддръжката на изцяло многопоточна работа с балансирано натоварване.
  • За RISC-V архитектурата е реализирана настройка на софтуера чрез дебъгера KGDB.
  • В Linux Kernel 4.8 са повишени изискванията към версията на GCC компилатора, която може да се използва за компилиране на ядрото. В някой от следващите версии на Linux ядрото ще бъде направен задължителен преход към GCC 4.9.
Дискова подсистема, вход/изход, файлови системи
  • Във файловата система F2FS е добавена компресия с поддръжката на алгоритъма LZO-RLE.
  • В Btrfs е подобрено четенето в режим на директен вход/изход.
  • Във FAT е подобрено предварителното зареждане елементите на файловата система. По този начин тестването на бавен 2 TB USB флаш стик е намалено от 383 на 51 секунди.

Хардуер

  • В DRM драйвера i915 за графиката на Intel по подразбиране е включена поддръжката на чиповете Tiger Lake (GEN12), за които е реализирана възможността за използването на системата SAGV (System Agent Geyserville) за динамична промяна на честотата и напрежението в зависимост от изискванията към консумацията на електрическа енергия или към производителността.
  • В драйвера amdgpu е добавена поддръжката на пикселния формат FP16 и е реализирана възможността за работа с криптираните буфери в графичната памет (TMZ, Trusted Memory Zone).
  • Добавена е поддръжката на сензорите за консумация на енергия за чиповете AMD Zen и Zen2, както и на температурните сензори на AMD Ryzen 4000 Renoir. За AMD Zen и Zen2 е осигурено извличане на информацията за консумираната енергия чрез интерфейса RAPL (Running Average Power Limit).
  • В драйвера Nouveau е добавена поддръжката на модификаторите на Nvidia. За gv100 е реализирана възможността за използването на презредова развивка. Добавено е определянето на vGPU.
  • В драйвера MSM (Qualcomm) е добавена поддръжката на GPU Adreno A405, A640 и A650.
  • Добавен е вътрешен фреймуърк за управлението на DRM (Direct Rendering Manager) ресурсите.
  • Добавена е поддръжката на смартфоните Xiaomi Redmi Note 7 и Samsung Galaxy S2, както и на лаптопите lm/Hana Chromebook.
  • Добавени са драйвери за LCD панелите ASUS TM5P5 NT35596, Starry KR070PE2T, Leadtek LTK050H3146W, Visionox rm69299, Boe tv105wum-nw0.
  • Добавена е поддръжката на ARM платките и платформите  Renesas „RZ/G1H“, Realtek RTD1195, Realtek RTD1395/RTD1619, Rockchips RK3326, AMLogic S905D, S905X3, S922XH, Olimex A20-OLinuXino-LIME-eMMC, Check Point L-50, Beacon i.MX8m-Mini, Qualcomm SDM660/SDM630, Xnano X5 TV Box, Stinger96, Beaglebone-AI.
  • Вече е налична поддръжката на MIPS процесора Loongson-2K (олекотен Loongson64). За CPU Loongson 3 е добавена поддръжката на виртуализация с използването на хипервайзора KVM.
  • Добавена е поддръжката на руския процесор Baikal-T1 и базираната на него SoC BE-T1000. Този чип е разработен с използването лиценза на компанията magination Technologies относно процесорното ядро MIPS32 P5600 Warrior.

Едновременно с това латиноамериканската Фондация за свободен софтуер формира версия на изцяло свободния Linux Kernel 5.8 – Linux-libre 5.8-gnu, който е изцяло изчистен от всички елементи на фърмуери и драйвери, съдържащи несвободни компоненти или участъци от кода, областта на използване на който е ограничена от производителя. В новата версия е изключено зареждането на блобовете в драйверите за Atom ISP Video, MediaTek 7663 USB/7915 PCIe, Realtek 8723DE WiFi, Renesas PCI xHCI, HabanaLabs Gaudi, Enhanced Asynchronous Sample Rate Converter, Maxim Integrated MAX98390 Speaker Aimplifier, Microsemi ZL38060 Connected Home Audio Processor, и I2C EEPROM Slave. Обновен е кодът за изчистване на блобовете в драйверите и подсистемите на Adreno GPU, HabanaLabs Goya, x86 touchscreen, vt6656 и btbcm.

Източник: Kaldata.COM

Коментари