Linux 5.11 ядросының шығарылымы

Екі айлық әзірлеуден кейін Линус Торвальдс Linux ядросының 5.11 шығарылымын ұсынды. Ең көрнекті өзгерістердің арасында: Intel SGX анклавтарын қолдау, жүйелік қоңырауларды ұстаудың жаңа механизмі, виртуалды көмекші шина, MODULE_LICENSE(сіз) модульдерді жинауға тыйым салу, seccomp жүйесінде жүйелік қоңырауларды жылдам сүзу режимі, қолдауды тоқтату. ia64 архитектурасы, WiMAX технологиясын «сақтау» тармағына беру, UDP-де SCTP инкапсуляциялау мүмкіндігі.

Жаңа нұсқа 15480 әзірлеушіден 1991 72 түзетуді қамтиды, патч өлшемі 12090 МБ (өзгертулер 868025 261456 файлға әсер етті, 46 5.11 код жолы қосылды, 16 13 жол жойылды). 3-де енгізілген барлық өзгерістердің шамамен 4%-ы құрылғы драйверлеріне қатысты, өзгерістердің шамамен XNUMX%-ы аппараттық архитектураға тән кодты жаңартуға, XNUMX%-ы желілік стекке, XNUMX%-ы файлдық жүйелерге және XNUMX%-ға қатысты. ішкі ядролық ішкі жүйелермен байланысты.

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

  • Дискінің ішкі жүйесі, енгізу/шығару және файлдық жүйелер
    • Зақымдалған файлдық жүйеден деректерді қалпына келтіру кезінде пайдалану үшін Btrfs-ке бірнеше орнату опциялары қосылды: кейбір түбірлік ағаштардың зақымдануына қарамастан (дәреже, uuid, деректерді қайта орналастыру, құрылғы, csum, бос орын), « деректерге бақылау сомасын тексеруді өшіру үшін rescue=ignoredatacsums және бір уақытта "ignorebadroots", "ignoredatacsums" және "nologreplay" режимдерін қосу үшін "rescue=all" таңдаңыз. Бұрын ескірген "inode_cache" орнату опциясы тоқтатылды. Код метадеректері және бет өлшемінен (PAGE_SIZE) кіші деректері бар блоктарды қолдауды, сондай-ақ аумақтық кеңістікті бөлу режимін қолдауды жүзеге асыру үшін дайындалған. Буферленбеген (тікелей IO) сұраулары iomap инфрақұрылымына жылжытылды. Бірқатар операциялардың өнімділігі оңтайландырылды, кейбір жағдайларда жеделдету ондаған пайызға жетуі мүмкін.
    • XFS жөндеу қажеттілігін білдіретін «жөндеу қажет» жалауын жүзеге асырады. Бұл жалауша орнатылған кезде, жалаушаны xfs_repair утилитасы қалпына келтірмейінше, файлдық жүйені орнату мүмкін емес.
    • Ex4 тек қателерді түзету мен оңтайландыруды, сондай-ақ кодты тазалауды ұсынады.
    • NFS арқылы орнатылған файлдық жүйелерді қайта экспорттауға рұқсат етіледі (яғни NFS арқылы орнатылған бөлімді енді NFS арқылы экспорттауға және аралық кэш ретінде пайдалануға болады).
    • Процесске ашық файл дескрипторларының бүкіл ауқымын бірден жабуға мүмкіндік беретін close_range() жүйелік шақыруы дескрипторларды орындау режимінде жабу үшін CLOSE_RANGE_CLOEXEC опциясын қосты.
    • F2FS файлдық жүйесі сығылған пішінде сақталатын файлдарды пайдаланушы кеңістігін басқаруға мүмкіндік беру үшін жаңа ioctl() шақыруларын қосады. Қысу өңдегішін ядро ​​жағында немесе пайдаланушы кеңістігінде орналастыруды таңдау үшін "compress_mode=" монтаждау опциясы қосылды.
    • Жеке пайдаланушы аттар кеңістігін пайдаланып артықшылықсыз процестер арқылы Overlayfs орнату мүмкіндігін берді. Қауіпсіздік үлгісін енгізуге сәйкестігін тексеру үшін толық кодтық аудит жүргізілді. Overlayfs сонымен қатар UUID тексеруін қосымша өшіру арқылы файлдық жүйе кескіндерінің көшірмелерін пайдалану арқылы іске қосу мүмкіндігін қосады.
    • Ceph файлдық жүйесі msgr2.1 протоколына қолдауды қосты, ол деректерді шифрланған түрде жіберу кезінде AES-GCM алгоритмін пайдалануға мүмкіндік береді.
    • dm-көп жолдық модулі енгізу/шығару сұраулары үшін маршрутты таңдаған кезде процессордың жақындығын («IO аффинділігі») есепке алу мүмкіндігін жүзеге асырады.
  • Жад және жүйелік қызметтер
    • Белгілі бір жүйелік қоңырауға қол жеткізген кезде пайдаланушы кеңістігінен ерекше жағдайларды жасауға және оның орындалуын эмуляциялауға мүмкіндік беретін prctl() негізіндегі жаңа жүйелік қоңырауды ұстау механизмі қосылды. Бұл функция Wine және Proton жүйесінде Windows жүйелік қоңырауларын эмуляциялау үшін қажет, бұл Windows API интерфейсін айналып өтіп жүйелік қоңырауларды тікелей орындайтын ойындармен және бағдарламалармен үйлесімділікті қамтамасыз ету үшін қажет (мысалы, рұқсатсыз пайдаланудан қорғау үшін).
    • Пайдаланушы кеңістігіндегі бет ақауларын (бөлінбеген жад беттеріне қол жеткізу) өңдеуге арналған userfaultfd() жүйелік қоңырауы енді белгілі бір осалдықтарды пайдалануды қиындату үшін ядро ​​деңгейінде орын алатын ерекше жағдайларды өңдеуді өшіру мүмкіндігіне ие.
    • BPF ішкі жүйесі нақты BPF өңдеушісіне деректерді байланыстыруды қамтамасыз ететін тапсырмаларды жергілікті сақтау үшін қолдауды қосты.
    • BPF бағдарламалары арқылы жадты тұтынуды есепке алу толығымен қайта жасалды - BPF нысандарында жадты пайдалануды басқару үшін memlock rlimit орнына cgroup контроллері ұсынылды.
    • BPF псевдокодында типті тексеру ақпаратын қамтамасыз ететін BTF (BPF Type Format) механизмі ядро ​​модульдерін қолдауды қамтамасыз етеді.
    • io_uring асинхронды енгізу/шығару интерфейсіне shutdown(), renameat2() және unlinkat() жүйелік қоңырауларына қолдау қосылды. io_uring_enter() функциясына қоңырау шалу кезінде күту уақытын көрсету мүмкіндігі қосылды (IORING_FEAT_EXT_ARG жалауын пайдаланып күту уақытын көрсету үшін аргументтің қолдауын тексеруге болады).
    • Intel Itanium процессорларында қолданылатын ia64 архитектурасы жетім санатқа ауыстырылды, яғни тестілеу тоқтатылды. Hewlett Packard Enterprise жаңа Itanium жабдығына тапсырыстарды қабылдауды тоқтатты, ал Intel өткен жылы мұны жасады.
    • Жадты басқару блогын (MMU) қамтымайтын MicroBlaze архитектурасына негізделген жүйелерге қолдау көрсету тоқтатылды. Мұндай жүйелер көптен бері күнделікті өмірде кездеспеді.
    • MIPS архитектурасы үшін gcov утилитасы арқылы кодты қамтуды тексеруге қолдау қосылды.
    • Әртүрлі драйверлерді қажет ететін функционалдылықты біріктіретін көп функциялы құрылғылармен (мысалы, Ethernet және RDMA қолдауы бар желілік карталар) интерфейске арналған виртуалды қосалқы шинаға қолдау қосылды. MFD (көп функциялы құрылғылар) ішкі жүйесін пайдалану қиындық тудыратын жағдайларда, шинаны құрылғыға негізгі және қосымша драйверді тағайындау үшін пайдалануға болады.
    • RISC-V архитектурасы үшін жад бетін жылжыту әдістерін пайдалана отырып, үлкен іргелес жад аумақтарын бөлу үшін оңтайландырылған CMA (Contiguous Memory Allocator) жад бөлу жүйесіне қолдау қосылды. RISC-V үшін /dev/mem қол жеткізуді шектеу және үзілістерді өңдеу уақытын есепке алу үшін құралдар да жүзеге асырылады.
    • 32-биттік ARM жүйелері үшін жадпен жұмыс істеу кезінде қателерді анықтауға көмектесетін KASan (ядро мекенжайын тазартқыш) жөндеу құралына қолдау қосылды. 64-биттік ARM үшін KASan іске асыру MTE тегтерін (MemTag) пайдалану үшін түрлендірілді.
    • Наносекундтық дәлдікпен күту уақытына рұқсат беру үшін epoll_pwait2() жүйелік қоңырауы қосылды (epoll_wait қоңырауы миллисекундтарды басқарады).
    • Енді құрастыру жүйесі MODULE_LICENSE() макросы арқылы код лицензиясы анықталмаған жүктелетін ядро ​​модульдерін құру әрекеті кезінде қатені көрсетеді. Бұдан былай статикалық функциялар үшін EXPORT_SYMBOL() макросын пайдалану да құрастыру қатесін тудырады.
    • GEM нысандарын енгізу/шығару үшін пайдаланылатын жадтан салыстыруға қолдау қосылды, бұл кейбір архитектуралардағы фреймбуфермен жұмысты жылдамдатуға мүмкіндік берді.
    • Kconfig Qt4 қолдауын тоқтатты (Qt5, GTK және Ncurses қолдауын сақтай отырып).
  • Виртуализация және қауіпсіздік
    • Жылдам жауап беру режиміне қолдау seccomp() жүйелік қоңырауға қосылды, ол іске қосуды қажет етпейтін процеске тіркелген тұрақты әрекет нүктелік кескіні негізінде белгілі бір жүйелік шақыруға рұқсат етілгенін немесе тыйым салынғанын өте жылдам анықтауға мүмкіндік береді. BPF өңдеушісі.
    • Intel SGX (Software Guard eXtensions) технологиясы негізінде анклавтарды құруға және басқаруға арналған біріктірілген ядро ​​​​компоненттері, бұл қолданбаларға жүйенің қалған бөлігінің қол жеткізуі шектелген жадтың оқшауланған шифрланған аймақтарында кодты орындауға мүмкіндік береді.
    • MSR_IA32_ENERGY_PERF_BIAS тізіліміне жазу пайдаланушы кеңістігінен MSR (модельге арналған регистр) қолжетімділігін шектеу бастамасының бөлігі ретінде процессордың энергияны үнемдеу режимін («қалыпты», «өнімділік», «қуатты үнемдеу») өзгертуге мүмкіндік береді. , тыйым салынады.
    • Орталық процессорлар арасында басымдылығы жоғары тапсырмаларды тасымалдауды өшіру мүмкіндігі нақты уақыттағы жүйелер үшін ядро-rt тармағынан ауыстырылды.
    • ARM64 жүйелері үшін сигнал өңдегішінің жады мекенжайлары үшін MTE тегтерін (MemTag, жадты белгілеу кеңейтімі) пайдалану мүмкіндігі қосылды. MTE пайдалану sigaction() жүйесінде SA_EXPOSE_TAGBITS опциясын көрсету арқылы қосылады және әлдеқашан босатылған жад блоктарына, буфердің толып кетуіне, инициализациядан бұрын кірулерге қол жеткізуден туындаған осалдықтарды пайдалануды блоктау үшін көрсеткіштердің дұрыс пайдаланылуын тексеруге мүмкіндік береді. ағымдағы контекст.
    • "DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING" параметрі қосылды, ол dm-verity ішкі жүйесіне екінші кілттік жүйеге орналастырылған сертификаттардың хэш қолтаңбаларын тексеруге мүмкіндік береді. Іс жүзінде орнату ядроға енгізілген сертификаттарды ғана емес, сонымен қатар операция кезінде жүктелген сертификаттарды тексеруге мүмкіндік береді, бұл бүкіл ядроны жаңартпай сертификаттарды жаңартуға мүмкіндік береді.
    • Пайдаланушы режимі Linux жүйесінде қоршаған ортаны мұздатуға және ұйқы режимінен ояту үшін SIGUSR1 сигналын пайдалануға мүмкіндік беретін тоқтата тұру режиміне қолдау қосылды.
    • Виртуалды машиналарға жадты қосуға және ажыратуға мүмкіндік беретін virtio-mem механизмі үлкен блок режиміне (BBM) қолдауды қосты, бұл жадты ядро ​​жадының өлшемінен үлкенірек блоктарға тасымалдауға немесе алуға мүмкіндік береді. блок, ол QEMU-де VFIO-ны оңтайландыру үшін қажет.
    • TLS ядросын іске асыруға CHACHA20-POLY1305 шифрын қолдау қосылды.
  • Желілік ішкі жүйе
    • 802.1Q (VLAN) үшін виртуалды көпірлері (Виртуалды көпірленген желілер) бар желілердегі ақауларды анықтауға, тексеруге және оқшаулауға мүмкіндік беретін қосылым ақауларын басқару механизмі (CFM, Connectivity Fault Management) енгізілді. Мысалы, CFM қызметкерлері тек өз жабдықтарына қол жеткізе алатын бірнеше тәуелсіз ұйымдарды қамтитын желілердегі мәселелерді оқшаулау үшін пайдаланылуы мүмкін.
    • SCTP протоколының пакеттерін UDP пакеттерінде (RFC 6951) инкапсуляциялау үшін қосылған қолдау, ол SCTP-ге тікелей қолдау көрсетпейтін ескі мекенжай аудармашылары бар желілерде SCTP пайдалануға, сондай-ақ IP-ге тікелей қатынауды қамтамасыз етпейтін жүйелерде SCTP-ді жүзеге асыруға мүмкіндік береді. қабат.
    • WiMAX технологиясын енгізу кезеңге ауыстырылды және WiMAX-ты қажет ететін пайдаланушылар болмаса, болашақта жою жоспарлануда. WiMAX енді жалпыға ортақ желілерде қолданылмайды және ядрода WiMAX пайдалануға болатын жалғыз драйвер ескірген Intel 2400m драйвері болып табылады. WiMAX қолдауы NetworkManager желі конфигураторында 2015 жылы тоқтатылды. Қазіргі уақытта WiMax толығымен дерлік LTE, HSPA+ және Wi-Fi 802.11n сияқты технологиялармен ауыстырылды.
    • Нөлдік көшірме режимінде кіріс TCP трафигін өңдеу өнімділігін оңтайландыру бойынша жұмыс жүргізілді, яғни. жаңа буферлерге қосымша көшірусіз. Ондаған немесе бірнеше жүз килобайт деректерді қамтитын орташа өлшемді трафик үшін recvmsg() орнына нөлдік көшірме пайдалану айтарлықтай тиімдірек. Мысалы, енгізілген өзгерістер нөлдік көшірмені пайдалану кезінде 32 Кбайт хабарламалары бар RPC стиліндегі трафикті өңдеу тиімділігін 60-70%-ға арттыруға мүмкіндік берді.
    • Бірнеше PPP сілтемелерін қамтитын желі көпірлерін жасау үшін жаңа ioctl() қоңыраулары қосылды. Ұсынылған мүмкіндік кадрлардың бір арнадан екіншісіне, мысалы, PPPoE-ден PPPoL2TP сеансына өтуіне мүмкіндік береді.
    • MPTCP (MultiPath TCP) өзегіне интеграция, әртүрлі IP мекенжайларымен байланысты әртүрлі желілік интерфейстер арқылы бірнеше маршруттар бойынша пакеттерді бір уақытта жеткізумен TCP қосылымының жұмысын ұйымдастыруға арналған TCP протоколының кеңейтілуі. Жаңа шығарылым бар MPTCP қосылымына жаңа ағындарды қосқанда қосылуға болатын қолжетімді IP мекенжайларын жарнамалау үшін ADD_ADDR опциясына қолдау көрсетеді.
    • Қосылымды сұрау бюджеті асып кеткен кезде әрекеттерді конфигурациялау мүмкіндігі қосылды (бос емес сұрау). Бұрын қол жетімді SO_BUSY_POLL режимі бюджет таусылған кезде softirq режиміне ауысуды білдіреді. Сауалнаманы пайдалануды жалғастыру қажет қолданбалар үшін SO_PREFER_BUSY_POLL жаңа опциясы ұсынылады.
    • IPv6 SRv6 End.DT4 және End.DT6 режимдерін қолдауды жүзеге асырады, олар көп пайдаланушы IPv4 L3 VPN және VRF (Виртуалды бағыттау және қайта жіберу) құрылғыларын жасау үшін пайдаланылады.
    • Netfilter жиынтық өрнектердің орындалуын біріктірді, бұл жиын тізімдерінің әрбір элементі үшін бірнеше өрнектерді көрсетуге мүмкіндік берді.
    • API интерфейстері SAR қуат шектеулерін, сондай-ақ AE ​​PWE және HE MCS параметрлерін конфигурациялау үшін 802.11 сымсыз стекке қосылды. Intel iwlwifi драйвері 6 ГГц (Ультра жоғары диапазон) диапазонына қолдауды қосты. Qualcomm Ath11k драйвері FILS (IEEE 802.11ai ретінде стандартталған Fast Initial Link Setup) технологиясына қолдауды қосты, ол бір кіру нүктесінен екіншісіне көшу кезінде роумингтің кешігулерінен құтылуға мүмкіндік береді.
  • Жабдық
    • Amdgpu драйвері AMD «Green Sardine» APU (Ryzen 5000) және «Dimgrey Cavefish» GPU (Navi 2) қолдауын қамтамасыз етеді, сонымен қатар Zen 2 ядросы және RDNA 2 GPU (Navi 2) бар AMD Van Gogh APU үшін бастапқы қолдауды қамтамасыз етеді. Жаңа Renoir APU идентификаторларына қолдау қосылды (Zen 2 CPU және Vega GPU негізінде).
    • Intel видеокарталарына арналған i915 драйвері жетіспейтін пикселдердің түсін анықтау үшін көрші пикселдердің күйін ескере отырып масштабты үлкейтуге арналған сүзгіні жүзеге асыратын IS (Integer scaling) технологиясын қолдайды (Nearest-neighbour интерполяциясы). Дискретті Intel DG1 карталарын қолдау кеңейтілді. Ice Lake / Gen11 чиптерінен бері бар «Big Joiner» технологиясын қолдау жүзеге асырылды және екі ағынды өңдеу үшін бір транскодерді пайдалануға мүмкіндік береді, мысалы, бір DisplayPort арқылы 8K экранға шығару үшін. Бейне жадындағы екі буфер арасында асинхронды ауысу режимі қосылды (асинхронды айналдыру).
    • Nouveau драйвері Ampere микроархитектурасына (GA100, GeForce RTX 30xx) негізделген NVIDIA GPU үшін бастапқы қолдауды қосты, осы уақытқа дейін бейне режимдерін басқару құралдарымен шектелген.
    • СКД панельдерінде қолданылатын 3WIRE протоколына қолдау қосылды. Novatek nt36672a, TDO tl070wsh30, Innolux N125HCE-GN1 және ABT Y030XX067A 3.0 панельдеріне қолдау қосылды. OnePlus 6 және 6T смартфондарының панелін қолдауды бөлек атап өтуге болады, бұл құрылғыларға модификацияланбаған ядроны жүктеуді ұйымдастыруға мүмкіндік берді.
    • Intel компаниясының бірінші дискретті USB4 хост контроллеріне қолдау қосылды, Maple Ridge.
    • Allwinner H6 I2S, ADAU1372 аналогтық құрылғылар, Intel Alderlake-S, GMediatek MT8192, NXP i.MX HDMI және XCVR, Realtek RT715 және Qualcomm SM8250 аудио кодектеріне қолдау қосылды.
    • Қол тақталарына, құрылғылар мен платформаларға қолдау қосылды: Galaxy Numia 10.1 xl, nanopi zeropi, triendar zeropi, trience mt950 / mt1, mstar Infinity4908m, nuvoton npcm8192, marvell armcm6779, ​Mikrotik Marvell Prestera 8167DX2 негізіндегі, Nuvoton NPCM730 BMC, Kontron i.MX382M Mini, Espressobin Ultra, "Trogdor" Chromebook, Kobol Helios98, Engicam PX3236.Core серверлері.
    • NVIDIA Tegra 3 негізіндегі Ouya ойын консоліне кіріктірілген қолдау.

Сонымен қатар, Латын Америкасының еркін бағдарламалық қамтамасыз ету қоры толығымен тегін 5.11 ядросының нұсқасын қалыптастырды - Linux-libre 5.11-gnu, микробағдарлама элементтерінен және еркін емес құрамдастарды немесе код бөлімдерін қамтитын драйверлерден тазартылған, қолдану аясы шектеулі. өндіруші бойынша. Жаңа шығарылым qat_4xxx (crypto), lt9611uxcm (dsi/hdmi көпірі), ccs/smia++ (датчик), ath11k_pci, nxp аудио қабылдағыш және mhi pci контроллері үшін драйверлерді тазартады. Amdgpu, btqca, btrtl, btusb, i915 csr драйверлері мен ішкі жүйелеріндегі жаңартылған blob тазалау коды. m3 rproc, idt82p33 ptp сағаты және qualcomm arm64 ішіндегі жаңа блоктар өшірілді.

Ақпарат көзі: opennet.ru

пікір қалдыру