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

Након два месеца развоја, Линус Торвалдс уведен издање кернела Линук КСНУМКС. Међу најзначајнијим променама: нова имплементација екФАТ система датотека, бареудп модул за креирање УДП тунела, заштита заснована на аутентификацији показивача за АРМ64, могућност прикачивања БПФ програма на ЛСМ руковаоце, нова имплементација Цурве25519, сплит- детектор закључавања, БПФ компатибилност са ПРЕЕМПТ_РТ, уклањање ограничења величине линије од 80 знакова у коду, узимајући у обзир индикаторе температуре процесора у планеру задатака, могућност коришћења цлоне() за покретање процеса у другој цгрупи, заштита од писања у меморију користећи усерфаултфд.

Нова верзија укључује 15033 поправки од 1961 програмера,
величина закрпе - 39 МБ (промене су утицале на 11590 датотека, додато 570560 линија кода,
297401 редова је уклоњено). Око 41% свих представљених у 5.7
промене се односе на драјвере уређаја, отприлике 16% промена је
став према ажурирању кода специфичног за хардверске архитектуре, 13%
односи се на мрежни стек, 4% на систем датотека и 4% на интерне
подсистеми кернела.

Главни иновације:

  • Дисковни подсистем, И/О и системи датотека
    • Додата нова имплементација екФАТ драјвера, основао засновано на тренутној бази кодова „сдфат“ (2.к) коју је развио Самсунг за своје Андроид паметне телефоне. Драјвер који је претходно додат кернелу заснован је на застарелом Самсунг коду (верзија 1.2.9) и заостајао је за око 10% у перформансама за новим драјвером. Подсетимо се да је додавање екФАТ подршке језгру постало могуће након Мајкрософта опубликовала јавне спецификације и омогућили екФАТ патенте за бесплатну употребу на Линук-у.
    • Бтрфс имплементира нову иоцтл() команду - БТРФС_ИОЦ_СНАП_ДЕСТРОИ_В2, која вам омогућава да избришете пододељак према његовом идентификатору. Обезбеђена је пуна подршка за клонирање инлине екстената. Проширен је број тачака отказивања за операције прерасподеле, што је смањило дуга чекања приликом извршавања команде 'поништавање стања'. Убрзано је утврђивање обима повратних веза (на пример, време извршавања тест скрипте је смањено са једног сата на неколико минута). Додата је могућност причвршћивања екстената датотеке сваком иноду стабла. Шема блокирања која се користи приликом писања на подпартиције и када се искључује НОЦОВ је редизајнирана. Побољшана ефикасност извршавања фсинц за опсеге.
    • КСФС је побољшао проверу метаподатака и фсцк за активне партиције. Предложена је библиотека за реконструкцију бтрее структура, која ће се у будућности користити за прераду кфс_репаир-а и имплементацију могућности опоравка без демонтаже партиције.
    • Експериментална подршка за постављање свап партиције у СМБ3 складишта је додата у ЦИФС. Имплементиране ПОСИКС екстензије за реаддир, дефинисане у спецификацији СМБ3.1.1. Побољшане перформансе писања за странице од 64 КБ када је омогућен цацхе=стрицт режим и користе се верзије протокола 2.1+.
    • ФС ЕКСТ4 је пребачен са бмап-а и иополл-а на коришћење иомап-а.
    • Ф2ФС пружа опциону подршку за компресију података користећи зстд алгоритам. Подразумевано, ЛЗ4 алгоритам се користи за компресију. Додата подршка за команду "цхаттр -ц цоммит". Обезбеђен је приказ времена монтаже. Додат је иоцтл Ф2ФС_ИОЦ_ГЕТ_ЦОМПРЕСС_БЛОЦКС да добијете информације о броју компримованих блокова. Додан излаз података компресије преко статк-а.
    • Цепх систем датотека је додао могућност локалног извршавања операција креирања и брисања датотека (унлинк) без чекања одговора са сервера (ради у асинхроном режиму). Промена, на пример, може значајно да побољша перформансе при покретању услужног програма рсинц.
    • Могућност коришћења виртиофс-а као система датотека највишег нивоа је додата у ОВЕРЛАИФС.
    • Преписано код преласка путање у ВФС, код за рашчлањивање симболичке везе је прерађен, а прелазак тачке монтирања је уједињен.
    • У сцси подсистему непривилегованим корисницима дозвољено извршавање ЗБЦ команди.
    • У дм_вритецацхе имплементиран могућност постепеног брисања кеша на основу параметра мак_аге, који поставља максимални животни век блока.
    • У дм_интегрити додао је подршка за операцију "одбаци".
    • У нулл_блк додао је подршка за замену грешака за симулацију грешака током тестирања.
    • Додато могућност слања удев обавештења о променама величине блок уређаја.
  • Мрежни подсистем
    • Нетфилтер укључен Промене, значајно убрзавајући обраду великих листа подударања (нфтаблес скупова), који захтевају проверу комбинације подмрежа, мрежних портова, протокола и МАЦ адреса.
      Оптимизације представио у модул нфт_сет_пипапо (ПИле ПАцкет ПОлициес), који решава проблем упаривања садржаја пакета са произвољним опсезима стања поља који се користе у правилима филтрирања, као што су опсег ИП и мрежних портова (нфт_сет_рбтрее и нфт_сет_хасх манипулишу подударањем интервала и директном рефлексијом вредности ). Верзија пипапо векторизована коришћењем 256-битних АВКС2 инструкција на систему са АМД Епиц 7402 процесором показала је повећање перформанси од 420% када се анализира 30 хиљада записа укључујући комбинације порт-протокола. Повећање када се упореди комбинација подмреже и броја порта приликом рашчлањивања 1000 записа било је 87% за ИПв4 и 128% за ИПв6.

    • Додато бареудп модул, који вам омогућава да инкапсулирате различите Л3 протоколе, као што су МПЛС, ИП и НСХ, у УДП тунел.
    • Настављена је интеграција МПТЦП (МултиПатх ТЦП) компоненти, проширења ТЦП протокола за организовање рада ТЦП везе са испоруком пакета истовремено дуж неколико рута кроз различите мрежне интерфејсе везане за различите ИП адресе.
    • Додато подршка за механизме хардверског убрзања за инкапсулирање Етхернет оквира у 802.11 (Ви-Фи).
    • Приликом премештања уређаја из једног мрежног именског простора у други, прилагођавају се права приступа и власништво над одговарајућим датотекама у сисф-у.
    • Додата је могућност коришћења ознаке СО_БИНДТОДЕВИЦЕ за кориснике који нису роот.
    • Трећи део закрпа је прихваћен, претварајући етхтоол комплет алата из иоцтл() у коришћење нетлинк интерфејса. Нови интерфејс олакшава додавање екстензија, побољшава руковање грешкама, омогућава слање обавештења када се стање промени, поједностављује интеракцију између кернела и корисничког простора и смањује број именованих листа које треба да се синхронизују.
    • Додата могућност коришћења специјалних хардверских акцелератора за обављање операција праћења везе.
    • У нетфилтер додато кука за повезивање класификатора одлазних пакета (егресс), која је допунила претходно присутну закачицу за долазне пакете (ингресс).
  • Виртуелизација и безбедност
    • Додата хардверска имплементација аутентификације показивача (Поинтер Аутхентицатион), који користи специјализована АРМ64 ЦПУ упутства за заштиту од напада коришћењем техника програмирања оријентисаног на повратак (РОП), у којима нападач не покушава да смести свој код у меморију, већ ради на деловима машинских инструкција које су већ доступне у учитаним библиотекама, завршавајући са контролним упутством за повратак. Безбедност се своди на коришћење дигиталних потписа за проверу повратних адреса на нивоу кернела. Потпис се чува у неискоришћеним горњим битовима самог показивача. За разлику од софтверских имплементација, креирање и верификација дигиталних потписа се врши помоћу посебних ЦПУ инструкција.
    • Додато могућност заштите меморијског подручја од писања коришћењем системског позива усерфаултфд(), дизајнираног за руковање грешкама страница (приступ недодељеним меморијским страницама) у корисничком простору. Идеја је да се користи усерфаултфд() и за откривање кршења приступа страницама означеним као заштићене од писања и за позивање руковаоца који може да одговори на такве покушаје писања (на пример, да управља променама током креирања живих снимака покренутих процеса, стање хватање приликом дамповања меморијских думпова на диск, имплементација заједничке меморије, праћење промена у меморији). Функционалност еквивалент коришћењем мпротецт() у комбинацији са СИГСЕГВ обрађивачем сигнала, али ради приметно брже.
    • СЕЛинук је застарео параметар "цхецкрекпрот", који вам омогућава да онемогућите провере заштите меморије приликом обраде правила (омогућава коришћење извршних меморијских области, без обзира на правила наведена у правилима). Кернфс симболичким везама је дозвољено да наследе контекст својих родитељских директоријума.
    • Структура укључен модул КРСИ, који вам омогућава да прикључите БПФ програме на било које ЛСМ куке у кернелу. Промена вам омогућава да креирате ЛСМ модуле (Линук Сецурити Модуле) у облику БПФ програма за решавање проблема ревизије и обавезне контроле приступа.
    • Спроведена Оптимизује перформансе /дев/рандом тако што групише ЦРНГ вредности уместо појединачног позивања РНГ инструкција. Побољшане перформансе гетрандом и /дев/рандом на АРМ64 системима који пружају РНГ упутства.
    • Имплементација елиптичне криве Крива25519 замењени за опцију из библиотеке ХАЦЛ, за које задржан математички доказ формалне верификације поузданости.
    • Додато механизам за информисање о слободним меморијским страницама. Користећи овај механизам, системи за госте могу да пренесу информације о страницама које се више не користе на хост систем, а хост може да преузме податке о страници.
    • У вфио/пци додао је подршка за СР-ИОВ (сингле-роот И/О виртуелизација).
  • Меморијске и системске услуге
    • Од 80 до 100 знакова повећана ограничење максималне дужине реда у изворним текстовима. Истовремено, програмерима се и даље препоручује да остану унутар 80 знакова по реду, али то више није тешко ограничење. Поред тога, прекорачење ограничења величине линије сада ће резултирати упозорењем о изградњи само ако се провера закрпе покрене са опцијом '--стрицт'. Промена ће омогућити да се програмери не ометају манипулација са размацима и осећајте се слободније када поравнате код, као и спречиће прекомерно ломљење линија, узнемирујући код разумевања и претраживања.
    • Додато подршка за ЕФИ мешовити режим покретања, који вам омогућава да учитате 64-битно језгро из 32-битног фирмвера који ради на 64-битном ЦПУ-у без коришћења специјализованог покретача.
    • Укључено систем за идентификацију и отклањање грешака подељених брава (“сплит лоцк"), који се јавља приликом приступа неусклађеним подацима у меморији због чињенице да приликом извршавања атомске инструкције подаци прелазе две линије кеш меморије ЦПУ-а. Такво блокирање доводи до значајног смањења перформанси (1000 циклуса спорије од атомске операције над подацима који спадају у једну линију кеша). У зависности од параметра покретања „сплит_лоцк_детецт“, кернел може открити таква закључавања у ходу и издати упозорења или послати СИГБУС сигнал апликацији која узрокује закључавање.
    • Планер задатака обезбеђује праћење сензора температуре (Тхермал Прессуре) и спроведено узимајући у обзир прегревање при постављању задатака. Користећи дату статистику, терморегулатор може да подеси максималну фреквенцију ЦПУ-а када се прегреје, а планер задатака сада узима у обзир смањење рачунарске снаге због таквог смањења фреквенције када је планирао извршавање задатака (раније је планер одговарао на промене у учесталости са одређеним закашњењем, неко време доношење одлука на основу надуваних претпоставки о расположивим рачунарским ресурсима).
    • Планер задатака укључује инваријантни индикатори праћење оптерећења, што вам омогућава да правилно процените оптерећење, без обзира на тренутну радну фреквенцију процесора. Промена вам омогућава да прецизније предвидите понашање задатака у условима динамичких промена напона и фреквенције процесора. На пример, задатак који је потрошио 1/3 ЦПУ ресурса на 1000 МХз ће потрошити 2/3 ресурса када фреквенција падне на 500 МХз, што је раније створило погрешну претпоставку да ради пуним капацитетом (тј. појавили су се задаци већи за планер само смањењем фреквенције, што је довело до доношења погрешних одлука у сцхедутил цпуфрек гувернору).
    • Интел П-стате драјвер, који је одговоран за избор режима перформанси, пребачен је на употребу сцхедулетил.
    • Имплементирана је могућност коришћења БПФ подсистема када језгро ради у реалном времену (ПРЕЕМПТ_РТ). Раније, када је ПРЕЕМПТ_РТ био омогућен, БПФ је требало да буде онемогућен.
    • Додат је нови тип БПФ програма - БПФ_МОДИФИ_РЕТУРН, који се може прикачити функцији у језгру и променити вредност коју враћа ова функција.
    • Додато прилика Коришћење системског позива цлоне3() за креирање процеса у цгроуп-у који се разликује од родитељске цгроуп-е, омогућавајући родитељском процесу да примени ограничења и омогући рачуноводство одмах након покретања новог процеса или нити. На пример, менаџер сервиса може директно доделити нове услуге одвојеним цгрупама, а нови процеси, када су смештени у „замрзнуте“ цгрупе, биће одмах заустављени.
    • у Кбуилд додао је подршка за променљиву окружења "ЛЛВМ=1" за прелазак на Цланг/ЛЛВМ комплет алата приликом прављења кернела. Захтеви за бинутилс верзију су подигнути (2.23).
    • Одељак /сис/кернел/дебуг/кунит/ је додат дебугф-овима са резултатима кунит тестова.
    • Додат је параметар за покретање кернела пм_дебуг_мессагес (аналогно /сис/повер/пм_дебуг_мессагес), који омогућава излаз информација за отклањање грешака о раду система за управљање напајањем (корисно при отклањању грешака у хибернацији и режиму мировања).
    • На асинхрони И/О интерфејс ио_уринг подршка додата спојница () и избор атомског пуфера.
    • Побољшано профилисање цгроуп користећи перф тоолкит. Раније је перф могао само да профилише задатке у одређеној цгрупи и није могао да сазна којој цгрупи припада тренутни узорак. перф сада преузима информације о цгроуп за сваки узорак, омогућавајући вам да профилишете више од једне цгрупе и примените сортирање према
      цгроуп у извештајима.

    • цгроупфс, псеудо-ФС за управљање цгроуповима, је додао подршку за проширене атрибуте (каттрс), помоћу којих, на пример, можете оставити додатне информације за руковаоце у корисничком простору.
    • У цгроуп контролеру меморије додатои подршку за рекурзивну заштиту вредности „мемори.лов“, која регулише минималну количину РАМ меморије која се даје члановима групе. Када монтирате хијерархију цгроуп са опцијом "мемори_рецурсивепрот", вредност "мемори.лов" која је постављена за ниже чворове ће се аутоматски дистрибуирати на све подређене чворове.
    • Додато Уацце (Унифиед/Усер-спаце-аццелератор Фрамеворк намењен приступу) оквир за дељење виртуелних адреса (СВА, Схаред Виртуал Аддрессинг) између ЦПУ-а и периферних уређаја, омогућавајући хардверским акцелераторима да приступе структурама података у главном ЦПУ-у.
  • Архитектуре хардвера
    • За АРМ архитектуру, имплементирана је могућност хот-фетцх меморије.
    • За РИСЦ-В архитектуру, додата је подршка за хот плуггинг и уклањање ЦПУ-а (ЦПУ хотплуг). За 32-битни РИСЦ-В имплементиран је еБПФ ЈИТ.
    • Уклоњена је могућност коришћења 32-битних АРМ система за покретање КВМ гостујућих окружења.
    • Уклоњена је "лажна" НУМА имплементација за архитектуру с390, за коју нису пронађени случајеви употребе за постизање побољшања перформанси.
    • За АРМ64 је додата подршка за екстензију АМУ (Ацтивити Мониторс Унит), дефинисану у АРМв8.4 и која обезбеђује бројаче перформанси који се користе за израчунавање фактора корекције скалирања фреквенције у планеру задатака.
  • Оборудование
    • Додато подршка за вДПА уређаје који користе канал за размену података који је у складу са виртио спецификацијама. вДПА уређаји могу бити или физички повезана опрема или софтверски емулирани виртуелни уређаји.
    • У ГПИО подсистему појавио се нова иоцтл() команда за надгледање промена, која вам омогућава да обавестите процес о променама у стању било које ГПИО линије. Као пример коришћења нове команде предложио гпио-ватцх услужни програм.
    • У и915 ДРМ драјверу за Интел видео картице укључени подразумевана подршка за Тигерлаке (“Ген12”) чипове и додата иницијална подршка за контролу ОЛЕД позадинског осветљења. Побољшана подршка за чипове Ице Лаке, Елкхарт Лаке, Баитраил и Хасвелл.
    • У драјверу амдгпу додао је могућност учитавања фирмвера у УСБЦ чип за АСИЦ. Побољшана подршка за АМД Ризен 4000 "Реноир" чипове. Сада постоји подршка за контролу ОЛЕД панела. Обезбеђен приказ статуса фирмвера у дебугф-овима.
    • Могућност коришћења ОпенГЛ 4 у системима за госте је додата вмвгфк ДРМ драјверу за ВМваре виртуелизоване системе (раније је био подржан ОпенГЛ 3.3).
    • Додат је нови ДРМ драјвер тидсс за систем приказа ТИ Кеистоне платформе.
    • Додати драјвери за ЛЦД панеле: Феикин К101 ИМ2БА02, Самсунг с6е88а0-амс452еф01, Новатек НТ35510, Елида КД35Т133, ЕДТ, НевЕаст Оптоелецтроницс ВЈФХ116008А, Роцктецх РК101ИИ Фрида 01Д350
    • У систем управљања енергијом додао је подршка за платформу Интел Јаспер Лаке (ЈСЛ) засновану на Атому.
    • Додата подршка за Пинебоок Про лаптоп заснован на Роцкцхип РК3399, Пине64 ПинеТаб таблету и паметном телефону ПинеПхоне заснован на Аллвиннер А64.
    • Додата подршка за нове аудио кодеке и чипове:
      Амлогиц АИУ, Амлогиц Т9015, Текас Инструментс ТЛВ320АДЦКС140, Реалтек РТ5682, АЛЦ245, Броадцом БЦМ63КСКС И2С, Маким МАКС98360А, Пресонус Студио 1810ц, МОТУ МицроБоок ИИц.

    • Додата подршка за АРМ плоче и платформе Куалцомм Снапдрагон 865 (СМ8250), ИПК6018, НКСП и.МКС8М Плус, Контрон “сл28”, 11 и.МКС6 ТецхНекион Пицо опције плоче, три нове Торадек Цолибри опције, Самсунг С7710 заснован на Галаки СТцовер-у -Ерицссон у2, ДХ Елецтроницс ДХЦОМ СоМ и ПДК8500, Ренесас М2УЛЦБ, Хоперун ХиХопе, Линутроник Тестбок в3, ПоцкетБоок Тоуцх Лук 2.

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

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