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

Након два месеца развоја, Линус Торвалдс уведен издање кернела Линук КСНУМКС. Међу најзначајнијим променама: подршка за АМД Нави ГПУ, Зхаоки процесоре и Интел Спеед Селецт технологију управљања напајањем, могућност коришћења умваит инструкција за чекање без употребе циклуса,
режим 'утилизатион цлампинг' повећава интерактивност за асиметричне ЦПУ-е, системски позив пидфд_опен, могућност коришћења ИПв4 адреса из подмреже 0.0.0.0/8, могућност хардверског убрзања нфтаблес-а, ХДР подршку у ДРМ подсистему, интеграцију АЦРН-а хипервизор.

В саопштење ново издање, Линус је подсетио све програмере на главно правило развоја кернела - одржавање истог понашања за компоненте корисничког простора. Промене у кернелу ни на који начин не би требало да разбију већ покренуте апликације или да доведу до регресије на нивоу корисника. У овом случају, кршење понашања може изазвати не само промену АБИ-ја, уклањање застарелог кода или појаву грешака, већ и индиректан утицај корисних побољшања која раде исправно. Као илустративни пример било је одбачен корисно оптимизација у Ект4 коду, који смањује број приступа драјву тако што онемогућава претходно читање иноде табеле за мале И/О захтеве.

Оптимизација је довела до тога да је, услед смањења активности диска, ентропија за гетрандом() генератор случајних бројева почела да се акумулира спорије и да је у неким конфигурацијама, под одређеним околностима, могло да се примети замрзавање током учитавања све док се ентропијски скуп не смањи. испуњен. Пошто је оптимизација заиста корисна, међу програмерима је настала дискусија у којој је предложено да се проблем реши тако што ће се онемогућити подразумевани режим блокирања позива гетрандом() и додати опциона заставица за чекање ентропије, али би таква промена утицала на квалитет случајних бројева у почетној фази учитавања.

Нова верзија укључује 15794 поправки од 1974 програмера,
величина закрпе - 92 МБ (промене су утицале на 13986 датотека, додато 258419 линија кода,
599137 редова је уклоњено). Око 39% свих представљених у 5.3
промене се односе на драјвере уређаја, отприлике 12% промена је
став према ажурирању кода специфичног за хардверске архитектуре, 11%
односи се на мрежни стек, 3% на систем датотека и 3% на интерне
подсистеми кернела.

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

  • Меморијске и системске услуге
    • Наставак развоја 'пидфд' функционалности како би се лакше решиле ситуације поновног коришћења ПИД-а (пидфд је повезан са одређеним процесом и не мења се, док ПИД може бити повезан са другим процесом након што се тренутни процес повезан са тим ПИД-ом оконча). Претходно је додат језгру
      системски позив пидфд_сенд_сигнал() и ознака ЦЛОНЕ_ПИДФД у позиву цлоне() за добијање пидфд-а за употребу у идфд_сенд_сигнал(). Коришћење цлоне() са заставицом ЦЛОНЕ_ПИДФД може да изазове проблеме са менаџерима услуга или системом за принудно укидање недостатка меморије на Андроид платформи. У овом случају, за покретање се користи позив форк() или цлоне() без ЦЛОНЕ_ПИДФД.

      Кернел 5.3 увео је системски позив пидфд_опен(), што вам омогућава да добијете проверљив пидфд за произвољни постојећи процес који није креиран позивањем цлоне() са ознаком ЦЛОНЕ_ПИДФД. Такође је додата подршка за пидфд анкетирање помоћу полл() и еполл(), што омогућава менаџерима процеса да прате завршетак произвољних процеса без страха од услова трке ако се ПИД додели новом процесу. Механизам за обавештавање када је процес повезан са пидфд-ом прекинут сличан је обавештавању када је његов подређени процес прекинут;

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

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

    • Нове опције командне линије кернела „инит_он_аллоц“ и „инит_он_фрее“ су додате, када је наведено, омогућено је нулирање додељених и ослобођених меморијских области (пуњење нулама за маллоц и фрее), што омогућава повећану безбедност због додатних трошкова иницијализације;
    • Додат је нови драјвер виртио-иомму са имплементацијом паравиртуелизованог уређаја који вам омогућава да шаљете ИОММУ захтеве као што су АТТАЦХ, ДЕТАЦХ, МАП и УНМАП преко виртио транспорта без емулације таблица меморијских страница;
    • Додат је нови драјвер виртио-пмем, који представља приступ уређајима за складиштење који су мапирани у физички адресни простор, као што су НВДИММ;
    • Имплементирана је могућност прикачивања криптографских кључева корисничком или мрежном именском простору (кључеви постају недоступни изван изабраног именског простора), као и заштита кључева помоћу АЦЛ-ова;
    • У крипто подсистем додао је подршка за веома брз некриптографски алгоритам хеширања ккхасх, чија брзина зависи од перформанси меморије;
  • Мрежни подсистем
    • Омогућена обрада ИПв4 адреса у опсегу 0.0.0.0/8, који је раније био недоступан за коришћење. Увођење ове подмреже ће омогућити дистрибуирати још 16 милиона ИПв4 адреса;
    • У Нетфилтер за нфтаблес додао је подршка за механизме хардверског убрзања за филтрирање пакета коришћењем додатних драјвера Флов Блоцк АПИ. Читаве табеле правила са свим ланцима могу се поставити на страну мрежних адаптера. Омогућавање се врши везивањем заставице НФТ_ТАБЛЕ_Ф_ХВ за табелу. Подржава једноставне метаподатке протокола Лаиер 3 и Лаиер 4, акције прихватања/одбијања, мапирања према ИП-у и мрежним портовима пошиљаоца/примаоца и типу протокола;
    • Додато уграђена подршка за праћење везе за мрежне мостове, која не захтева употребу слоја за емулацију бр_нетфилтер;
    • У нф_таблес додао је подршка за СИНПРОКСИ модул, који реплицира сличну функционалност из иптаблес-а, а такође је имплементирана могућност провере правила за појединачне опције у ИПв4 заглављу;
    • Додата је могућност повезивања БПФ програма на системске позиве сетсоцкопт() и гетсоцкопт(), што вам, на пример, омогућава да приложите сопствене руковаоце приступа овим позивима. Поред тога, додата је нова позивна тачка (хоок), помоћу које можете организовати позив БПФ програму једном за сваки РТТ интервал (повратно време, време пинга);
    • За ИПв4 и ИПв6 додато нови механизам за складиштење података о рутирању нектхоп који има за циљ повећање скалабилности табела рутирања. Тестови су показали да је приликом коришћења новог система скуп од 743 хиљаде рута учитан у језгро за само 4.3 секунде;
    • За Блуетоотх имплементиран функционалност потребна за подршку ЛЕ пинга;
  • Оборудование
    • Додато подршка за к86 компатибилне процесоре компаније Зхаокин, развијен као резултат заједничког пројекта ВИА Тецхнологиес и општине Шангај. ЗКС ЦПУ породица је изграђена на к86-64 Исаиах архитектури, настављајући развој технологије ВИА Центаур;
    • ДРМ (Дирецт Рендеринг Манагер) подсистем, као и амдгпу и и915 графички драјвери, има додатну подршку за рашчлањивање, обраду и слање ХДР (високог динамичког опсега) метаподатака преко ХДМИ порта, омогућавајући коришћење ХДР панела и екрана који могу да приказ додатних опсега осветљености;
    • Амдгпу драјвер је додао почетну подршку за АМД НАВИ ГПУ (РКС5700), која укључује основни драјвер, код интеракције са екраном (ДЦН2), ГФКС и подршку за рачунаре (ГФКС10),
      СДМА 5 (Систем ДМА0), управљање напајањем и мултимедијални кодери/декодери (ВЦН2). амдгпу такође побољшава подршку за картице засноване на Вега12 и Вега20 ГПУ-овима, за које су додате додатне могућности управљања меморијом и напајањем;

    • Додата подршка за картице засноване на ВегаМ ГПУ-овима у амдкфд драјверу (за дискретне ГПУ, као што су Фији, Тонга, Поларис);
    • У ДРМ драјверу за Интел видео картице за Ицелаке чипове имплементиран нови мулти-сегментни режим корекције гама. Додата могућност излаза преко ДисплаиПорт-а у ИЦбЦр4:2:0 формату. Додат је нови фирмвер ГуЦ за СКЛ, БКСТ, КБЛ, ГЛК и ИЦЛ. Имплементирана је могућност искључивања напајања екрана у асинхроном режиму. Додато подршка за чување и враћање контекста рендеровања за чипове Иронлаке (ген5) и ген4 (Броадватер - Цантига), што вам омогућава да вратите стање ГПУ-а из корисничког простора када прелазите са једне групне операције на другу;
    • Ноувеау драјвер обезбеђује детекцију НВИДИА Туринг ТУ116 чипсета;
    • Могућности ДРМ/КМС драјвера за АРМ Комеда акцелераторе екрана (Мали Д71) су проширене, подршка за скалирање, раздвајање/спајање слојева, ротацију, одложено писање, АФБЦ, СММУ и формате кодирања боја И0Л2, П010, ИУВ420_8/10БИТ је додато;
    • МСМ драјвер додаје подршку за А540 ГПУ Адрено серију која се користи у Куалцомм процесорима, као и подршку за МСМ8998 ДСИ контролер за Снапдрагон 835;
    • Додати драјвери за ЛЦД панеле Самсунг С6Е63М0, Армадеус СТ0700, ЕДТ ЕТМ0430Г0ДХ6, ОСД101Т2045-53ТС,
      Евервисион ВГГ804821, ФриендлиЕЛЕЦ ХД702Е, КОЕ тк14д24вм1бпа, ТФЦ С9700РТВВ43ТР-01Б, ЕДТ ЕТ035012ДМ6 и ВКСТ ВЛ050-8048НТ-Ц01;

    • Додато драјвер за омогућавање алата за убрзање декодирања
      видео снимци доступни у Амлогиц Месон СоЦ-у;

    • У в3д драјверу (за Броадцом Видео Цоре В ГПУ који се користи у Распберри Пи) појавио се подршка диспечирање рачунарских схадера;
    • Додато драјвер за СПИ тастатуре и трацкпад-ове који се користе у савременим моделима Аппле МацБоок и МацБоокПро лаптопова;
    • Додато додатна заштита за иоцтл позиве повезане са драјвером дискете, а сам драјвер је означен као неодржаван
      („сироче“), што подразумева прекид његовог тестирања. Драјвер је и даље ускладиштен у кернелу, али његов исправан рад није загарантован. Драјвер се сматра застарелим, јер је тешко пронаћи радну опрему за тестирање - сви тренутни екстерни дискови, по правилу, користе УСБ интерфејс.

    • Додато цпуфрек драјвер за Распберри Пи плоче, који вам омогућава да динамички контролишете промене у фреквенцији процесора;
    • Додата подршка за нови АРМ СоЦ Медиатек мт8183 (4к Цортек-А73 + 4к Цортек-А53), ТИ Ј721Е (2к Цортек-А72 + 3к Цортек-Р5Ф + 3 ДСП-а + ММА) и Амлогиц Г12Б (4к Цортек-А73 +- А2), као и табле:
      • Пурисм Либрем5,
      • Аспеед БМЦ,
      • Мицрософт Олимпус БМЦ,
      • Контрон СМАРЦ,
      • Новтецх Мееркат96 (и.МКС7),
      • СТ Мицро Авенгер96,
      • Гоогле Цхеза (Куалцомм СДМ845),
      • Куалцомм Драгонбоард 845ц (Куалцомм СДМ845),
      • Хугсун Кс99 ТВ Бок (Роцкцхип РК3399),
      • Кхадас Едге/Едге-В/Цаптаин (Роцкцхип РК3399),
      • ХиХопе РЗ/Г2М,
      • НКСП ЛС1021А-ТСН.

Истовремено, Латиноамеричка фондација за слободни софтвер формирана
опција потпуно бесплатно језгро 5.3 - Линук-либре 5.3-гну, очишћен од фирмвера и елемената драјвера који садрже неслободне компоненте или одељке кода, чији је обим ограничен од стране произвођача. У новом издању, учитавање блоб-а је онемогућено у драјверима кцом, хдцп дрм, аллегро-двт и месон-вдец.
Ажуриран код за чишћење мрља у драјверима и подсистемима амдгпу, и915, нетк, р8169, брцмфмац, ртл8188еу, адрено, си2157, пврусб2, тоуцхсцреен_дми, драјвер за звук за скилаке, као и у документацији микрокода.

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

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