Linux 5.2 ядросунун чыгарылышы

эки ай иштеп кийин, Линус Torvalds берилген ядро чыгаруу Linux 5.2. Эң көрүнүктүү өзгөрүүлөрдүн арасында: Ext4 иштөө режими регистрге сезимтал эмес, файл тутумун орнотуу үчүн өзүнчө тутумдук чалуулар, GPU Mali 4xx/ 6xx/7xx үчүн драйверлер, BPF программаларындагы sysctl маанилериндеги өзгөрүүлөрдү башкаруу мүмкүнчүлүгү, түзмөк-картачы. модулу dm-чаң, чабуулдардан коргоо MDS, DSP үчүн Sound Open Firmware колдоо, BFQ иштешин оптималдаштыруу, PSI (Pressure Stall Information) подсистемасын Androidде колдонуу мүмкүнчүлүгүнө алып келүү.

Жаңы версия 15100 иштеп чыгуучунун 1882 оңдоосун камтыйт,
патчтын көлөмү - 62 МБ (өзгөрүүлөр 30889 файлга таасирин тийгизди, 625094 сап код кошулду, 531864 сап өчүрүлдү). 45-пунктта көрсөтүлгөндөрдүн 5.2%га жакыны
өзгөртүүлөр түзмөк драйверлерине байланыштуу, өзгөрүүлөрдүн болжол менен 21%
Аппараттык архитектураларга мүнөздүү кодду жаңылоого карата мамиле, 12%
тармактык стек менен байланышкан, 3% файлдык системаларга жана 3% ички
ядронун подсистемалары. Бардык өзгөртүүлөрдүн 12.4% Intel, 6.3% Red Hat, 5.4% Google, 4.0% AMD, 3.1% SUSE, 3% IBM, 2.7% Huawei, 2.7% Linaro, 2.2% ARM тарабынан даярдалган. , 1.6 % - Oracle.

негизги инновациялар:

  • Диск подсистемасы, киргизүү/чыгаруу жана файл системалары
    • Ext4 үчүн кошулду колдоо "+F" (EXT4_CASEFOLD_FL) жаңы атрибутун колдонуу менен айрым бош каталогдорго карата гана активдештирилген файл аталыштарындагы символдордун регистрлерин айырмалоосуз иштөө. Бул атрибут каталогго коюлганда, ичиндеги файлдар жана подкаталогдор менен бардык операциялар символдордун регистри эске алынбастан аткарылат, анын ичинде файлдарды издөөдө жана ачууда регистр этибарга алынбайт (мисалы, Test.txt файлдары, Мындай каталогдордогу test.txt жана test.TXT бирдей каралат). Демейки боюнча, файл системасы "chattr +F" атрибуту бар каталогдорду кошпогондо, регистрди сезе берет;
    • Саптарды салыштыруу жана нормалдаштыруу операцияларын аткарууда колдонулуучу файл аталыштарындагы UTF-8 символдорун иштетүү функциялары унификацияланды;
    • XFS файл тутумунун ден соолугуна мониторинг жүргүзүү үчүн инфраструктураны жана ден соолук абалын суроо үчүн жаңы ioctl кошот. Суперблок эсептегичтерин онлайн режиминде текшерүү үчүн эксперименталдык функция ишке ашырылды.
    • Кошулган жаңы модулу түзмөк-картачы "дм-чаң", бул сизге медиадагы начар блоктордун көрүнүшүн же дисктен окууда каталарды окшоштурууга мүмкүндүк берет. Модуль мүмкүн болгон мүчүлүштүктөр учурунда тиркемелерди жана ар кандай сактоо тутумдарын оңдоону жана тестирлөөнү жөнөкөйлөтүүгө мүмкүндүк берет;
    • Жүргүзүлгөн BFQ I/O пландоочу үчүн олуттуу аткаруу оптималдаштыруу. Жогорку I/O жүктөмүнүн шарттарында оптималдаштыруу жасалган уруксат берүү Тиркемелерди ишке киргизүү сыяктуу операциялардын убактысын 80% га чейин кыскартуу.
    • Файлдык системаларды монтаждоо үчүн бир катар системалык чакыруулар кошулду: fsopen(), open_tree(), fspick(), fsmount(), fsconfig() и move_mount(). Бул системалык чалуулар монтаждоонун ар кандай этаптарын өзүнчө иштетүүгө мүмкүндүк берет (суперблокту иштетүү, файлдык система жөнүндө маалымат алуу, монтаждоо, монтаждоо чекитине тиркөө), алар мурда жалпы mount() тутумдук чалуу аркылуу аткарылган. Өзүнчө чалуулар татаалыраак орнотуу сценарийлерин аткарууга жана суперблокту кайра конфигурациялоо, опцияларды иштетүү, орнотуу чекитин өзгөртүү жана башка аттар мейкиндигине өтүү сыяктуу өзүнчө операцияларды аткарууга мүмкүнчүлүк берет. Мындан тышкары, өзүнчө иштетүү ката коддорунун чыгышынын себептерин так аныктоого жана көп катмарлуу файл тутумдары үчүн бир нече булактарды коюуга мүмкүндүк берет, мисалы overlayfs;
    • IORING_OP_SYNC_FILE_RANGE жаңы операция асинхрондук киргизүү/чыгаруу io_uring үчүн интерфейске кошулду, ал системалык чалууга барабар аракеттерди аткарат sync_file_range(), ошондой эле io_uring менен eventfd каттоо жана операциялардын аяктагандыгы жөнүндө билдирүүлөрдү алуу мүмкүнчүлүгүн ишке ашырды;
    • CIFS файл системасы үчүн FIEMAP ioctl кошулду, бул эффективдүү масштабды картага түшүрүүнү, ошондой эле SEEK_DATA жана SEEK_HOLE режимдерин колдоону камсыз кылат;
    • FUSE подсистемасында сунушталган маалыматтарды кэш башкаруу үчүн API;
    • Btrfs qgroups ишке ашырууну оптималдаштырды жана бир нече катуу шилтемелери бар файлдар үчүн fsync аткаруу ылдамдыгын жакшыртты. Маалыматтын бүтүндүгүн текшерүү коду өркүндөтүлдү, ал эми дискке маалыматтарды жууганга чейин оперативдүү эс тутумдагы маалыматка мүмкүн болгон зыянды эске алат;
    • CEPH NFS аркылуу сүрөттөрдү экспорттоо үчүн колдоо кошту;
    • "Жумшак" режимде NFSv4 монтаждоону ишке ашыруу жакшыртылды (эгерде "жумшак" режимде серверге кирүүдө ката пайда болсо, чалуу дароо ката кодун кайтарат, ал эми "катуу" режимде башкаруу FS чейин берилбейт. жеткиликтүүлүк же күтүү мөөнөтү калыбына келтирилген). Жаңы релиз тайм-ауттун так иштөөсүн, катаны тезирээк калыбына келтирүүнү жана тайм-аут пайда болгондо кайтарылган ката кодун (ETIMEDOUT) өзгөртүүгө мүмкүндүк берген жаңы "жумшак" орнотуу опциясын камсыз кылат;
    • NFS кардарларынын абалын көзөмөлдөө үчүн иштелип чыккан nfsdcld API NFS серверине кайра жүктөөдө кардардын абалын туура көзөмөлдөөгө мүмкүндүк берет. Ошентип, nfsdcld демону эми nfsdcltrack иштетүүчү катары иштей алат;
    • AFS үчүн кошулду файлдардагы байт диапазонунун кулпуларынын эмуляциясы (Байт диапазонун кулпулоо);
  • Виртуалдаштыруу жана коопсуздук
    • Жазылуучу чагылдырылган эс тутум аймактарынан кодду аткарууга мүмкүндүк берген ядродогу жерлерди жок кылуу боюнча иштер жасалды, бул чабуул учурунда пайдаланылышы мүмкүн болгон потенциалдуу тешиктерди бөгөт коюуга мүмкүндүк берет;
    • Ядронун командалык сабынын жаңы параметри "мигациялар =" кошулду, ал CPUдагы нускамаларды алып-сатарлык аткаруу менен байланышкан алсыздыктардан коргоо үчүн белгилүү бир ыкмаларды иштетүүнү көзөмөлдөөнүн жөнөкөйлөштүрүлгөн ыкмасын камсыз кылат. "Жумулатуулар=өчүрүү" деп өтүү учурдагы бардык ыкмаларды өчүрөт, ал эми демейки режим "митингдер=авто" коргоону иштетет, бирок Hyper Threading колдонууга таасирин тийгизбейт. Коргоо ыкмасы талап кылса, "жумулатуу = авто, nosmt" режими кошумча Hyper Threadingди өчүрөт.
    • Кошулган ГОСТ Р 34.10-2012 (RFC 7091, ISO/IEC 14888-3) боюнча электрондук цифралык кол тамганы колдоо; иштелип чыккан Виталий Чикунов Базальт СПО-дан. Жергиликтүү TLS ишке ашырууга AES128-CCM үчүн колдоо кошулду. crypto_simd модулуна AEAD алгоритмдерине колдоо кошулду;
    • Kconfig ичинде кошулду ядронун коргоосун күчөтүү параметрлери бар өзүнчө "ядрону катаалдаштыруу" бөлүмү. Учурда жаңы бөлүмдө GCC текшерүүсүн жакшыртуучу плагиндерди иштетүү үчүн жөндөөлөр гана бар;
    • Ядро коду дээрлик жеткирилди коммутатордогу үзүлбөгөн регистрдик билдирүүлөрдөн (ар бир кейс блогунан кийин кайтаруу же тыныгуу жок). Которгучту мындай колдонуунун 32 учурунун 2311син оңдоо калды, андан кийин ядрону курууда “-Wimplicit-fallthrough” режимин колдонууга болот;
    • PowerPC архитектурасы үчүн колдонуучу мейкиндигинде маалыматтарга ядронун керексиз жолдорун чектөө үчүн аппараттык механизмдерди колдоо ишке ашырылган;
    • Бөгөттөө коду кошулду кол салуулар Intel процессорлорундагы MDS (микроархитектуралык маалыматтарды тандоо) классы. Сиз "/sys/devices/system/cpu/vulnerabilities/mds" SysFS өзгөрмө аркылуу системанын аялуулугун текшере аласыз. Жеткиликтүү эки коргоо режими: толук, ал жаңыланган микрокодду талап кылат жана башкаруу колдонуучу мейкиндигине же конок системасына өткөрүлүп берилгенде CPU буферлеринин тазаланышына толук кепилдик бербеген айланып өтүү. Коргоо режимдерин башкаруу үчүн ядрого “mds=” параметри кошулду, ал “full”, “full,nosmt” (+ Hyper-Threads өчүрүү) жана “өчүрүү” маанилерин ала алат;
    • X86-64 системаларында IRQ, мүчүлүштүктөрдү оңдоо механизмдери жана өзгөчө кырдаалды иштетүүчүлөр үчүн “стек коргоочу бет” коргоосу кошулган, анын маңызы эстутум барактарын стек менен алмаштыруу болуп саналат, ага жетүү генерацияга алып келет. өзгөчө жагдай (барак катасы);
    • Кошулган sysctl жөндөө vm.unprivileged_userfaultfd, ал артыкчылыксыз процесстердин userfaultfd() тутум чалууларын колдонуу мүмкүнчүлүгүн көзөмөлдөйт;
  • Тармактык подсистема
    • Кошулган IPv6 маршруттары үчүн IPv4 шлюз колдоо. Мисалы, сиз азыр “ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0” сыяктуу маршруттоо эрежелерин көрсөтсөңүз болот;
    • ICMPv6 үчүн, ioctl чалуулары icmp_echo_ignore_anycast жана icmp_echo_ignore_multicast каалаган берүү үчүн ICMP ECHOну этибарга албоо үчүн аткарылат жана
      мультикаст даректери. Кошулган ICMPv6 пакеттерин иштетүүнүн интенсивдүүлүгүн чектөө мүмкүнчүлүгү;

    • BATMAN (Better Approach To Mobile Adhoc Networking) сетка протоколу үчүн, ар бир түйүн кошуна түйүндөр аркылуу туташтырылган борбордон ажыратылган тармактарды түзүүгө мүмкүндүк берет. кошулду мультикасттан уникастатка чейин берүүнү колдоо, ошондой эле sysfs аркылуу башкаруу мүмкүнчүлүгү;
    • Эттолдо кошулду жаңы Fast Link Down параметри, ал 1000BaseT үчүн шилтемени түшүрүү окуясы жөнүндө маалыматты алууга кеткен убакытты кыскартууга мүмкүндүк берет (кадимки шарттарда кечигүү 750 мс чейин);
    • Пайда болгон мүмкүнчүлүк Foo-Over-UDP туннелдерин белгилүү бир дарекке, тармак интерфейсине же розеткага байланыштыруу (мурда байланыш жалпы маска менен гана аткарылчу);
    • Зымсыз стекте камсыздалган иштетүүчүлөрдү ишке ашыруу мүмкүнчүлүгү
      Колдонуучу мейкиндигинде OWE (Opportunistic Wireless Encryption);

    • Netfilterде inet даректер үй-бүлөсү үчүн колдоо nat чынжырларына кошулду (мисалы, сиз азыр ipv4 жана ipv6 эрежелерин бөлбөстөн, ipv4 жана ipv6 иштетүү үчүн бир котормо эрежесин колдоно аласыз);
    • Нетлинкте кошулду режим бардык билдирүүлөрдүн жана атрибуттардын тууралыгын катуу текшерүү үчүн катуу, мында атрибуттардын күтүлгөн өлчөмүнөн ашууга жол берилбейт жана билдирүүлөрдүн аягында кошумча маалыматтарды кошууга тыюу салынат;
  • Эстутум жана система кызматтары
    • CLONE_PIDFD желеги clone() тутумунун чалуусуна кошулду, белгиленгенден кийин түзүлгөн бала процесси менен аныкталган "pidfd" файл дескриптору ата-эне процессине кайтарылат. Бул файлдын дескриптору, мисалы, жарыш шартына кирип калуудан коркпостон сигналдарды жөнөтүү үчүн колдонулушу мүмкүн (сигнал жөнөткөндөн кийин дароо максаттуу PID процесстин токтотулушуна байланыштуу бошотулушу мүмкүн жана башка процесс менен ээлениши мүмкүн);
    • Топтордун экинчи версиясы үчүн тоңдургуч контроллер функционалы кошулду, анын жардамы менен сиз топтун ишин токтотуп, башка тапшырмаларды аткаруу үчүн кээ бир ресурстарды (CPU, киргизүү/чыгарма жана потенциалдуу эстутум) убактылуу бошотсоңуз болот. Башкаруу cgroup дарагындагы cgroup.freeze жана cgroup.events башкаруу файлдары аркылуу ишке ашырылат. cgroup.freeze ичиндеги 1-киргизүү учурдагы cgroup жана бардык балдар топторундагы процесстерди тоңдурат. Тоңдуруу бир аз убакытты талап кылгандыктан, кошумча cgroup.events файлы берилет, ал аркылуу сиз операциянын аяктагандыгы жөнүндө биле аласыз;
    • Кооптуу sysfsтин ар бир түйүнүнө тиркелген эстутумдун атрибуттарын экспорттоо, бул колдонуучу мейкиндигинен гетерогендүү эс тутумдары бар системаларда эстутум банктарын иштетүү мүнөзүн аныктоого мүмкүндүк берет;
    • PSI (Pressure Stall Information) подсистемасы өркүндөтүлдү, ал ктоптогу белгилүү бир тапшырмалар же процесстердин топтому үчүн ар кандай ресурстарды (CPU, эстутум, киргизүү/чыгаруу) алуу үчүн күтүү убактысы жөнүндө маалыматты анализдөөгө мүмкүндүк берет. PSIди колдонуу менен колдонуучу мейкиндигин иштетүүчүлөр системанын жүктөө деңгээлин жана Load Average менен салыштырганда жайлоо схемаларын так баалай алышат. Жаңы версия сезгичтиктин босогосун коюуга колдоо көрсөтөт жана белгиленген босоголор белгилүү бир убакыт аралыгында ишке киргизилгендиги жөнүндө билдирүүнү алуу үчүн poll() чалуу мүмкүнчүлүгүн берет. Бул функция Android'ге эстутум жетишсиздигин алгачкы этапта көзөмөлдөөгө, көйгөйлөрдүн булагын аныктоого жана колдонуучуга байкалган көйгөйлөрдү жаратпастан маанилүү эмес тиркемелерди токтотууга мүмкүндүк берет. Стресс тестирлөөдө, PSI негизиндеги эстутум керектөөнүн мониторинги куралдары vmpressure статистикасына салыштырмалуу 10 эсе аз жалган оң көрсөткүчтөрдү көрсөттү;
    • BPF программаларын текшерүү коду оптималдаштырылган, бул чоң программаларды 20 эсеге чейин тезирээк текшерүүгө мүмкүндүк берет. Оптималдаштыруу BPF программаларынын өлчөмүн чектөөнү 4096дан миллион нускага чейин көтөрүүгө мүмкүндүк берди;
    • BPF программалары үчүн каралган программаларда глобалдык өзгөрмөлөрдү жана константаларды аныктоого мүмкүндүк берген глобалдык маалыматтарга жетүү мүмкүнчүлүгү;
    • Кошулган API, бул BPF программаларынан sysctl параметрлериндеги өзгөрүүлөрдү көзөмөлдөөгө мүмкүндүк берет;
    • MIPS32 архитектурасы үчүн eBPF виртуалдык машинасы үчүн JIT компилятору ишке ашырылган;
    • 32 биттик PowerPC архитектурасы үчүн эстутум менен иштөөдө каталарды аныктоого жардам берген KASan (Ядро дарегин тазалоочу) мүчүлүштүктөрдү оңдоо куралына колдоо кошулду;
    • x86-64 системаларында, 896 МБдан жогору эстутум аймактарында ядронун бузулушу (crash-dump) учурунда мамлекеттик таштандыларды жайгаштыруу боюнча чектөө алынып салынды;
    • s390 архитектурасы үчүн ядронун дарек мейкиндигин рандомизациялоону (KASLR) колдоо жана kexec_file_load() аркылуу ядрону жүктөөдө санариптик кол тамгаларды текшерүү мүмкүнчүлүгү ишке ашырылган;
    • PA-RISC архитектурасы үчүн, ядродогу мүчүлүштүктөрдү оңдоочу (KGDB), секирүү белгилери жана кпробдор үчүн кошумча колдоо;
  • жабдуулар
    • Айдоочу киргизилген Lima ARM архитектурасына негизделген көптөгөн эски чиптерде колдонулган Mali 400/450 GPU үчүн. Жаңы Mali GPU'лары үчүн Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) жана Bifrost (Mali G3x, G5x, G7x) микроархитектураларына негизделген чиптерди колдогон Panfrost драйвери кошулду;
    • Ачык микропрограмманы колдонуу менен аудио түзмөктөргө колдоо кошулду Үн ачык орнотулган программа (SOF). Ачык драйверлердин болушуна карабастан, үн микросхемаларынын микропрограммалык коду дагы эле жабык бойдон калууда жана бинардык түрдө берилген. Sound Open Firmware долбоору аудио иштетүүгө байланыштуу DSP чиптери үчүн ачык микропрограмманы түзүү үчүн Intel тарабынан иштелип чыккан (Google да кийинчерээк иштеп чыгууга кошулган). Учурда долбоор Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake жана IceLake платформаларынын үн чиптери үчүн микропрограммаларды ачууну даярдады;
    • Intel DRM драйвери (i915) чиптерди колдоону кошот
      Elkhartlake (Gen11). Comet Lake (Gen9) чиптери үчүн PCI идентификаторлору кошулду. Icelake чиптерин колдоо турукташтырылган, алар үчүн кошумча PCI түзмөк идентификаторлору да кошулган.
      камтылган
      mmio аркылуу жазуу операцияларын аткарууда видео эстутумдагы эки буфердин ортосунда асинхрондук которулуу режими (асинхрондук флип), бул кээ бир 3D тиркемелеринин иштешин бир топ жогорулатты (мисалы, 3DMark Ice Storm тестиндеги көрсөткүчтөр 300-400% га жогорулады). Кошумча технологиялык колдоо HDCP2.2 HDMI аркылуу берилүүчү видео сигналдарды шифрлөө үчүн (Жогорку өткөрмөлүү Digital Content Protection);

    • Vega20 GPU үчүн amdgpu драйвери кошулду RAS үчүн колдоо (Ишенимдүүлүк, жеткиликтүүлүк, тейлөө) жана Powerplay технологиясын алмаштырган SMU 11 подсистемасына эксперименталдык колдоо. GPU Vega12 үчүн кошулду BACO режимин колдоо (Bus Active, Chip Off). XGMI үчүн баштапкы колдоо кошулду, GPU өз ара байланышы үчүн жогорку ылдамдыктагы автобус (PCIe 4.0). Amdkfd драйверине Polaris10 GPU негизиндеги карталар үчүн жетишпеген идентификаторлор кошулду;
    • Nouveau драйвери NVIDIA Turing 117 чипсетинин (TU117, GeForce GTX 1650де колдонулган) негизиндеги такталарды колдоону кошту. IN
      kconfig кошулду libdrmдин учурдагы чыгарылыштарында колдонулбай калган эскирген функцияларды өчүрүү үчүн орнотуу;

    • "Убакыт тилкеси" синхрондоштуруу объекттерин колдоо DRM API жана amdgpu драйверине кошулду, бул классикалык бөгөттөөсүз жасоого мүмкүндүк берет.
    • VirtualBox виртуалдык GPU үчүн vboxvideo драйвери сахналаштыруу тармагынан негизги структурага жылдырылды;
    • GFX SoC ASPEED чипине кошумча ылдамдыктагы драйвер;
    • ARM SoC жана Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, ,Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi) үчүн кошумча колдоо ) такталар RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510,
      ST Micro (stm32mp157a, stm32mp157c), NXP (
      Эккелман ci4x10 (i.MX6DL),

      i.MX8MM EVK (i.MX8MM),

      ZII i.MX7 RPU2 (i.MX7),

      ZII SPB4 (VF610),

      Zii Ultra (i.MX8M),

      TQ TQMa7S (i.MX7Solo),

      TQ TQMa7D (i.MX7Dual),

      Кобо Аура (i.MX50),

      Menlosystems M53 (i.MX53)), NVIDIA Jetson Nano (Tegra T210).

Ошол эле учурда Латын Америкасынын эркин программалык камсыздоо фонду түзүлгөн
тандоо толугу менен акысыз ядро ​​5.2 - Linux-libre 5.2-gnu, чөйрөсү өндүрүүчү тарабынан чектелген эркин эмес компоненттерди же код бөлүмдөрүн камтыган микропрограмма жана драйвер элементтеринен тазаланган. Жаңы релиз файлды жүктөө камтыйт
Үн ачуу микропрограммасы. Айдоочуларга блоблорду жүктөө өчүрүлгөн
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp жана ucsi_ccg. ixp4xx, imx-sdma, amdgpu, nouveau жана goya драйверлериндеги жана подсистемасындагы, ошондой эле микрокод документтериндеги blob тазалоо коду жаңыртылды. Аны алып салуудан улам r8822be драйверинде тазалоо иштери токтотулду.

Source: opennet.ru

Комментарий кошуу