Нашри ядрои Linux 5.3

Пас аз ду моҳи рушд, Линус Торвалдс муаррифӣ кард баровардани ядро Linux 5.3. Дар байни тағиротҳои назаррас: дастгирии AMD Navi GPU, протсессори Zhaoxi ва Intel Speed ​​​​Select технологияи идоракунии нерӯ, қобилияти истифодаи дастурҳои umwait барои интизор шудан бидуни истифодаи давраҳо,
режими "каноркунии истифода", ки интерактивиро барои CPU-ҳои асимметрӣ афзоиш медиҳад, занги системаи pidfd_open, қобилияти истифодаи суроғаҳои IPv4 аз зершабакаи 0.0.0.0/8, имкони суръатбахшии сахтафзори nftables, дастгирии HDR дар зерсистемаи DRM, ҳамгироии ACRN гипервизор.

В эълон нашри нав, Линус ба ҳамаи таҳиягарон қоидаҳои асосии рушди ядро ​​​​ - нигоҳ доштани рафтори якхела барои ҷузъҳои фазои корбарро хотиррасон кард. Тағйирот дар ядро ​​набояд ба ҳеҷ ваҷҳ барномаҳои аллакай иҷрошавандаро вайрон кунад ё ба регрессия дар сатҳи корбар оварда расонад. Дар ин ҳолат, вайрон кардани рафтор метавонад на танҳо ба тағирёбии ABI, нест кардани коди кӯҳна ё пайдоиши хатогиҳо, балки таъсири ғайримустақими такмилдиҳии муфид, ки дуруст кор мекунанд, оварда расонад. Ҳамчун мисоли равшан вуҷуд дошт партофташуда муфид аст оптимизатсия дар рамзи Ext4, ки шумораи дастрасии дискро тавассути ғайрифаъол кардани хондани пешакии ҷадвали inode барои дархостҳои хурди воридотӣ / баромад кам мекунад.

Оптимизатсия ба он оварда расонд, ки бинобар кам шудани фаъолияти диск, энтропия барои генератори рақамҳои тасодуфии getrandom() сусттар ҷамъ мешавад ва дар баъзе конфигуратсияҳо, дар ҳолатҳои муайян, яхбандӣ ҳангоми боркунӣ то пайдо шудани ҳавзи энтропия мушоҳида мешавад. пур шуд. Азбаски оптимизатсия воқеан муфид аст, дар байни таҳиягарон баҳсе ба миён омад, ки дар он пешниҳод карда шуд, ки мушкилот бо хомӯш кардани ҳолати пешфарз бастани занги getrandom() ва илова кардани парчами ихтиёрӣ барои интизории энтропия, аммо чунин тағирот ба сифати рақамҳои тасодуфӣ дар марҳилаи ибтидоии боркунӣ.

Версияи нав 15794 ислоҳи 1974 таҳиягарро дар бар мегирад,
андозаи ямоқи - 92 МБ (тағирот ба 13986 файл таъсир расонидааст, 258419 сатри код илова карда шуд,
599137 сатрҳо хориҷ карда шуданд). Тақрибан 39% ҳама дар 5.3
Тағйирот ба драйверҳои дастгоҳ вобаста аст, тақрибан 12% тағиротҳо мебошанд
Муносибат ба навсозии коди мушаххаси меъмории сахтафзор, 11%
вобаста ба стек шабака, 3% ба системаҳои файлӣ ва 3% ба дохилӣ
зерсистемаҳои ядроӣ.

асосӣ навовариҳо:

  • Хидматҳои хотира ва система
    • Рушди идомаи функсияи 'pidfd' барои кӯмак дар ҳалли ҳолатҳои истифодаи такрории PID (pidfd бо як раванди мушаххас алоқаманд аст ва тағир намеёбад, дар ҳоле ки PID метавонад пас аз қатъ шудани раванди ҷорӣ бо он PID бо раванди дигар алоқаманд бошад). Он қаблан ба ядро ​​​​илова карда шуда буд
      занги системаи pidfd_send_signal () ва парчами CLONE_PIDFD дар clone () барои гирифтани pidfd барои истифода дар idfd_send_signal (). Истифодаи clone() бо парчами CLONE_PIDFD метавонад бо менеҷерони хадамот ё системаи қатъкунии қувваи аз хотираи платформаи Android мушкилот эҷод кунад. Дар ин ҳолат барои оғоз занг ба fork() ё clone() бе CLONE_PIDFD истифода мешавад.

      Kernel 5.3 занги системаро муаррифӣ кард pidfd_open(), ки ба шумо имкон медиҳад, ки pidfd-и тафтишшавандаро барои раванди худсаронаи мавҷуда, ки бо даъвати clone() бо парчами CLONE_PIDFD сохта нашудааст, гиред. Инчунин дастгирии пурсишҳои pidfd бо истифода аз poll() ва epoll() илова карда шудааст, ки ба менеҷерони раванд имкон медиҳад, ки бидуни тарс аз ҳолати мусобиқа қатъи равандҳои худсаронаро пайгирӣ кунанд, агар PID ба раванди нав таъин карда шавад. Механизми огоҳӣ ҳангоми қатъ шудани раванди марбут ба pidfd ба огоҳ кардани он ки раванди кӯдаки он қатъ шудааст, монанд аст;

    • Дастгирии механизми бастани сарборӣ ба нақшаи вазифаҳо илова карда шудааст (Истеъмоли истифода), ба шумо имкон медиҳад, ки ба диапазони ҳадди ақал ё максималии басомад, вобаста ба вазифаҳои фаъол дар CPU риоя кунед. Механизми пешниҳодшуда вазифаҳоеро суръат мебахшад, ки ба сифати таҷрибаи корбар мустақиман таъсир мерасонанд, тавассути иҷро кардани ин вазифаҳо ҳадди аққал дар охири поёни басомади "талабшуда". Вазифаҳои афзалиятноки паст, ки ба кори корбар таъсир намерасонанд, бо истифода аз маҳдудияти болоии басомади "иҷозат" оғоз карда мешаванд. Маҳдудиятҳо тавассути атрибутҳои sched_uclamp_util_min ва sched_uclamp_util_max дар занги системаи sched_setattr () муқаррар карда мешаванд.
    • Дастгирии иловашуда барои технологияи идоракунии энергия Интихоби суръати Intel, дар серверҳои интихобшуда бо протсессори Intel Xeon дастрас аст. Ин технология ба шумо имкон медиҳад, ки танзимоти иҷроиш ва тақсимотро барои ядроҳои гуногуни CPU муқаррар кунед, ки ба шумо имкон медиҳад, ки иҷрои вазифаҳоеро, ки дар ядро ​​​​муайян иҷро карда мешаванд, авлавият диҳед ва иҷрои онро дар дигар ядроҳо қурбон кунед;
    • Равандҳо дар фазои корбар пешниҳод аз ҷониби қобилияти интизор шудан дар муддати кӯтоҳ бидуни истифодаи ҳалқаҳо бо истифода аз дастури umwait. Ин дастур дар баробари дастурҳои umonitor ва tpause дар микросхемаҳои дарпешистодаи "Tremont"-и Intel пешниҳод карда мешавад ва имкон медиҳад, ки таъхирҳо каммасраф бошанд ва ба иҷрои риштаҳои дигар ҳангоми истифодаи Hyper Threading таъсир нарасонанд;
    • Барои меъмории RISC-V, дастгирии саҳифаҳои хотираи калон илова карда шудааст;
    • Механизми пайгирии kprobes имкони истинод ба нишондодҳои ядроро ба фазои корбар илова кардааст, ки онро масалан барои арзёбии мундариҷаи сохторҳое, ки ба зангҳои система интиқол дода мешаванд, истифода бурдан мумкин аст. Имконияти насб кардани чекҳо дар марҳилаи пурборкунӣ низ илова карда шудааст.
    • Имконияти PREEMPT_RT ба файли конфигуратсия барои амалиёти воқеӣ илова карда шуд. Худи код барои дастгирии реҷаи вақти воқеӣ ба ядро ​​​​ҳанӯз илова карда нашудааст, аммо пайдоиши опсия аломати хубест, ки эпикии дарозмуддат ҳамгироӣ Часбҳои Realtime-Preempt дар арафаи анҷомёбӣ қарор доранд;
    • Илова кардани занги системаи clone3() бо татбиқи версияи васеътари интерфейси clone(), ки имкон медиҳад шумораи бештари парчамҳоро муайян кунад;
    • Иловаи коркардкунандаи bpf_send_signal() ба барномаҳои BPF имкон медиҳад, ки сигналҳоро ба равандҳои худсарона фиристанд;
    • Барои рӯйдодҳои беҳтарин дар муҳити гипервизори KVM, механизми нави филтркунии рӯйдодҳо илова карда шудааст, ки ба маъмур имкон медиҳад, ки намудҳои рӯйдодҳоеро, ки барои назорат дар тарафи системаи меҳмонон иҷозат дода шудаанд ё иҷозат дода намешаванд, муайян кунанд;
    • Имконияти коркарди барномаҳо бо ҳалқаҳо ба механизми санҷиши замимаи eBPF илова карда шудааст, агар иҷрои ҳалқа маҳдуд бошад ва наметавонад ба зиёд шудани маҳдудияти шумораи максималии дастурҳо оварда расонад;
  • Зерсистемаи диск, системаҳои воридотӣ ва файлӣ
    • Системаи файлии XFS ҳоло гузариши бисёрсоҳаи инодеро дастгирӣ мекунад (масалан, ҳангоми тафтиши квотаҳо). ioctls нави BULKSTAT ва INUMBERS илова карда шуданд, ки дастрасӣ ба хусусиятҳоеро, ки дар нашри панҷуми формати FS пайдо шудаанд, таъмин мекунанд, ба монанди вақти таваллуди inode ва қобилияти муқаррар кардани параметрҳои BULKSTAT ва INUMBERS барои ҳар як гурӯҳи AG (Гурӯҳҳои тақсимот);
    • Дар Ext4 дастгирӣ илова карда шуд холӣ дар директорияҳо (блокҳои ҷудонашаванда).
      Коркард таъмин карда мешавад байрақчаи "i" (тағирнопазир) барои файлҳои кушода (навиштан дар ҳолате манъ аст, агар парчам дар замоне муқаррар шуда бошад, ки файл аллакай кушода буд);

    • Btrfs таърифи татбиқи зуди crc32c-ро дар ҳама меъморӣ таъмин мекунад;
    • Дар CIFS, рамзи дастгирии smbdirect ҳамчун таҳияи таҷрибавӣ хориҷ карда шудааст. SMB3 қобилияти истифодаи алгоритмҳои криптографиро дар ҳолати GCM илова кард. Имконияти нави васлкунӣ барои истихроҷи параметрҳои режим аз вурудоти ACE (Access Control Entry) илова карда шуд. Иҷрои занги open() оптимизатсия карда шуд;
    • Имконият ба F2FS барои маҳдуд кардани коллектори партов ҳангоми кор дар гузаргоҳ = ҳолати ғайрифаъол илова карда шуд. Барои нест кардани диапазони блокҳо аз F2FS, ioctl илова карда шуд, ки имкон медиҳад, ки андозаи тақсимот дар вақти парвоз танзим карда шавад. Имконияти ҷойгир кардани файли своп дар F2FS барои таъмин намудани мустақими воридот / баромад илова карда шуд. Дастгирии иловашуда барои пайваст кардани файл ва ҷудо кардани блокҳо барои файлҳои шабеҳ барои ҳамаи корбарон;
    • Илова дастгирии амалиёти асинхронӣ sendmsg() ва recvmsg() ба интерфейси асинхронӣ вуруд/баромад io_uring;
    • Дастгирии фишурдасозӣ бо истифода аз алгоритми zstd ва қобилияти тасдиқи тасвирҳои имзошудаи FS ба системаи файлии UBIFS илова карда шудааст;
    • Ceph FS ҳоло тамғакоғазҳои амниятии SELinux-ро барои файлҳо дастгирӣ мекунад;
    • Барои NFSv4, варианти нави васлкунӣ "nconnect=" амалӣ карда шуд, ки шумораи пайвастҳои бо сервер муқарраршударо муайян мекунад. Трафик байни ин пайвастҳо бо истифода аз мувозинати сарборӣ тақсим карда мешавад. Илова бар ин, сервери NFSv4 ҳоло феҳристи /proc/fs/nfsd/clients-ро бо маълумот дар бораи муштариёни ҷорӣ, аз ҷумла маълумот дар бораи файлҳои кушодаи онҳо эҷод мекунад;
  • Виртуализатсия ва амният
    • Ядро гипервизорро барои дастгоҳҳои воридшуда дар бар мегирад ACRN, ки бо назардошти омодагӣ ба вазифаҳои вақти воқеӣ ва мувофиқат барои истифода дар системаҳои муҳими миссия навишта шудааст. ACRN ҳадди ақали хароҷотро таъмин мекунад, таъхири паст ва посухдиҳии мувофиқро ҳангоми ҳамкорӣ бо таҷҳизот кафолат медиҳад. Виртуализатсияи захираҳои CPU, I/O, зерсистемаи шабакавӣ, графика ва амалиёти садоиро дастгирӣ мекунад. ACRN метавонад барои идора кардани якчанд мошинҳои маҷозии ҷудошуда дар воҳидҳои идоракунии электронӣ, панелҳои идоракунӣ, системаҳои иттилоотии автомобилӣ, дастгоҳҳои IoT истеъмолӣ ва дигар технологияҳои дохилшуда истифода шавад;
    • Дар ҳолати корбар Linux илова намуд Ҳолати сайёҳии вақт, ки ба шумо имкон медиҳад, ки вақтро дар муҳити виртуалии UML суст кунед ё суръат бахшед, то ислоҳи коди марбут ба вақтро осон кунад. Илова бар ин, параметр илова карда шудааст
      time-travel-start, ки имкон медиҳад, ки соати системавӣ аз лаҳзаи муайян дар формати давра оғоз шавад;

    • Опсияҳои нави сатри фармони ядро ​​"init_on_alloc" ва "init_on_free" илова карда шуданд, вақте ки муайян карда мешавад, сифркунии минтақаҳои хотираи ҷудошуда ва озодшуда фаъол аст (пур кардани сифрҳо барои malloc ва озод), ки имкон медиҳад амниятро аз ҳисоби сарбории иловагии оғозёбӣ афзоиш диҳад;
    • Ронандаи нав илова карда шуд виртио-иомму бо татбиқи дастгоҳи паравиртуализатсияшуда, ки ба шумо имкон медиҳад дархостҳои IOMMU-ро ба монанди ATTACH, DETACH, MAP ва UNMAP тавассути интиқоли virtio бидуни тақлид кардани ҷадвалҳои саҳифаҳои хотира фиристед;
    • Ронандаи нав илова карда шуд виртио-пмем, намояндагӣ кардани дастрасӣ ба дастгоҳҳои нигаҳдории ба фазои суроғаҳои физикӣ, ба монанди NVDIMMҳо хариташуда;
    • Имконияти замима кардани калидҳои криптографӣ ба фазои номи корбар ё шабака (калидҳо берун аз фазои номҳои интихобшуда дастнорас мешаванд) ва инчунин муҳофизати калидҳо бо истифода аз ACL;
    • Ба зерсистемаи крипто илова кард дастгирии алгоритми хэшинги ғайрикриптографии хеле зуд ххш, ки суръати он аз кори хотира вобаста аст;
  • Зерсистемаи шабакавӣ
    • Коркарди суроғаҳои IPv4 дар диапазони 0.0.0.0/8, ки қаблан барои истифода дастнорас буд, фаъол карда шудааст. Муаррифии ин зершабака имкон медиҳад паҳн кардани 16 миллион суроғаҳои IPv4;
    • Дар Netfilter барои nftables илова кард дастгирии механизмҳои суръатбахшии сахтафзор барои филтркунии бастаҳо тавассути истифодаи драйверҳои иловагӣ API Block Flow. Тамоми ҷадвалҳои қоидаҳоро бо ҳама занҷирҳо дар паҳлӯи адаптерҳои шабакавӣ ҷойгир кардан мумкин аст. Фаъолсозӣ тавассути пайваст кардани парчами NFT_TABLE_F_HW ба ҷадвал анҷом дода мешавад. Метамаълумотҳои протоколҳои оддии Қабати 3 ва Қабати 4, амалҳои қабул/рад, харитасозӣ аз рӯи IP ва портҳои шабакаи ирсолкунанда/қабулкунанда ва намуди протоколро дастгирӣ мекунад;
    • Илова карда шуд дастгирии пайгирии дарунсохт барои пулҳои шабакавӣ, ки истифодаи қабати тақлидкунандаи br_netfilter талаб намекунад;
    • Дар nf_tables илова кард дастгирии модули SYNPROXY, ки функсияҳои шабеҳро аз iptables такрор мекунад ва қобилияти тафтиши қоидаҳои интихоби инфиродӣ дар сарлавҳаи IPv4 низ амалӣ карда мешавад;
    • Имконияти замима кардани барномаҳои BPF ба зангҳои системаи setsockopt() ва getsockopt() илова карда шуд, ки масалан, ба шумо имкон медиҳад, ки коркардкунандагони дастрасии шахсии худро ба ин зангҳо замима кунед. Илова бар ин, нуқтаи нави занг (қалмоқ) илова карда шуд, ки бо он шумо метавонед зангро ба барномаи BPF барои ҳар як фосилаи RTT як маротиба ташкил кунед (вақти рафту омад, вақти пинг);
    • Барои IPv4 ва IPv6 илова намуд механизми нави нигоҳдории маълумотҳои масир оид ба Nexthop, ки ба баланд бардоштани миқёспазирии ҷадвалҳои масир нигаронида шудааст. Санҷишҳо нишон доданд, ки ҳангоми истифодаи системаи нав маҷмӯи 743 ҳазор маршрутҳо ба ядро ​​​​дар 4.3 сония бор карда шуданд;
    • Барои Bluetooth ба амал бароварда шуд функсия барои дастгирии LE ping лозим аст;
  • Таҷҳизот
    • Илова карда шуд дастгирии коркардкунандагони x86-мувофиқ ширкат Жаоксин, ки дар натиҷаи лоиҳаи муштараки VIA Technologies ва муниципалитети Шанхай таҳия шудааст. Оилаи ZX CPU дар меъмории x86-64 Isaiah сохта шудааст ва рушди технологияро идома медиҳад ВИА Кентавр;
    • Зерсистемаи DRM (Direct Rendering Manager), инчунин драйверҳои графикии amdgpu ва i915, барои таҳлил, коркард ва ирсоли метамаълумоти HDR (диапазони динамикии баланд) тавассути порти HDMI дастгирии илова кардааст, ки ба истифодаи панелҳо ва экранҳои HDR, ки қодиранд нишон додани диапазони иловагии равшанӣ;
    • Драйвери amdgpu дастгирии ибтидоиро барои AMD NAVI GPU (RX5700) илова кардааст, ки драйвери асосӣ, рамзи мутақобилаи экран (DCN2), GFX ва дастгирии ҳисоббарорӣ (GFX10),
      SDMA 5 (Системаи DMA0), идоракунии нерӯ ва рамзгузорҳо/декодерҳои мултимедиявӣ (VCN2). amdgpu инчунин дастгирии кортҳоро дар асоси GPU-ҳои Vega12 ва Vega20 беҳтар мекунад, ки барои онҳо қобилиятҳои хотира ва идоракунии қувваи иловагӣ илова карда шудаанд;

    • Дастгирии иловашуда барои кортҳо дар асоси GPUs VegaM ба драйвери amdkfd (барои GPU-ҳои дискретӣ, ба монанди Фиҷи, Тонга, Поларис);
    • Дар драйвери DRM барои кортҳои видеоии Intel барои микросхемаҳои Icelake ба амал бароварда шуд режими нави ислоҳоти гамма бисёрсегментӣ. Имконияти баровардан тавассути DisplayPort дар формати YCbCr4:2:0 илова карда шуд. Нармафзори нав илова карда шуд ГуС барои SKL, BXT, KBL, GLK ва ICL. Имконияти хомӯш кардани қувваи экран дар реҷаи асинхронӣ амалӣ карда шудааст. Илова карда шуд дастгирии нигоҳдорӣ ва барқарорсозии контексти рендеринг барои чипҳои Ironlake (gen5) ва gen4 (Broadwater - Cantiga), ки ба шумо имкон медиҳад ҳолати GPU-ро аз фазои корбар ҳангоми гузаштан аз як амалиёти партия ба дигараш барқарор кунед;
    • Ронандаи Nouveau муайянкунии чипсети NVIDIA Turing TU116-ро таъмин мекунад;
    • Имкониятҳои драйвери DRM/KMS барои суръатбахшии экрани ARM Komeda (Mali D71) васеъ карда шуданд, дастгирии миқёскунӣ, тақсим/якҷоякунии қабатҳо, гардиш, навиштани таъхир, AFBC, SMMU ва форматҳои рамзгузории ранг Y0L2, P010, YUV420_8/10BIT илова карда шуд;
    • Драйвери MSM барои силсилаи A540 GPU Adreno, ки дар протсессори Qualcomm истифода мешавад, инчунин дастгирии контролери MSM8998 DSI барои Snapdragon 835 -ро илова мекунад;
    • Драйверҳои иловашуда барои панелҳои LCD Samsung S6E63M0, Armadeus ST0700, EDT ETM0430G0DH6, OSD101T2045-53TS,
      Evervision VGG804821, FriendlyELEC HD702E, KOE tx14d24vm1bpa, TFC S9700RTWV43TR-01B, EDT ET035012DM6 ва VXT VL050-8048NT-C01;

    • Илова карда шуд драйвер барои фаъол кардани асбобҳои шитобкунии рамзкушоӣ
      видеоҳои дастрас дар Amlogic Meson SoC;

    • Дар драйвери v3d (барои Broadcom Video Core V GPU, ки дар Raspberry Pi истифода мешавад) пайдо шуд дастгирӣ фиристодани шейдерҳои ҳисоббарор;
    • Илова карда шуд драйвери клавиатура ва трекпадҳои SPI, ки дар моделҳои муосири ноутбукҳои Apple MacBook ва MacBookPro истифода мешаванд;
    • Илова карда шуд муҳофизати иловагӣ барои зангҳои ioctl, ки бо драйвери нарм алоқаманд аст ва худи драйвер ҳамчун хидматрасонӣ қайд карда мешавад
      («ятим»), ки маънои қатъи санҷиши онро дорад. Драйвер дар ядро ​​нигоҳ дошта мешавад, аммо кори дурусти он кафолат дода намешавад. Драйвер кӯҳна ҳисобида мешавад, зеро пайдо кардани таҷҳизоти корӣ барои санҷиши он душвор аст - ҳама дискҳои берунаи ҷорӣ, чун қоида, интерфейси USB-ро истифода мебаранд.

    • Илова карда шуд драйвери cpufreq барои тахтаҳои Raspberry Pi, ки ба шумо имкон медиҳад, ки тағиротро дар басомади протсессори динамикӣ назорат кунед;
    • Дастгирии иловагии ARM SoC Mediatek mt8183 (4x Cortex-A73 + 4x Cortex-A53), TI J721E (2x Cortex-A72 + 3x Cortex-R5F + 3 DSPs + MMA) ва Amlogic G12B (4x Cortex-A73- A2), инчунин тахтаҳо:
      • Пуризм Либрем5,
      • Aspeed BMC,
      • Microsoft Olympus BMC,
      • Kontron SMARC,
      • Novtech Meerkat96 (i.MX7),
      • ST Micro Avenger96,
      • Google Cheza (Qualcomm SDM845),
      • Qualcomm Dragonboard 845c (Qualcomm SDM845),
      • Қуттии телевизионии Hugsun X99 (Rockchip RK3399),
      • Khadas Edge/Edge-V/Капитан (Rockchip RK3399),
      • HiHope RZ/G2M,
      • NXP LS1021A-TSN.

Дар айни замон Фонди нармафзори озоди Амрикои Лотинӣ ташаккул ёфт
интихоб ядрои комилан озод 5.3 - Linux-libre 5.3-gnu, аз нармафзори миёнаравӣ ва унсурҳои драйвери дорои ҷузъҳои хусусӣ ё қисмҳои рамзӣ, ки доираи онҳо аз ҷониби истеҳсолкунанда маҳдуд аст, тоза карда шудааст. Дар версияи нав, боркунии blob дар драйверҳои qcom, hdcp drm, allegro-dvt ва meson-vdec ғайрифаъол карда шудааст.
Рамзи тозакунии blob дар драйверҳо ва зерсистемаҳои amdgpu, i915, netx, r8169, brcmfmac, rtl8188eu, adreno, si2157, pvrusb2, touchscreen_dmi, драйвери садо барои skylake, инчунин дар ҳуҷҷатҳои микрокод.

Манбаъ: opennet.ru

Илова Эзоҳ