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

Пас аз ду моҳи рушд, Линус Торвалдс муаррифӣ кард баровардани ядро Linux 5.8. Дар байни тағиротҳои назаррас: детектори ҳолати мусобиқаи KCSAN, механизми универсалии расонидани огоҳиҳо ба фазои корбар, дастгирии сахтафзор барои рамзгузории дохилӣ, механизмҳои мукаммали амният барои ARM64, дастгирии протсессори Байкал-Т1 Русия, қобилияти ҷудогона насб кардани мисолҳои procfs , татбиқи механизмҳои амнияти соя барои ARM64 Call Stack ва BTI.

Kernel 5.8 аз рӯи шумораи тағиротҳои ҳамаи ядроҳо дар тӯли тамоми мавҷудияти лоиҳа калонтарин гардид. Гузашта аз ин, тағиротҳо ба ягон зерсистема алоқаманд нестанд, балки қисмҳои гуногуни ядроро фаро мегиранд ва асосан бо коркарди дохилӣ ва тозакунӣ алоқаманданд. Тағйироти калонтарин дар ронандагон дида мешавад. Версияи нав 17606 ислоҳи 2081 таҳиягарро дар бар гирифт, ки тақрибан ба 20% ҳамаи файлҳои репозиторий коди ядро ​​​​таъсир расониданд. Андозаи ямоқи 65 МБ (тағирот ба 16180 файл таъсир расонд, 1043240 сатри код илова карда шуд, 489854 сатр нест карда шуд). Барои муқоиса, филиали 5.7 дорои 15033 ислоҳ ва андозаи патч 39 МБ буд. Тақрибан 37% ҳамаи тағиротҳои дар 5.8 воридшуда ба драйверҳои дастгоҳ, тақрибан 16% тағирот ба навсозии коди мушаххаси архитектураи сахтафзор, 11% ба стеки шабакавӣ, 3% ба системаҳои файлӣ ва 4% марбутанд. бо зерсистемаҳои ядрои дохилӣ алоқаманданд.

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

  • Виртуализатсия ва амният
    • Боркунии модулҳои ядро, ки қисмҳои дорои код доранд, ки дар онҳо битҳое, ки иҷро ва навиштанро ҳамзамон гузоштаанд, таъмин карда мешавад. Тағйирот ҳамчун як қисми лоиҳаи калонтар барои халос кардани ядро ​​аз истифодаи саҳифаҳои хотира, ки ҳамзамон иҷро ва навиштанро имкон медиҳанд, амалӣ карда шуд.
    • Ҳоло имконпазир аст, ки мисолҳои алоҳидаи procfs-ро эҷод кунед, ки ба истифодаи нуқтаҳои сершумори procfs имкон медиҳад, ки бо имконоти гуногун насб карда шудаанд, аммо фазои номи ҳамон як идентификатори равандро инъикос мекунанд (фазои номи pid). Пештар, ҳама нуқтаҳои васлкунии procfs танҳо як намоиши дохилиро инъикос мекарданд ва ҳама гуна тағирот ба параметрҳои васлкунӣ ба ҳамаи нуқтаҳои дигари васлкунӣ, ки бо ҳамон фазои номи протсесси ID алоқаманданд, таъсир мерасонд. Дар байни соҳаҳое, ки васлкунӣ бо вариантҳои гуногун метавонад талаб карда шавад, татбиқи изолятсияи сабук барои системаҳои дохилӣ бо қобилияти пинҳон кардани намудҳои муайяни равандҳо ва гиреҳҳои иттилоотӣ дар procfs мебошад.
    • Дастгирии механизм барои платформаи ARM64 амалӣ карда шудааст
      Стеки Shadow-Call, ки аз ҷониби компилятори Clang барои муҳофизат аз баргардонидани суроғаи баргардонидани функсия дар ҳолати пур шудани буфери стек пешбинӣ шудааст. Моњияти њифз аз он иборат аст, ки суроѓаи баргардонида дар стеки алоњидаи "соя" пас аз интиќоли идоракунї ба функсия ва бозпас гирифтани ин суроѓа пеш аз баромадан аз функсия.

    • Дастгирии дастур барои платформаи ARM64 илова карда шудааст ARMv8.5-BTI (Нишондиҳандаи мақсадноки филиал) барои муҳофизат кардани иҷрои маҷмӯи дастурҳо, ки набояд ба онҳо шоха карда шаванд. Бастани гузариш ба бахшҳои худсаронаи код барои пешгирӣ кардани эҷоди гаҷетҳо дар эксплойтҳо, ки усулҳои барномасозии ба бозгашт нигаронидашударо истифода мебаранд (ROP - Return-Oriented Programming; ҳамлагар кӯшиш намекунад, ки рамзи худро дар хотира ҷойгир кунад, балки дар қисмҳои мавҷуда амал мекунад) дастурҳои мошинӣ, ки бо дастури назорати бозгашт ба итмом мерасанд, ки аз он занҷири зангҳо барои ба даст овардани функсияҳои дилхоҳ сохта мешавад).
    • Дастгирии сахтафзор барои рамзгузории дохилии дастгоҳҳои блок (Рамзгузории дохилӣ). Дастгоҳҳои рамзгузории Inlinep маъмулан дар гардонанда сохта мешаванд, аммо мантиқан дар байни хотираи система ва диск ҷойгир буда, ба таври шаффоф рамзкунонӣ ва рамзкушоӣ кардани воридот ва баромадро дар асоси калидҳои аз ядро ​​муайяншуда ва алгоритми рамзгузорӣ мекунанд.
    • Опсияи сатри фармони ядрои "initrdmem" илова карда шуд, то ба шумо имкон диҳад, ки суроғаи хотираи физикии initrd ҳангоми ҷойгиркунии тасвири ибтидоии боркунӣ дар RAM муайян кунед.
    • Қобилияти нав илова карда шуд: CAP_PERFMON барои дастрасӣ ба зерсистемаи perf ва иҷрои мониторинги иҷроиш. CAP_BPF, ки ба баъзе амалиёти BPF имкон медиҳад (ба монанди боркунии барномаҳои BPF), ки қаблан ҳуқуқҳои CAP_SYS_ADMIN-ро талаб мекарданд (ҳуқуқҳои CAP_SYS_ADMIN ҳоло ба маҷмӯи CAP_BPF, CAP_PERFMON ва CAP_NET_ADMIN тақсим шудаанд).
    • Илова карда шуд дастгоҳи нави virtio-mem, ки ба шумо имкон медиҳад, ки хотираи гармро ба системаҳои меҳмонон пайваст кунед.
    • Бозхонди амалиёти харитасозӣ дар /dev/mem амалӣ карда мешавад, агар драйвери дастгоҳ минтақаҳои хотираи такроршавандаро истифода барад.
    • Муҳофизати осебпазирии иловагӣ CROSSTalk/SRBDS, ки ба шумо имкон медиҳад, ки натиҷаҳои иҷрои баъзе дастурҳои дар ядрои дигари CPU иҷрошударо барқарор кунед.
  • Хидматҳои хотира ва система
    • Дар ҳуҷҷате, ки қоидаҳои форматкунии кодро муайян мекунад, кабул карда шуд тавсияҳо оид ба истифодаи истилоҳоти фарогир. Ба таҳиягарон тавсия дода намешавад, ки комбинатсияи "мастер / гулом" ва "рӯйхати сиёҳ / сафед" ва инчунин калимаи "ғулом" -ро алоҳида истифода баранд. Тавсияҳо танҳо ба истифодаи нави ин истилоҳот дахл доранд. Зикр кардани калимаҳои зикршуда, ки аллакай дар асл мавҷуд аст, бетағйир боқӣ хоҳанд монд. Дар кодекси нав, истифодаи шартҳои қайдшуда дар ҳолати зарурӣ барои дастгирии API ва ABI дар фазои корбар, инчунин ҳангоми навсозии код барои дастгирии сахтафзор ё протоколҳои мавҷуда, ки мушаххасоти онҳо истифодаи шартҳои муайянро талаб мекунанд, иҷозат дода мешавад.
    • Воситаи ислоҳкунӣ дохил карда шудааст KCSAN (Cernel Concurrency Sanitizer), ки барои муайянкунии динамикӣ пешбинӣ шудааст шароити мусобика дар дохили ядро. Истифодаи KCSAN ҳангоми сохтан дар GCC ва Clang дастгирӣ карда мешавад ва дар вақти компилясия барои пайгирии дастрасии хотира тағйироти махсусро талаб мекунад (нуқтаҳои танаффус истифода мешаванд, ки ҳангоми хондан ё тағир додани хотира фаъол мешаванд). Диққати рушди KCSAN ба пешгирии мусбати бардурӯғ, миқёспазирӣ ва осонии истифода буд.
    • Илова карда шуд механизми универсалӣ расонидани огоҳиномаҳо аз ядро ​​ба фазои корбар. Механизм ба драйвери стандартии қубур асос ёфтааст ва ба шумо имкон медиҳад, ки огоҳиномаҳоро аз ядро ​​тавассути каналҳои дар фазои корбар кушода ба таври муассир паҳн кунед. Нуқтаҳои қабули огоҳинома қубурҳое мебошанд, ки дар ҳолати махсус кушода мешаванд ва имкон медиҳанд, ки паёмҳои аз ядро ​​гирифташуда дар буфери ҳалқа ҷамъ шаванд. Хондан бо функсияи муқаррарии read() иҷро мешавад. Соҳиби канал муайян мекунад, ки кадом манбаъҳои ядро ​​бояд назорат карда шаванд ва метавонад филтрро барои нодида гирифтани баъзе паёмҳо ва рӯйдодҳо муайян кунад. Дар айни замон аз рӯйдодҳо танҳо амалҳо бо калидҳо дастгирӣ мешаванд, ба монанди илова кардан/ хориҷ кардани калидҳо ва тағир додани атрибутҳои онҳо. Ин чорабиниҳо ба нақша гирифта шудаанд, ки дар GNOME истифода шаванд.
    • Рушди идомаи функсияи 'pidfd' барои кӯмак дар ҳалли ҳолатҳои истифодаи такрории PID (pidfd бо як раванди мушаххас алоқаманд аст ва тағир намеёбад, дар ҳоле ки PID метавонад пас аз қатъ шудани раванди ҷорӣ бо он PID бо раванди дигар алоқаманд бошад). Версияи нав дастгирии истифодаи pidfd-ро барои замима кардани раванд ба фазои номҳо илова мекунад (имкон медиҳад, ки pidfd ҳангоми иҷрои занги системаи setns муайян карда шавад). Истифодаи pidfd ба шумо имкон медиҳад, ки бо як занг замимаи равандро ба якчанд намуди фазои номҳо назорат кунед, шумораи зангҳои зарурии системаро ба таври назаррас коҳиш диҳед ва замима дар реҷаи атомиро амалӣ кунед (агар замима ба яке аз фазои номҳо ноком шавад, дигарон пайваст намешаванд). .
    • Иловаи занги системаи нави faccessat2 (), гуногун аз
      faccessat () далели иловагӣ бо парчамҳо, ки ба тавсияҳои POSIX мувофиқат мекунанд (қаблан ин парчамҳо дар китобхонаи C тақлид карда мешуданд ва faccessat2 нав имкон медиҳад, ки онҳо дар ядро ​​татбиқ карда шаванд).

    • Дар Cgroup илова кард танзимоти memory.swap.high, ки метавонад барои суст кардани вазифаҳое, ки фазои свопро ишғол мекунанд, истифода шавад.
    • Ба интерфейси асинхронии I/O io_uring дастгирии иловашуда барои занги системаи tee().
    • Механизми иловашуда "Итератори BPF, ки барои баровардани мундариҷаи сохторҳои ядро ​​​​ба фазои корбар пешбинӣ шудааст.
    • Таъмин карда шудааст қобилияти истифодаи буфери ҳалқа барои мубодилаи маълумот байни барномаҳои BPF.
    • Ба механизм падар, ки барои ташкили иҷрои параллелии вазифаҳо дар ядро ​​тарҳрезӣ шудааст, дастгирии иловагии вазифаҳои бисёрсоҳавӣ бо мувозинати сарборӣ.
    • Дар механизми pstore, ки ба шумо имкон медиҳад, ки иттилооти ислоҳро дар бораи сабабҳои садама дар минтақаҳои хотира, ки дар байни бозсозӣ гум нашудаанд, захира кунед, илова намуд backend барои захира кардани маълумот барои бастани дастгоҳҳо.
    • Аз шохаи ядрои PREEMPT_RT ҳаракат кард ба амал баровардани локхои махаллй.
    • Илова карда шуд нави тақсимоти буферии API (AF_XDP), ки ба содда кардани навиштани драйверҳои шабакавӣ бо дастгирии XDP (eXpress Data Path) нигаронида шудааст.
    • Барои меъмории RISC-V, дастгирӣ барои ислоҳ кардани ҷузъҳои ядро ​​​​бо истифода аз KGDB амалӣ карда шудааст.
    • Пеш аз нашри 4.8, талабот ба версияи GCC, ки метавонад барои сохтани ядро ​​истифода шавад, зиёд карда шуд. Дар яке аз нашрҳои навбатӣ ба нақша гирифта шудааст, ки сатри GCC 4.9 баланд карда шавад.
  • Зерсистемаи диск, системаҳои воридотӣ ва файлӣ
    • Дар Mapper Device илова намуд коркардкунандаи нави dm-ebs (тақлид кардани андозаи блок), ки метавонад барои тақлид кардани андозаи блоки мантиқии хурдтар истифода шавад (масалан, барои тақлид кардани секторҳои 512-байтӣ дар дискҳои андозаи сектори 4K).
    • Системаи файлии F2FS ҳоло фишурданро бо истифода аз алгоритми LZO-RLE дастгирӣ мекунад.
    • Дар dm-crypt илова кард дастгирии калидҳои рамзгузоришуда.
    • Btrfs коркарди амалиёти хонишро дар реҷаи мустақими вуруд/чор беҳтар кардааст. Ҳангоми васлкунӣ суръат гирифт тафтиши зерфаслҳои ҳазфшуда ва директорияҳои бе падару модар монда.
    • Параметри "nodelete" ба CIFS илова карда шудааст, ки имкон медиҳад санҷиши муқаррарии иҷозатро дар сервер, аммо ба муштарӣ аз нест кардани файлҳо ё директорияҳо манъ мекунад.
    • Ext4 коркарди хатогиҳоро беҳтар кардааст ENOSPC ҳангоми истифодаи бисёр ришта. xattr дастгирии фазои gnu.*-ро, ки дар GNU Hurd истифода мешавад, илова кардааст.
    • Барои Ext4 ва XFS, дастгирии амалиёти DAX дар робита бо файлҳо ва директорияҳои инфиродӣ фаъол карда шудааст (дастрасии мустақим ба системаи файлӣ, гузаштан аз кэши саҳифа бидуни истифодаи сатҳи дастгоҳи блок).
    • Дар занги система statx () байрақ илова карда шуд STATX_ATTR_DAX, ки ҳангоми муайяншуда маълумотро бо истифода аз муҳаррики DAX дарёфт мекунад.
    • EXFAT илова кард дастгирии санҷиши минтақаи боркунӣ.
    • Дар FAT такмил дода шуд пурборкунии фаъолонаи унсурҳои FS. Санҷиши диски сусти 2TB USB нишон дод, ки вақти анҷоми санҷиш аз 383 то 51 сония коҳиш ёфтааст.
  • Зерсистемаи шабакавӣ
    • Дар коди назорати кори купрукхои шабакавй илова кард дастгирии протокол MRP (Протоколи зиёдатии медиа), ки барои таҳаммулпазирии хатоҳо тавассути гардиши якчанд коммутаторҳои Ethernet имкон медиҳад.
    • Ба системаи назорати ҳаракати нақлиёт (Tc) илова кард амали нави "дарвоза", ки имкон медиҳад фосилаҳои вақт барои коркард ва партофтани пакетҳои муайян муайян карда шавад.
    • Дастгирии санҷиши сими шабакавии пайвастшуда ва худидоракунии дастгоҳҳои шабакавӣ ба ядро ​​​​ва утилитаи ethtool илова карда шудааст.
    • Дастгирии алгоритми MPLS (Мултипротоколи тамғакоғазӣ) ба стеки IPv6 барои масири пакетҳо бо истифода аз коммутацияи тамғаи бисёрпротоколӣ илова карда шудааст (MPLS қаблан барои IPv4 дастгирӣ мешуд).
    • Дастгирии иловашуда барои интиқоли IKE (Internet Key Exchange) ва бастаҳои IPSec тавассути TCP (RFC 8229) барои гузаштан аз бастани эҳтимолии UDP.
    • Илова карда шуд дастгоҳи блоки шабакавӣ rnbd, ки ба шумо имкон медиҳад дастрасии дурдаст ба дастгоҳи блокро бо истифода аз нақлиёти RDMA (InfiniBand, RoCE, iWARP) ва протоколи RTRS ташкил кунед.
    • Дар стеки TCP илова кард дастгирии фишурдани диапазон дар посухҳои интихобӣ (SACK).
    • Барои IPv6 ба амал бароварда шуд Дастгирии TCP-LD (RFC 6069, Қатъи пайвасти дарозмуддат).
  • Таҷҳизот
    • Драйвери i915 DRM барои кортҳои видеоии Intel бо нобаёнӣ дастгирии микросхемаҳои Intel Tiger Lake (GEN12) -ро дар бар мегирад, ки барои он ба амал бароварда шуд қобилияти истифодаи системаи SAGV (System Agent Geyserville) барои ба таври динамикӣ танзим кардани басомад ва шиддат вобаста ба истеъмоли қувваи барқ ​​ё талаботи иҷроиш.
    • Драйвери amdgpu дастгирии формати пикселии FP16 ва қобилияти кор бо буферҳои рамзшуда дар хотираи видео (TMZ, Минтақаи хотираи боэътимод) илова кардааст.
    • Дастгирии иловашуда барои сенсорҳои барқ ​​барои протсессори AMD Zen ва Zen2, инчунин сенсорҳои ҳарорат барои AMD Ryzen 4000 Renoir. Дастгирии дарёфти иттилооти масрафи нерӯ тавассути интерфейс барои AMD Zen ва Zen2 пешниҳод карда мешавад РАПЛ (Иҷроиши ҳадди ниҳоии барқ).
    • Дастгирии формати тағирдиҳандаи NVIDIA ба драйвери Nouveau илова карда шуд. Барои gv100, қобилияти истифодаи режимҳои сканкунии байниҳамдигарӣ амалӣ карда шудааст. Таърифи vGPU илова карда шуд.
    • Дастгирии Adreno A405, A640 ва A650 GPU ба драйвери MSM (Qualcomm) илова карда шуд.
    • Илова карда шуд чаҳорчӯбаи дохилӣ барои идоракунии захираҳои DRM (Direct Rendering Manager).
    • Дастгирии иловашуда барои смартфонҳои Xiaomi Redmi Note 7 ва Samsung Galaxy S2, инчунин ноутбукҳои Elm/Hana Chromebook.
    • Драйверҳои иловашуда барои панелҳои LCD: ASUS TM5P5 NT35596, Starry KR070PE2T, Leadtek LTK050H3146W, Visionox rm69299, Boe tv105wum-nw0.
    • Дастгирии иловашуда барои тахтаҳо ва платформаҳои ARM Renesas "RZ/G1H", Realtek RTD1195, Realtek RTD1395/RTD1619, Rockchips RK3326, AMLogic S905D, S905X3, S922XH, Olimex A20-OLinuXino50, Check Point LME-MMC,
      , Beacon i.MX8m-Mini, Qualcomm SDM660 / SDM630, Xnano X5 ТВ Box, Stinger96, Beaglebone-AI.

    • Дастгирии иловашуда барои протсессори MIPS Loongson-2K (ихтисоршудаи Loongson64). Барои CPU Loongson 3, дастгирии виртуализатсия бо истифода аз гипервизори KVM илова карда шудааст.
    • Илова карда шуд
      дастгирии протсессори русии Байкал-Т1 ва системаи чипи дар асоси он BE-T1000. Протсессори Байкал-Т1 дорои ду ядрои суперскалярии P5600 MIPS 32 r5 мебошад, ки дар 1.2 ГГц кор мекунанд. Чип дорои кэши L2 (1 МБ), контролери хотираи DDR3-1600 ECC, 1 порти Ethernet 10 Гб, 2 бандарҳои Ethernet 1 Гб, нозири PCIe Gen.3 x4, 2 бандарҳои SATA 3.0, USB 2.0, GPIO, UART, SPI, I2C мебошад. Протсессор дастгирии сахтафзорро барои виртуализатсия, дастурҳои SIMD ва суръатбахши криптографии сахтафзор таъмин мекунад, ки ГОСТ 28147-89-ро дастгирӣ мекунад. Чип бо истифода аз воҳиди асосии протсессори MIPS32 P5600 Warrior таҳия шудааст, ки аз Imagination Technologies литсензия шудааст.

Дар айни замон Фонди нармафзори озоди Амрикои Лотинӣ ташаккул ёфт
интихоб ядрои комилан озод 5.8 - Linux-libre 5.8-gnu, аз нармафзори миёнаравӣ ва унсурҳои драйвери дорои ҷузъҳои ғайриозод ё қисмҳои код, ки доираи онҳо аз ҷониби истеҳсолкунанда маҳдуд аст, тоза карда шудааст. Нашри нав боркунии blob-ро дар драйверҳо барои Atom ISP Video, MediaTek 7663 USB/7915 PCIe, Realtek 8723DE WiFi, Renesas PCI xHCI, HabanaLabs Gaudi, Enhanced Rate Rate Asynchronous Sample Convertor, Maxim Integrated MAX98390 Audio Connector, Maxim Integrated MAX38060 Home ZX2 Speaker, Wi-Fi, USB/86 PCIe хомӯш мекунад. ва I6656C EEPROM Slave. Рамзи тозакунии blob дар Adreno GPU, HabanaLabs Goya, сенсории xXNUMX, драйверҳо ва зерсистемаҳои vtXNUMX ва btbcm.

Манбаъ: opennet.ru

Илова Эзоҳ