Представяме ви новото ядро ​​на Linux 4.5

ядро

Съдържанието на статията

Най-голям брой линии са допринесли Дъг Ледфорд от Red Hat, който се е занимавал основно с почистване на кодове (7,7%), Томи Валкейнен от Texas Instruments, който е работил по поддръжката на подархитектурата OMAP (5,3%), трима разработчици, фокусирани върху AMD графични драйвери: Eric Huang - 3,3%, Alex Deucher - 2,4% и yanyang1 - 1,6%. Лидери на промяната - Линус Валей от Линаро, който внедри много промени на ниско ниво, включително GPIO, който поддържа (2.0%), Арнд Бергман, който свърши чудесна работа в подкрепа на ARM (1.9%), и Лео Ким, шофьор wilc1000 (1.7 %). Както и преди, много корпорации се интересуват от развитието на ядрото. Работата по версия 4.5 беше подкрепена от над 200 компании, включително Red Hat, Intel, AMD, Texas Instruments, Linaro, Linux Foundation, Samsung, IBM, Google. Повечето от тях разработват поддръжка за своите устройства и свързаните с тях подсистеми и инструменти, но Google например традиционно прави много промени в мрежовата подсистема на Linux.

представяме
Ново съобщение за освобождаване на ядрото

Ядро и драйвери

Продължава миграцията на сложен и слабо поддържан код, написан в асемблер (x86/asm) към C, стартиран през 4.0. Ядрото вече може да бъде изградено с опцията -fsanitize = undefined. Самият параметър се появи преди две години в GCC 4.9+ и активира режима за отстраняване на грешки UBSan (Undefined Behavior Sanitizer), който открива недефинирано поведение, присъщо на езиците C и C ++: използването на нестатични променливи преди инициализация, разделяне на нула, препълване на цяло число и т.н. Компилаторът обикновено приема, че подобни операции никога няма да се случат, а в случай на възникване резултатът може да бъде всякакъв и зависи от самия компилатор. Сега компилаторът открива такива ситуации, издава "грешка при изпълнение:" (можете да деактивирате -fno-sanitize-recovery) и продължава изпълнението.

ядро
Конфигуриране на ASLR в новото ядро

Драйверът AMDGPU добавя експериментална поддръжка за технологията за динамично управление на захранването PowerPlay, за да подобри производителността на графичния процесор за графични процесори Tonga и Fiji и интегрирани Carrizo и Stoney В режим PowerPlay графичният процесор се стартира в режим на ниска мощност, но автоматично увеличава честотата, ако натоварването на графичната подсистема се увеличи. PowerPlay е деактивиран по подразбиране; за да го активирате, предайте параметъра amdgpu.powerplay = 1 на ядрото .

Новата версия на API на Media Controller разширява поддръжката за устройства Video4Linux и позволява използването на функционалността на мултимедийния контролер в други подсистеми като DVB, ALSA и IIO.

KVM (виртуална машина, базирана на ядрото) направи много, за да поддържа архитектурата s390 (сега може да използва до 248 vCPU), ARM/ARM64 и да подобри x86 производителността в Hyper-V.

Инсталиране на ядрото 4.5 на Ubuntu

Най-лесният начин да се запознаете с новото ядро ​​е да използвате компилацията от екипа на Ubuntu Kernel. След обширно тестване новото ядро ​​се озовава в ppa: canonical-kernel-team/ppa, но обикновено отнема време.

След рестартиране можем да работим.

Поддръжка на ARM

ARM компютрите се използват като мини-сървъри за конкретни задачи или като контролери за автоматизация, което ги прави много популярни и търсени. Общността ARM Linux се превърна в една от най-активните през последните пет години, с огромно количество работа, подкрепяща пазарния дял на 32-битовите ARM платформи, който до голяма степен е завършен от клона 4.5. Преди това всяко ARM устройство трябваше да изгради свое собствено ядро, за да поддържа само определени устройства. Но проблемът беше, че устройствата ставаха все по-сложни, стана възможно да се променя конфигурацията и самите потребители на ARM устройствата искаха да използват обикновени дистрибуции без излишни жестове. Но в крайна сметка имахме няколкостотин опции за изграждане на ядрото, което прави много трудно използването на Linux.

В резултат на почистването и рефакторинга на голямо количество код стана възможно включването на поддръжка за ARMv6 и ARMv7 в ядрото, т.е. сега можем да изградим универсално ядро, което може да се стартира и на двете системи. Тук може би трябва да си припомним и наскоро популяризираната спецификация на дървото на устройствата, възникнала като част от разработката на Open Firmware. Дървото на устройствата ви позволява да конфигурирате хардуер по време на зареждане, като използвате специални dts файлове, съхранявани в/boot/dtbs, и да променяте настройките, без да възстановявате ядрото. Дървото на устройствата става задължително за всички нови ARM дизайни и не само. Всичко това заедно дава увереност, че дистрибуциите на Linux в бъдеще могат лесно да се изпълняват на всяко ARM устройство. Успоредно с това Грег Кроах-Хартман от Linux Foundation пусна кръпка, която реализира подобна функция за ранните версии на ядрото. В arch/arm64 ще намерим кода, който осигурява поддръжка за новата 64-битова ARM архитектура (ARMv8). Добавени са нови функции за всички популярни ARM архитектури - Allwinner, Amlogic, Samsung, Qualcomm и поддръжка за нови ARM платки от различни разработчици.

Системни услуги

За достъп до данните на фърмуера на UEFI (Unified Extensible Firmware Interface) в Linux се използва специална псевдо-файлова система efivars (конфигурирана от EFIVAR_FS), която е монтирана в/sys/firmware/efi/efivars. В някои изпълнения, изпълнението на командата rm -rf/* също изтрива съдържанието на тази директория, което води до унищожаване на фърмуера. Компаниите за устройства не смятат това за сериозен недостатък, тъй като ситуацията, разбира се, не е най-често срещаната и е малко вероятно някой потребител да се сети да я провери. Въпреки това има проблем и авторите на вируси могат напълно реално да се възползват от тази възможност. Сега в ядрото 4.5 е добавена специална защита за директорията/sys/firmware/efi/efivars, която не позволява изтриване на файлове вътре.

Продължаването е достъпно само за абонати

Вариант 2. Купете един материал