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

Након два месеца развоја, Линус Торвалдс је представио издање Линук кернела 5.19. Међу најзначајнијим променама: подршка за архитектуру процесора ЛоонгАрцх, интеграција „БИГ ТЦП“ закрпа, режим на захтев у фсцацхе-у, уклањање кода ради подршке формату а.оут, могућност коришћења ЗСТД за компресију фирмвера, интерфејс за управљање избацивањем меморије из корисничког простора, повећање поузданости и перформанси генератора псеудо-случајних бројева, подршка за Интел ИФС (Ин-Фиелд Сцан), АМД СЕВ-СНП (Сецуре Нестед Пагинг), Интел ТДКС (Трустед Домаин Ектенсионс) и АРМ СМЕ (Сцалабле Матрик Ектенсион) екстензије.

У најави, Линус је рекао да ће највероватније следеће издање кернела бити означено бројем 6.0, пошто је грана 5.к акумулирала довољно издања да промени први број у броју верзије. Промена нумерације се врши из естетских разлога и представља формални корак који ублажава нелагодност услед гомилања великог броја издања у серији.

Линус је такође поменуо да је користио Аппле лаптоп заснован на АРМ64 архитектури (Аппле Силицон) са Линук окружењем заснованим на Асахи Линук дистрибуцији за креирање издања. То није Линусова примарна радна станица, али он је користио платформу да тестира њену погодност за рад кернела и да се увери да може да произведе издања кернела док путује са лаганим лаптопом при руци. Раније, пре много година, Линус је имао искуства у коришћењу Аппле опреме за развој – једном је користио рачунар заснован на ппц970 ЦПУ-у и Мацбоок Аир лаптоп.

Нова верзија укључује 16401 исправку од 2190 програмера (у последњем издању било је 16206 поправки од 2127 програмера), величина закрпе је 90 МБ (промене су утицале на 13847 датотека, додато је 1149456 линија кода, 349177 линија је избрисано). Око 39% свих промена уведених у 5.19 односи се на драјвере уређаја, приближно 21% промена се односи на ажурирање кода специфичног за хардверске архитектуре, 11% се односи на мрежни стек, 4% на систем датотека и 3% односе се на унутрашње подсистеме кернела.

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

  • Дисковни подсистем, И/О и системи датотека
    • Систем датотека ЕРОФС (Енханцед Реад-Онли Филе Систем), намењен за употребу на партицијама само за читање, конвертован је да користи фсцацхе подсистем, који обезбеђује кеширање података. Промена је значајно побољшала перформансе система у којима се велики број контејнера покреће са слике засноване на ЕРОФС.
    • Подсистему фсцацхе додат је режим читања на захтев, који се користи за оптимизацију ЕРОФС-а. Нови режим вам омогућава да организујете кеширање читања са ФС слика које се налазе у локалном систему. За разлику од првобитно доступног режима рада, који је фокусиран на кеширање у локалном систему датотека података који се преносе преко мрежних система датотека, режим „на захтев“ делегира функције преузимања података и њиховог уписивања у кеш на посебан позадински процес који се изводи у корисничком простору.
    • КСФС пружа могућност складиштења милијарди проширених атрибута у и-чвору. Максималан број екстената за једну датотеку је повећан са 4 милијарде на 247. Имплементиран је режим за атомско ажурирање неколико проширених атрибута датотеке одједном.
    • Датотечни систем Бтрфс је оптимизовао рад са закључавањем, што је омогућило приближно 7% повећање перформанси када се директно пише у режиму Новаит. Перформансе операција у НОЦОВ режиму (без копирања на уписивање) су повећане за приближно 3%. Оптерећење кеша странице приликом покретања команде „пошаљи“ је смањено. Минимална величина подстраница је смањена са 64К на 4К (могу се користити подстранице мање од страница језгра). Направљен је прелаз са коришћења стабла радикса на КСАрраис алгоритам.
    • НФС серверу је додат режим за продужење очувања стања закључавања које је поставио клијент који је престао да одговара на захтеве. Нови режим вам омогућава да одложите брисање закључавања до једног дана осим ако други клијент не затражи конкурентно закључавање. У нормалном режиму, блокирање се брише 90 секунди након што клијент престане да реагује.
    • Подсистем за праћење догађаја у фанотифи ФС имплементира ознаку ФАН_МАРК_ЕВИЦТАБЛЕ, помоћу које можете да онемогућите качење циљних и-чворова у кешу, на пример, да бисте игнорисали подгране без закачења њихових делова у кеш меморију.
    • Драјвер за систем датотека ФАТ32 је додао подршку за добијање информација о времену креирања датотеке путем статк системског позива уз имплементацију ефикасније и функционалније верзије стат(), која враћа проширене информације о датотеци.
    • Урађене су значајне оптимизације за екФАТ драјвер како би се омогућило истовремено брисање групе сектора када је активан режим 'дирсинц', уместо узастопног брисања сектор по сектор. Смањењем броја захтева за блокирање након оптимизације, учинак креирања великог броја директоријума на СД картици повећан је за више од 73-85%, у зависности од величине кластера.
    • Кернел укључује прво корективно ажурирање нтфс3 драјвера. Пошто је нтфс3 укључен у кернел 5.15 прошлог октобра, драјвер није ажуриран и комуникација са програмерима је изгубљена, али су програмери сада наставили са објављивањем промена. Предложене закрпе су елиминисале грешке које су довеле до цурења меморије и кварова, решиле проблеме са извршавањем кфстестова, очистиле неискоришћени код и поправиле грешке у куцању.
    • За ОверлаиФС је имплементирана могућност мапирања корисничких ИД-ова монтираних система датотека, која се користи за упаривање датотека одређеног корисника на монтираној страној партицији са другим корисником на тренутном систему.
  • Меморијске и системске услуге
    • Додата почетна подршка за архитектуру скупа инструкција ЛоонгАрцх која се користи у процесорима Лоонгсон 3 5000, која имплементира нови РИСЦ ИСА, сличан МИПС и РИСЦ-В. ЛоонгАрцх архитектура је доступна у три типа: смањена 32-битна (ЛА32Р), обична 32-битна (ЛА32С) и 64-битна (ЛА64).
    • Уклоњен је код за подршку формату извршне датотеке а.оут, који је застарео у издању 5.1. Формат а.оут је одавно застарео на Линук системима, а генерисање а.оут датотека није подржано од стране савремених алата у подразумеваним Линук конфигурацијама. Учитавач за а.оут датотеке може се у потпуности имплементирати у кориснички простор.
    • Подршка за опције покретања специфичне за к86 је укинута: носп, носмап, носмеп, ноекец и ноцлфлусх).
    • Подршка за застарелу архитектуру ЦПУ х8300 (Ренесас Х8/300), која је дуго остала без подршке, је укинута.
    • Проширене могућности које се односе на реаговање на детекцију подељених закључавања („сплит лоцкс”) до којих долази приликом приступа неусклађеним подацима у меморији због чињенице да приликом извршавања атомске инструкције подаци прелазе две ЦПУ кеш линије. Такве блокаде доводе до значајног пада перформанси. Ако је раније, подразумевано, језгро издало упозорење са информацијама о процесу који је изазвао блокирање, сада ће проблематични процес бити додатно успорен да би се сачувале перформансе остатка система.
    • Додата подршка за механизам ИФС (Ин-Фиелд Сцан) имплементиран у Интел процесорима, који вам омогућава да покренете дијагностичке тестове ниског нивоа ЦПУ-а који могу да идентификују проблеме који нису откривени стандардним алатима на основу кодова за исправљање грешака (ЕЦЦ) или паритетних битова . Извршени тестови су у облику фирмвера за преузимање, дизајнираног слично ажурирањима микрокода. Резултати теста су доступни преко сисфс-а.
    • Додата је могућност уграђивања боотцонфиг датотеке у кернел, што омогућава, поред опција командне линије, одређивање параметара кернела кроз датотеку за подешавања. Уграђивање се врши помоћу опције склопа 'ЦОНФИГ_БООТ_ЦОНФИГ_ЕМБЕД_ФИЛЕ=»/ПАТХ/ТО/БООТЦОНФИГ/ФИЛЕ»'. Раније је боотцонфиг одређен прилагањем инитрд слике. Интеграција у кернел омогућава да се боотцонфиг користи у конфигурацијама без инитрд-а.
    • Имплементирана је могућност преузимања фирмвера компримованог помоћу Зстандардног алгоритма. Скуп контролних датотека /сис/цласс/фирмваре/* је додат у сисфс, омогућавајући вам да покренете учитавање фирмвера из корисничког простора.
    • Асинхрони И/О интерфејс ио_уринг нуди нову заставицу, ИОРИНГ_РЕЦВСЕНД_ПОЛЛ_ФИРСТ, која ће, када је постављена, прво послати мрежну операцију да се обради коришћењем прозивања, што може уштедети ресурсе у ситуацијама када је обрада операције са одређеним кашњењем прихватљива. ио_уринг је такође додао подршку за системски позив соцкет(), предложио нове заставице за поједностављење управљања дескрипторима датотека, додао режим „више снимака“ за прихватање неколико веза одједном у позиву аццепт() и додао операције за прослеђивање НВМе команде директно на уређај.
    • Архитектура Кстенса пружа подршку за КЦСАН (Кернел Цонцурренци Санитизер) алат за отклањање грешака, дизајниран да динамички детектује услове трке унутар кернела. Такође је додата подршка за режим спавања и копроцесоре.
    • За архитектуру м68к (Моторола 68000) имплементирана је виртуелна машина (симулатор платформе) заснована на Андроид Голдфисх емулатору.
    • За архитектуру ААрцх64 имплементирана је подршка за Армв9-А СМЕ (Сцалабле Матрик Ектенсион) проширења.
    • еБПФ подсистем омогућава чување откуцаних показивача у структурама мапа, а такође додаје подршку за динамичке показиваче.
    • Предложен је нови проактивни механизам враћања меморије који подржава контролу корисничког простора помоћу датотеке мемори.рецлаим. Писањем броја у наведену датотеку покушаће се избацити одговарајући број бајтова из скупа повезаног са цгроуп-ом.
    • Побољшана прецизност коришћења меморије приликом компримовања података у свап партицији помоћу механизма зсвап.
    • За РИСЦ-В архитектуру, обезбеђена је подршка за покретање 32-битних извршних програма на 64-битним системима, додат је режим за везивање рестриктивних атрибута за меморијске странице (на пример, за онемогућавање кеширања), а имплементирана је функција кекец_филе_лоад() .
    • Имплементација подршке за 32-битне Армв4Т и Армв5 системе је прилагођена за употребу у универзалним вишеплатформским кернелима који су погодни за различите АРМ системе.
  • Виртуелизација и безбедност
    • ЕФИ подсистем имплементира могућност поверљивог преноса тајних информација у системе за госте без њиховог откривања хост систему. Подаци се обезбеђују преко директоријума сецурити/цоцо у сецуритифс.
    • Режим заштите од закључавања, који ограничава приступ роот кориснику језгру и блокира путање заобилажења УЕФИ Сецуре Боот, елиминисао је рупу која је омогућавала заобилажење заштите манипулисањем дебагером кернела.
    • Укључене су закрпе које имају за циљ побољшање поузданости и перформанси генератора псеудо-случајних бројева.
    • Када се гради коришћењем Цланг 15, имплементирана је подршка за механизам за насумично подешавање структура кернела.
    • Механизам Ландлоцк, који вам омогућава да ограничите интеракцију групе процеса са спољним окружењем, пружа подршку за правила која вам омогућавају да контролишете извршавање операција преименовања датотека.
    • ИМА (Интегрити Меасуремент Арцхитецтуре) подсистем, дизајниран да провери интегритет компоненти оперативног система коришћењем дигиталних потписа и хешова, пребачен је на коришћење модула фс-верити за верификацију датотека.
    • Логика радњи приликом онемогућавања непривилегованог приступа еБПФ подсистему је промењена - раније су све команде повезане са системским позивом бпф() биле онемогућене, а почевши од верзије 5.19, остављен је приступ командама које не доводе до креирања објеката . Ово понашање захтева привилеговани процес за учитавање БПФ програма, али тада непривилеговани процеси могу да комуницирају са програмом.
    • Додата подршка за екстензију АМД СЕВ-СНП (Сецуре Нестед Пагинг), која обезбеђује безбедан рад са табелама страница угнежђене меморије и штити од „ундеСЕрВед“ и „СЕВерити“ напада на АМД ЕПИЦ процесоре, који омогућавају заобилажење АМД СЕВ (Сецуре Енцриптед Виртуализатион). ) механизам заштите.
    • Додата подршка за Интел ТДКС (Трустед Домаин Ектенсионс) механизам, који вам омогућава да блокирате покушаје треће стране да приступе шифрованој меморији виртуелних машина.
    • Виртио-блк драјвер, који се користи за емулацију блок уређаја, додао је подршку за И/О коришћењем прозивања, што је, према тестовима, смањило кашњење за око 10%.
  • Мрежни подсистем
    • Пакет укључује серију ВЕЛИКИХ ТЦП закрпа које вам омогућавају да повећате максималну величину пакета ТЦП пакета на 4 ГБ да бисте оптимизовали рад брзих интерних мрежа центара података. Слично повећање величине пакета са 16-битном величином поља заглавља постиже се имплементацијом „јумбо“ пакета, чија је величина у ИП заглављу постављена на 0, а стварна величина се преноси у посебном 32-битном поље у посебном приложеном заглављу. У тестирању перформанси, подешавање величине пакета на 185 КБ повећало је пропусност за 50% и значајно смањило кашњење у преносу података.
    • Настављен је рад на интеграцији алата у мрежни стог за праћење разлога за испуштање пакета (шифре разлога). Шифра разлога се шаље када се меморија повезана са пакетом ослободи и дозвољава ситуације као што су одбацивање пакета због грешака у заглављу, откривање лажирања рп_филтер, неважећи контролни збир, недостатак меморије, активирана правила ИПСец КСФРМ, неважећи редни број ТЦП, итд.
    • Додата подршка за враћање МПТЦП (МултиПатх ТЦП) веза за коришћење регуларног ТЦП-а, у ситуацијама када се одређене МПТЦП функције не могу користити. МПТЦП је проширење ТЦП протокола за организовање рада ТЦП везе са испоруком пакета истовремено дуж неколико рута кроз различите мрежне интерфејсе повезане са различитим ИП адресама. Додат АПИ за контролу МПТЦП токова из корисничког простора.
  • Оборудование
    • Додато је преко 420 линија кода у вези са амдгпу драјвером, од којих су око 400 линија аутоматски генерисане датотеке заглавља за податке АСИЦ регистра у АМД ГПУ драјверу, а још 22.5к линија обезбеђује почетну имплементацију подршке за АМД СоЦ21. Укупна величина драјвера за АМД ГПУ је премашила 4 милиона линија кода. Поред СоЦ21, АМД драјвер укључује подршку за СМУ 13.к (Јединицу за управљање системом), ажурирану подршку за УСБ-Ц и ГПУВМ, и спреман је да подржи следеће генерације РДНА3 (РКС 7000) и ЦДНА (АМД Инстинцт) платформе.
    • И915 драјвер (Интел) има проширене могућности које се односе на управљање напајањем. Додати идентификатори за Интел ДГ2 (Арц Алцхемист) ГПУ који се користе на лаптоповима, обезбеђена почетна подршка за платформу Интел Раптор Лаке-П (РПЛ-П), додате информације о Арцтиц Соунд-М графичким картицама), имплементиран АБИ за рачунарске машине, додат за ДГ2 картице подржавају формат Тиле4; за системе засноване на Хасвелл микроархитектури имплементирана је ДисплаиПорт ХДР подршка.
    • Ноувеау драјвер је прешао на коришћење руковаоца дрм_гем_плане_хелпер_препаре_фб; статичка алокација меморије је примењена на неке структуре и променљиве. Што се тиче употребе кернел модула отвореног кода од стране НВИДИА-е у Ноувеау-у, досадашњи рад се своди на идентификацију и елиминисање грешака. У будућности се планира да се објављени фирмвер користи за побољшање перформанси драјвера.
    • Додат је драјвер за НВМе контролер који се користи у Аппле рачунарима заснованим на М1 чипу.

Истовремено, Латиноамеричка фондација за слободни софтвер формирала је верзију потпуно бесплатног кернела 5.19 - Линук-либре 5.19-гну, очишћену од елемената фирмвера и драјвера који садрже неслободне компоненте или делове кода, чији је обим ограничено од стране произвођача. Ново издање чисти драјвере за пуреЛиФи Кс/КСЛ/КСЦ и ТИ АМк3 Вкуп-М3 ИПЦ. Ажурирани код за чишћење мрља у Силицон Лабс ВФКС, АМД амдгпу, Куалцомм ВЦНСС учитавачу периферних слика, Реалтек Блуетоотх, Мелланок Спецтрум, Марвелл ВиФи-Ек, Интел АВС, ИФС, драјверима и подсистемима пу3-имгу. Имплементирана је обрада Куалцомм ААрцх64 датотека стабла уређаја. Додата подршка за нову шему именовања компоненти Соунд Опен Фирмваре. Заустављено је чишћење АТМ Амбассадор драјвера, који је уклоњен из кернела. Управљање чишћењем мрља у ХДЦП-у и Мелланок Цоре-у је премештено у засебне кцонфиг ознаке.

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

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