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

Пас аз ду моҳи рушд, Линус Торвалдс муаррифӣ кард баровардани ядро Linux 5.1. Дар байни тағйироти назаррас: интерфейси нав барои I/O асинхронӣ io_uring, қобилияти истифодаи NVDIMM ҳамчун RAM, дастгирии хотираи виртуалии муштарак дар Nouveau, дастгирии мониторинги миқёспазири системаҳои файлии хеле калон тавассути fanotify, қобилияти танзим кардани фишурдани Zstd сатҳҳо дар Btrfs, коркарди нави cpuidle TEO, татбиқи зангҳои система барои ҳалли мушкилоти 2038, қобилияти пурбор кардан аз дастгоҳҳои харитачӣ бе initramfs, модули SafeSetID LSM, дастгирии часбҳои зинда.

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

  • Зерсистемаи диск, системаҳои воридотӣ ва файлӣ
    • Интерфейси нав барои вуруд / баромади асинхронӣ татбиқ карда шуд - io_uring, ки бо дастгирии худ барои овоздиҳии I/O ва қобилияти кор бо ё бидуни буферӣ назаррас аст. Ёдовар мешавем, ки механизми асинхронии вуруд/берории қаблан пешниҳодшуда “aio” буферии воридот/хро дастгирӣ намекард, метавонад танҳо дар реҷаи O_DIRECT кор кунад (бе буферкунӣ ва канорагирии кэш), бо бастани мушкилот бо сабаби интизории дастрасии метадотаҳо буд ва хароҷоти зиёди изофӣ аз сабаби нусхабардории маълумот дар хотира нишон дод.

      Дар дохили API
      Таҳиягарони io_uring кӯшиш карданд, ки камбудиҳои интерфейси кӯҳнаи aio-ро бартараф кунанд. Аз ҷониби иҷрои io_uring хеле наздик аст SPDK ва хангоми кор бо овоздихй ба кор андохташуда аз libaio хеле пеш аст. Китобхона барои истифодаи io_uring дар барномаҳои ниҳоӣ, ки дар фазои корбар кор мекунанд, омода карда шудааст озод кардан, ки чаҳорчӯбаи сатҳи баландро дар интерфейси ядро ​​таъмин мекунад;

    • Дар механизми пайгирии ҳодиса дар FS fanotify() илова кард дастгирии пайгирии ҳолатҳои тағирёбии сохтор ва суперблок дирент (ҳодисаҳои эҷод, нест кардан ва интиқол додани директорияҳо). Хусусиятҳои пешниҳодшуда ба ҳалли мушкилоти миқёспазирӣ, ки ҳангоми эҷоди пайгирии тағирёбии рекурсивӣ дар системаҳои файлии хеле калон бо истифода аз механизми inotify ба миён меоянд, кӯмак мекунанд (тағйироти мустақимро қаблан танҳо тавассути inotify пайгирӣ кардан мумкин буд, аммо
      иҷроиш дар шароити пайгирии рекурсивии феҳристҳои калони лона гузошташуда чизи дилхоҳро боқӣ гузошт). Акнун чунин мониторингро метавон тавассути fanotify самаранок анҷом дод;

    • Дар системаи файлии Btrfs илова кард қобилияти танзим кардани сатҳи фишурдасозӣ барои алгоритми zstd, ки онро метавон ҳамчун як созиши оптималии байни lz4 зуд, вале бесамар ва фишурдани суст, вале хуб xz баррасӣ кард. Бо шабеҳи он, ки чӣ гуна қаблан муқаррар кардани сатҳи фишурдакунӣ ҳангоми истифодаи zlib имконпазир буд, дастгирии опсияи васлкунии "-o compress=zstd:level" барои zstd илова карда шудааст. Ҳангоми санҷиш, сатҳи ҳадди ақали якум фишурдани маълумотро 2.658 маротиба бо суръати фишурдани 438.47 МБ/с, суръати декомпрессионалӣ 910.51 МБ/с ва истеъмоли хотира 780 МБ ва сатҳи максималии 15 3.126 маротиба, вале бо фишурдашавӣ таъмин карда шуд. суръати 37.30 МБ/с. кушодан 878.84 МБ/с ва истеъмоли хотира 2547 МБ;
    • Илова карда шуд қобилияти пурбор кардан аз системаи файлие, ки дар дастгоҳи харитасоз ҷойгир аст, бе истифодаи initramfs. Аз барориши ядрои ҷорӣ сар карда, дастгоҳҳои харитагузори дастгоҳро дар ҷараёни боркунӣ мустақиман истифода бурдан мумкин аст, масалан, ҳамчун қисм бо системаи файлии реша. Қисм бо истифода аз параметри пурборкунандаи "dm-mod.create" танзим карда мешавад. Модулҳое, ки барои боркунӣ иҷозат дода шудаанд, инҳоянд: "crypt", "таъхир", "хаттӣ", "snapshot-origin" ва "verity";
    • Парчами F2FS_NOCOW_FL ба системаи файлии F2FS, ки ба дискҳои Flash нигаронида шудааст, илова карда шудааст, ки ба шумо имкон медиҳад ҳолати нусхабардорӣ дар навиштанро барои файли додашуда хомӯш кунед;
    • Системаи файлӣ аз ядро ​​хориҷ карда шуд Exofs, ки як варианти ext2 мебошад, ки барои кор бо анборҳои объекти OSD (Объектҳои нигаҳдории дастгоҳ) мутобиқ карда шудааст. Дастгирии протоколи SCSI барои чунин дастгоҳҳои нигаҳдории объект низ хориҷ карда шудааст;
  • Виртуализатсия ва амният
    • Илова ба PR_SPEC_DISABLE_NOEXEC хосият ба prctl() барои назорати иҷрои тахминии дастурҳо барои раванди интихобшуда. Варианти нав ба шумо имкон медиҳад, ки иҷрои спекулятсияро барои равандҳое, ки эҳтимолан аз ҳамлаи Spectre ҳамла кунанд, ғайрифаъол кунед. Қулф то занги аввал ба exec ();
    • Модули LSM амалӣ карда шуд SafeSetID, ки ба хидматҳои система имкон медиҳад, ки корбаронро бидуни афзоиши имтиёзҳо (CAP_SETUID) ва бидуни гирифтани имтиёзҳои реша бехатар идора кунанд. Имтиёзҳо тавассути муайян кардани қоидаҳо дар амният дар асоси рӯйхати сафеди бастаҳои эътибор (дар шакли "UID1:UID2") таъин карда мешаванд;
    • Тағироти сатҳи пасти иловашуда барои боркунии модулҳои амниятӣ (LSMs) дар асоси стек заруранд. Опсияи пурборкунии ядрои "lsm" -ро барои назорат кардани кадом модулҳо ва бо кадом тартиб бор мекунанд;
    • Дастгирии фазои номҳои файл ба зерсистемаи аудит илова карда шудааст;
    • Васеъ карда шудааст имкониятҳои плагини GCC structleak, ки ба шумо имкон медиҳад, ки ихроҷи эҳтимолии мундариҷаи хотираро банд кунед.. Оғозсозии ҳама гуна тағирёбандаҳое, ки дар код тавассути дастрасии истинод ба стек истифода мешаванд, таъмин карда мешавад;
  • Зерсистемаи шабакавӣ
    • Барои розеткаҳо ба амал бароварда шуд имконоти нав "SO_BINDTOIFINDEX" монанд ба
      "SO_BINDTODEVICE", аммо ҳамчун далел ба ҷои номи интерфейс рақами индекси интерфейси шабакаро мегирад;

    • Стеки mac80211 қобилияти таъини якчанд BSSID (суроғаҳои MAC) ба як дастгоҳро илова кардааст. Ҳамчун як қисми лоиҳаи оптимизатсияи кори WiFi, стеки mac80211 баҳисобгирии вақти эфир ва қобилияти тақсими вақти эфирро дар байни якчанд истгоҳҳо (ҳангоми кор дар реҷаи нуқтаи дастрасӣ, ҷудо кардани вақти камтари интиқол ба пойгоҳҳои бесими бесим, ба ҷои тақсим кардани вақт дар байни ҳама) илова кардааст. истгоҳҳо);
    • Механизми иловашуда "саломатии devlink", ки ҳангоми пайдо шудани мушкилот бо интерфейси шабака огоҳӣ медиҳад;
  • Хидматҳои хотира ва система
    • Ба амал бароварда шуд интиқоли сигнали бехатар, ки барои истифодаи дубораи PID имкон медиҳад. Масалан, ҳангоми занг задан ба kill қаблан, вазъияте ба вуҷуд омада метавонад, ки дарҳол пас аз фиристодани сигнал, PID-и мақсаднок метавонад бо сабаби қатъи раванд озод карда шавад ва онро раванди дигар ишғол кунад ва сигнал ба раванди дигар интиқол дода шавад. Барои бартараф кардани чунин ҳолатҳо, занги нави системаи pidfd_send_signal илова карда шуд, ки тавсифи файлҳоро аз /proc/pid барои таъмини пайвастагии устувори раванд истифода мебарад. Ҳатто агар PID ҳангоми коркарди зангҳои система дубора истифода шавад, дескриптори файл тағир намеёбад ва онро барои фиристодани сигнал ба раванд бехатар истифода бурдан мумкин аст;
    • Илова карда шуд қобилияти истифодаи дастгоҳҳои хотираи доимӣ (хотираи доимӣ, масалан NVDIMM) ҳамчун RAM. То ба ҳол, ядро ​​чунин дастгоҳҳоро ҳамчун дастгоҳҳои нигоҳдорӣ дастгирӣ мекард, аммо ҳоло онҳо метавонанд ҳамчун RAM иловагӣ истифода шаванд. Хусусият дар посух ба хоҳишҳои корбароне амалӣ карда мешавад, ки мехоҳанд ба таъхири иҷроиш тоб оранд ва мехоҳанд API-и идоракунии хотираи ядроии Linux-ро истифода баранд, ба ҷои истифодаи системаҳои мавҷудаи тақсимоти хотираи корбар дар болои mmap барои dax. файл;
    • Як коркардкунандаи нави бекористии CPU илова карда шуд (cpuidle, муайян мекунад, ки кай CPU-ро ба режимҳои амиқи сарфаи барқ ​​​​ҷой додан мумкин аст; ҳар қадар амиқтар бошад, пасандоз бештар мешавад, аммо барои баромадан аз режим ҳамон қадар вақт лозим мешавад) - TEO (Губернатори Таймер ба рӯйдодҳо нигаронидашуда ). То ба ҳол ду коркардкунандаи cpuidle пешниҳод карда шудаанд - "меню" ва "нардбон", ки аз ҷиҳати эвристика фарқ мекунанд. Коркарди "меню" мушкилоти қабули қарорҳои эвристӣ дорад, ки барои бартараф кардани онҳо тасмим гирифта шуд, ки коркардкунандаи нав омода кунад. TEO ҳамчун алтернатива ба коркарди "меню" ҷойгир карда шудааст, ки имкон медиҳад, ки иҷрои баландтар ҳангоми нигоҳ доштани ҳамон сатҳи истеъмоли қувваи барқ.
      Шумо метавонед коркардкунандаи навро бо истифода аз параметри пурборкунанда "cpuidle.governor=teo" фаъол созед;

    • Дар доираи кори бартараф намудани мушкилоти соли 2038, ки дар натиҷаи фаромадани навъи 32-бити time_t ба вуҷуд омадааст, зангҳои системавиро дар бар мегирад, ки ҳисобкунакҳои 32-битаро барои меъмории 64-бит пешниҳод мекунанд. Дар натиҷа, сохтори 64-битии time_t акнун метавонад дар ҳама меъморӣ истифода шавад. Тағйироти шабеҳ дар зерсистемаи шабака барои вариантҳо низ амалӣ карда шуданд нусхаи розеткаҳои шабакавӣ;
    • Ба системаи часпакҳои гарм барои аслӣ (патчҳои зинда) илова кард Хусусияти "Иваз кардани атом" барои ба таври атомӣ татбиқ кардани як қатор тағйирот ба як функсия. Ин хусусият ба шумо имкон медиҳад, ки ба ҷои раванди татбиқи марҳила ба марҳилаи часпакҳои зинда бо тартиби қатъӣ муайяншуда, ки нигоҳдорӣ хеле душвор аст, часбҳои ҷамъбастиро, ки дар як вақт якчанд тағйиротро дар бар мегиранд, паҳн кунед. Дар ҳоле ки қаблан ҳар як тағйироти минбаъда бояд ба ҳолати функсия пас аз тағири охирин асос ёфта бошад, акнун мумкин аст, ки якбора якчанд тағиротро, ки ба як ҳолати ибтидоӣ алоқаманданд, паҳн кардан мумкин аст (яъне нигоҳдорон метавонанд ба ҷои он як ямоқи муттаҳидшударо нисбат ба ядрои асосӣ нигоҳ доранд. занҷири часпакҳое, ки аз ҳамдигар вобастаанд);
    • Эълон карда шуд дастгирии бекоршуда барои формати файли иҷрошавандаи a.out ва
      хориҷ карда шудааст код барои тавлиди файлҳои аслӣ дар формати a.out, ки дар ҳолати партофташуда аст. Формати a.out дар системаҳои Linux муддати тӯлонӣ истифода нашуда буд ва тавлиди файлҳои a.out аз ҷониби абзорҳои муосир дар конфигуратсияҳои пешфарзи Linux кайҳо дастгирӣ намешуд. Илова бар ин, боркунаки файлҳои a.out метавонад пурра дар фазои корбар амалӣ карда шавад;

    • Қобилияти муайян ва хориҷ кардани рамзи истифоданашуда ба механизми санҷиши барномаи BPF илова карда шудааст. Ядро инчунин часпакҳоро бо дастгирии spinlock барои зерсистемаи BPF дар бар мегирад, ки имкониятҳои иловагиро барои идоракунии иҷрои параллели барномаҳои BPF таъмин мекунад;
  • Таҷҳизот
    • Дар Nouveau ронанда илова кард дастгирии идоракунии хотираи гетерогенӣ, ки ба CPU ва GPU имкон медиҳад, ки ба минтақаҳои умумии хотираи ҳамоҳангшуда дастрасӣ пайдо кунанд. Системаи хотираи муштараки маҷозӣ (SVM, хотираи муштараки виртуалӣ) дар асоси зерсистемаи HMM (Идоракунии хотираи гетерогенӣ) амалӣ карда мешавад, ки имкон медиҳад дастгоҳҳоро бо воҳидҳои идоракунии хотираи худ (MMU, воҳиди идоракунии хотира), ки метавонанд дастрас бошанд хотираи асосӣ. Аз ҷумла, бо истифода аз HMM, шумо метавонед фазои суроғаи муштаракро байни GPU ва CPU ташкил кунед, ки дар он GPU метавонад ба хотираи асосии раванд дастрасӣ пайдо кунад. Дастгирии SVM дар айни замон танҳо барои GPU-ҳои оилавии Паскал фаъол аст, гарчанде ки дастгирӣ барои GPU-ҳои Volta ва Turing низ дода мешавад. Илова бар ин, дар Nouveau илова намуд ioctl нав барои назорати муҳоҷирати минтақаҳои хотираи раванд ба хотираи GPU;
    • Дар драйвери Intel DRM барои GPU Skylake ва баъдтар (gen9+) фурӯзон Бо нобаёнӣ, реҷаи зудборкунӣ тағироти ҳолати нолозимро ҳангоми боркунӣ нест мекунад. Илова карда шуд новые идентификаторҳои дастгоҳ дар асоси микроархитектураҳои Coffelake ва Ice Lake. Барои чипҳои Coffelake илова кард Дастгирии GVT (Виртуализатсияи GPU). Барои GPU-ҳои виртуалӣ ба амал бароварда шуд Дастгирии VFIO EDID. Барои панелҳои LCD MIPI/DSI илова кард дастгирии унсурҳои ACPI/PMIC. Ба амал бароварда шуд режимхои нави телевизиони 1080p30/50/60 ТВ;
    • Дастгирии Vega10/20 BACO GPU ба драйвери amdgpu илова карда шуд. Иҷрои Vega 10/20 идоракунии қувваи барқ ​​ва мизҳои назорати сардтар Vega 10. Иловаи идентификаторҳои нави дастгоҳи PCI барои GPUs Picasso. Илова карда шуд интерфейс барои идоракунии вобастагии банақшагирифташуда барои пешгирӣ аз бунбаст;
    • Илова карда шуд Драйвери DRM/KMS барои суръатбахши экран ARM Комеда (Мали D71);
    • Дастгирии иловашуда барои Toppoly TPG110, Sitronix ST7701, PDA 91-00156-A0, LeMaker BL035-RGB-002 3.5 ва панелҳои экрани Kingdisplay kd097d04;
    • Дастгирии иловашуда барои Rockchip RK3328, Cirrus Logic CS4341 ва CS35L36, MediaTek MT6358, Qualcomm WCD9335 ва Ingenic JZ4725B кодекҳои аудиоӣ, инчунин платформаи аудиоии Mediatek MT8183;
    • Дастгирии иловашуда барои контроллерҳои NAND Flash STMicroelectronics FMC2, Amlogic Meson;
    • Дастгирии суръатбахшии иловашуда барои системаҳои сахтафзори Habana AI;
    • Дастгирии иловашуда барои контроллерҳои гигабитии Ethernet NXP ENETC ва интерфейсҳои бесими MediaTek MT7603E (PCIe) ва MT76x8.

Дар айни замон Фонди нармафзори озоди Амрикои Лотинӣ ташаккул ёфт
интихоб ядрои комилан озод 5.1 - Linux-libre 5.1-gnu, аз нармафзори миёнаравӣ ва унсурҳои драйвери дорои ҷузъҳои ғайриозод ё қисмҳои код, ки доираи онҳо аз ҷониби истеҳсолкунанда маҳдуд аст, тоза карда шудааст. Дар версияи нав, боркунии blob дар драйверҳои mt7603 ва goya ғайрифаъол аст. Рамзи тозакунии blob дар драйверҳо ва зерсистемаҳои wilc1000, iwlwifi, soc-acpi-intel, brcmfmac, mwifiex, btmrvl, btmtk ва touchscreen_dmi. Тозакунии Blob дар боркунаки нармафзори lantiq xrx200 бо сабаби хориҷ кардани он аз ядро ​​қатъ карда шуд.

Манбаъ: opennet.ru

Илова Эзоҳ