Издање језгра Линука 6.1

Након два месеца развоја, Линус Торвалдс је представио издање Линук кернела 6.1. Међу најзначајнијим променама: подршка за развој драјвера и модула на језику Руст, модернизација механизма за одређивање коришћених меморијских страница, посебан менаџер меморије за БПФ програме, систем за дијагностику проблема са меморијом КМСАН, КЦФИ (Кернелк Цонтрол -Флов Интегрити) механизам заштите, увођење стабла структуре Мапле.

Нова верзија укључује 15115 исправки од 2139 програмера, величина закрпе је 51 МБ, што је отприлике 2 пута мање од величине закрпа из кернела 6.0 и 5.19. Промене су утицале на 13165 датотека, додато је 716247 линија кода, а 304560 линија је обрисано. Око 45% свих промена уведених у 6.1 односи се на драјвере уређаја, приближно 14% промена се односи на ажурирање кода специфичног за хардверске архитектуре, 14% се односи на мрежни стек, 3% на систем датотека и 3% односе се на унутрашње подсистеме кернела.

Главне иновације у кернелу 6.1:

  • Меморијске и системске услуге
    • Додата могућност коришћења Руста као другог језика за развој драјвера и модула кернела. Главни разлог за подршку Руст-а је да се олакша писање сигурних и висококвалитетних драјвера уређаја смањењем вероватноће грешке при раду са меморијом. Подршка за Руст је подразумевано онемогућена и не доводи до тога да Руст буде укључен као обавезна зависност израде кернела. Кернел је до сада усвојио минималну, смањену верзију закрпа, која је смањена са 40 на 13 хиљада линија кода и пружа само неопходан минимум, довољан за изградњу једноставног модула кернела написаног на Руст језику. У будућности се планира постепено повећање постојеће функционалности, преносећи друге промене из гране Руст-фор-Линук. Паралелно, развијају се пројекти за коришћење предложене инфраструктуре за развој драјвера за НВМе дискове, мрежни протокол 9п и Аппле М1 ГПУ на језику Руст.
    • За системе засноване на архитектури ААрцх64, РИСЦ-В и ЛоонгАрцх са ЕФИ, имплементирана је могућност директног учитавања компримованих слика кернела. Додати руковаоци за учитавање, покретање и истовар слика кернела, који се позивају директно из ЕФИ збоот-а. Додати су и руковаоци за инсталирање и брисање протокола из базе ЕФИ протокола. Раније је распакивање вршио посебан боотлоадер, али сада то може да уради руковалац у самом кернелу - слика кернела се формира као ЕФИ апликација.
    • Састав укључује део закрпа са имплементацијом модела управљања меморијом на више нивоа, који вам омогућава да одвојите меморијске банке са различитим карактеристикама перформанси. На пример, странице које се најчешће користе могу бити ускладиштене у најбржој меморији, док се странице које се најчешће користе могу бити ускладиштене у релативно спорој меморији. Кернел 6.1 уводи механизам за одређивање где се јако коришћене странице налазе у спорој меморији како би се могле унапредити у брзу меморију, а такође уводи општи концепт меморијских нивоа и њихових релативних перформанси.
    • Укључује механизам МГЛРУ (Мулти-Генератионал ЛРУ), који замењује стару ЛРУ (Леаст Рецентли Усед) имплементацију засновану на два реда са вишестепеном структуром која боље одређује које меморијске странице се заправо користе, а које се могу избацити на свап партицију.
    • Додата подршка за структуру података „јаворово дрво“ коју су предложили Орацле инжењери, која је позиционирана као ефикаснија замена за структуру „црвено-црног дрвета“. Јаворово дрво је варијанта Б-стабла које подржава индексирање опсега и дизајнирано је да ефикасно користи кеш меморију савремених процесора. Неки подсистеми за управљање меморијом су већ пребачени на јаворово дрво, што је позитивно утицало на њихове перформансе. У будућности, јаворово дрво може се користити за имплементацију закључавања опсега.
    • Могућност креирања „деструктивних“ БПФ програма специјално дизајнираних да иницирају хитно искључивање путем позива црасх_кекец() додата је БПФ подсистему. Такви БПФ програми могу бити потребни у сврху отклањања грешака да би се у одређеном тренутку покренуло креирање депоније. Да бисте приступили деструктивним операцијама приликом учитавања БПФ програма, морате навести ознаку БПФ_Ф_ДЕСТРУЦТИВЕ, активирати сисцтл кернел.деструцтиве_бпф_енаблед и имати ЦАП_СИС_БООТ права.
    • За БПФ програме, могуће је набрајати елементе цгроуп, као и набрајати ресурсе (фајлови, вма, процеси, итд.) одређене нити или задатка. Имплементиран је нови тип мапе за креирање корисничких прстенастих бафера.
    • Додат је посебан позив за доделу меморије у БПФ програмима (мемори аллоцатор), који обезбеђује сигурнију алокацију меморије у БПФ контексту од стандардног кмаллоц().
    • Први део измена је интегрисан, пружајући могућност креирања драјвера за улазне уређаје са ХИД (Хуман Интерфаце Девице) интерфејсом, имплементираним у облику БПФ програма.
    • Кернел је у потпуности уклонио код како би подржао формат извршне датотеке а.оут, који је застарео у издању 5.1 и онемогућен је за главне архитектуре од верзија 5.18 и 5.19. Формат а.оут је одавно застарео на Линук системима, а генерисање а.оут датотека није подржано од стране савремених алата у подразумеваним Линук конфигурацијама. Учитавач за а.оут датотеке може се у потпуности имплементирати у кориснички простор.
    • За системе засноване на архитектури скупа инструкција ЛоонгАрцх која се користи у процесорима Лоонгсон 3 5000 и имплементира нови РИСЦ ИСА, сличан МИПС и РИСЦ-В, имплементирана је подршка за догађаје мерења перформанси (перф догађаји), кекец, кдумп и БПФ ЈИТ компилацију .
    • Асинхрони И/О интерфејс ио_уринг нуди нови режим, ИОРИНГ_СЕТУП_ДЕФЕР_ТАСКРУН, који омогућава да се рад у вези са бафером прстена привремено одложи док се не изврши захтев апликације, што се може користити за групни рад и избегавање проблема са кашњењем због предности. погрешно време.
    • Процеси у корисничком простору имају могућност да покрену конверзију низа нормалних меморијских страница у скуп великих меморијских страница (Транспарент Хуге-Пагес).
    • Додата имплементација /дев/усерфаултфд уређаја, који омогућава приступ функционалности системског позива усерфаултфд() користећи права приступа у ФС. Усерфаултфд функционалност вам омогућава да креирате руковаоце за приступ недодељеним меморијским страницама (грешке странице) у корисничком простору.
    • Захтеви за верзију услужног програма ГНУ Маке су повећани – за прављење кернела је сада потребна најмање верзија 3.82.
  • Дисковни подсистем, И/О и системи датотека
    • Значајне оптимизације перформанси су направљене у систему датотека Бтрфс; између осталог, перформансе ФИЕМАП иоцтл позива су повећане за редове величине. Додата подршка за асинхроно баферовано уписивање за апликације које користе ио_уринг. Додата подршка за датотеке заштићене фс-верити операцији „пошаљи“.
    • Ект4 систем датотека је додао оптимизације перформанси које се односе на одржавање дневника и рад само за читање.
    • Систем датотека ЕРОФС (Енханцед Реад-Онли Филе Систем), дизајниран за употребу на партицијама доступним у режиму само за читање, имплементира могућност дељења података дуплираних у различитим системима датотека.
    • Системски позив статк() је додат да прикаже информације о томе да ли се директни И/О може применити на датотеку.
    • Подсистему ФУСЕ (Филесистемс ин Усер Спаце) додата је подршка за креирање привремених датотека са ознаком О_ТМПФИЛЕ.
  • Виртуелизација и безбедност
    • Имплементација ЦФИ (Цонтрол Флов Интегрити) заштитног механизма је замењена, додајући провере пре сваког индиректног позива да би се открили неки облици недефинисаног понашања који би потенцијално могли да доведу до прекида нормалног налога извршења (контролног тока) као резултат коришћења експлоатација које мењају показиваче функција ускладиштених у меморији. Стандардна имплементација ЦФИ из ЛЛВМ пројекта замењена је опцијом такође заснованом на коришћењу Цланг-а, али посебно прилагођеном за заштиту подсистема ниског нивоа и кернела оперативног система. У ЛЛВМ-у, нова имплементација ће бити понуђена у издању Цланг 16 и биће омогућена са опцијом "-фсанитизе=кцфи". Кључна разлика са новом имплементацијом је у томе што није везана за оптимизацију времена везе (ЛТО) и не доводи до тога да се показивачи функција замењују везама у табели за скок.
    • За ЛСМ модуле (Линук Сецурити Модуле), могуће је креирати руковаоце који пресрећу операције за креирање именских простора.
    • Обезбеђени су алати за верификацију ПКЦС#7 дигиталних потписа у БПФ програмима.
    • Могућност отварања у неблокирајућем режиму (О_НОНБЛОЦК), која је ненамерно уклоњена у кернелу 5.6, враћена је у /дев/рандом.
    • На системима са к86 архитектуром, додато је упозорење у случају мапирања меморијских страница од стране подсистема кернела који истовремено дозвољавају извршавање и писање. У будућности се разматра могућност потпуне забране таквог мапирања меморије.
    • Додат је КМСАН (Кернел Мемори Санитизер) механизам за отклањање грешака за откривање неиницијализоване употребе меморије у кернелу, као и неиницијализовано цурење меморије између корисничког простора и уређаја.
    • Направљена су побољшања у крипто-безбедном ЦРНГ генератору псеудослучајних бројева који се користи у гетрандом позиву. Промене је припремио Џејсон А. Доненфелд, аутор ВПН ВиреГуард, и имају за циљ побољшање безбедности псеудо-случајног извлачења целог броја.
  • Мрежни подсистем
    • ТЦП стек пружа могућност (подразумевано онемогућено) да се посебно користе хеш табеле сокета за сваки простор имена, што побољшава перформансе на системима са великим бројем именских простора.
    • Уклоњен је код за подршку застарелог ДЕЦнет протокола. АПИ стубови корисничког простора су остављени на месту да би се омогућило превођење апликација које користе ДЕЦнет, али ове апликације неће моћи да се повежу на мрежу.
    • Нетлинк протокол је документован.
  • Оборудование
    • Амдгпу драјвер је додао подршку за ДСЦ (Дисплаи Стреам Цомпрессион) прослеђивање за компресију података без губитака приликом размене информација са екранима који подржавају веома високе резолуције. Наставља се рад на пружању подршке за АМД РДНА3 (РКС 7000) и ЦДНА (Инстинцт) платформе. Додата подршка за ДЦН 3.2, СМУ 13.к, НБИО 7.7, ГЦ 11.к, ПСП 13.к, СДМА 6.к и ГМЦ 11.к ИП компоненте. Амдкфд драјвер (за дискретне АМД ГПУ-ове као што је Поларис) пружа подршку за ГФКС 11.0.3.
    • и915 (Интел) драјвер укључује подршку за Метеор Лаке ГПУ. Метеор Лаке и новији ГПУ-ови подржавају ДП 2.0 (ДисплаиПорт) интерфејс. Додати идентификатори за видео картице засноване на микроархитектури Алдер Лаке С.
    • Додата подршка за аудио подсистеме имплементиране у Аппле Силицон, Интел СкиЛаке и Интел КабиЛаке процесоре. ЦС35Л41 ХДА аудио драјвер подржава режим спавања. Додата подршка за АСоЦ (АЛСА систем на чипу) за интегрисане аудио чипове Аппле Силицон, АМД Рембрант ДСП, АМД Пинк Сардине АЦП 6.2, Еверест ЕС8326, Интел Ски Лаке и Каби Лаке, Медиатек МТ8186, НКСП и.МКС8УЛП ДСП, Куалцомм СЦ8280Кс, СЦ8250 СМ8450 и Текас Инструментс СРЦ4392
    • Додата подршка за ЛЦД панеле Самсунг ЛТЛ101АЛ01, Б120КСАН01.0, Р140НВФ5 РХ, Денситрон ДМТ028ВГХМЦМИ-1А ТФТ, АУО Б133УАН02.1, ИВО М133НВ4Ј-Р3, Иннолук Н120АЦА1Б116АЦА01.6Б. Х М-Н116, ИНКС Н21БЦА- ЕА116 , ИНКС Н2БЦН-ЕА116, Мулти-Инно Тецхнологи МИ1ФТ-0800.
    • Додата подршка за АХЦИ САТА контролере који се користе у Баикал-Т1 СоЦ-у.
    • Додата подршка за Блуетоотх чипове МедиаТек МТ7921, Интел Магнетор (ЦНВи, интегрисано повезивање), Реалтек РТЛ8852Ц, РТВ8852АЕ и РТЛ8761БУВ (Едимак БТ-8500).
    • атх11к драјвер за Куалцомм бежичне модуле је додао подршку за спектрално скенирање у опсегу од 160 МХз, имплементирао вишенитну НАПИ и побољшану подршку за Куалцомм ВЦН6750 Ви-Фи чипове.
    • Додати драјвери за ПинеПхоне тастатуру, ИнтерТоуцх тачпед (ТхинкПад П1 Г3), Кс-Бок Адаптиве Цонтроллер, ПхоеникРЦ Флигхт Цонтроллер, ВРЦ-2 Цар Цонтроллер, ДуалСенсе Едге Цонтроллер, ИБМ Оператион Панел, КСБОКС Оне Елите даљински управљач, таблете КСП-ПЕН Децо Про С и Интуос Про Смалл (ПТХ-460).
    • Додат драјвер за Аспеед ХАЦЕ (Хасх и Црипто Енгине) криптографске акцелераторе.
    • Додата подршка за интегрисане Тхундерболт/УСБ4 Интел Метеор Лаке контролере.
    • Додата подршка за Сони Кспериа 1 ИВ, Самсунг Галаки Е5, Е7 и Гранд Мак, Пине64 Пинепхоне Про паметне телефоне.
    • Додата подршка за АРМ СоЦ и плоче: АМД ДаитонаКс, Медиатек МТ8186, Роцкцхипс РК3399 и РК3566, ТИ АМ62А, НКСП и.МКС8ДКСЛ, Ренесас Р-Цар Х3Не-1.7Г, Куалцомм ИПК8064-в2.0, ИПК8062, ИПК8065, ИПК8 БЛ и.МКС8195ММ ОСМ-С, МТ4 (Ацер Томато), Радка РОЦК 4Ц+, НаноПи Р1С Ентерприсе Едитион, ЈетХоме ЈетХуб ДXNUMXп. Ажурирани драјвери за СоЦ Самсунг, Медиатек, Ренесас, Тегра, Куалцомм, Броадцом и НКСП.

Истовремено, Латиноамеричка фондација за слободни софтвер формирала је верзију потпуно бесплатног кернела 6.1 - Линук-либре 6.1-гну, очишћену од елемената фирмвера и драјвера који садрже неслободне компоненте или делове кода, чији је обим ограничено од стране произвођача. Ново издање чисти нови драјвер ртв8852б и ДТС датотеке за различите Куалцомм и МедиаТек СоЦ-ове са процесорима заснованим на архитектури ААрцх64. Ажурирани код за чишћење мрља у драјверима и подсистемима амдгпу, и915, брцмфмац, р8188еу, ртв8852ц, Интел АЦПИ. Исправљено је чишћење застарелих драјвера тм6000 ТВ картице, цпиа2 в4л, сп8870, ав7110.

Извор: опеннет.ру

Додај коментар