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

Екі айлық дамудан кейін Линус Торвальдс Linux 6.0 ядросының шығарылымын ұсынды. Нұсқа нөмірінің айтарлықтай өзгеруі эстетикалық себептерге байланысты және сериядағы көптеген мәселелердің жиналуынан туындаған ыңғайсыздықты жеңілдетуге арналған ресми қадам болып табылады (Линус филиал нөмірін өзгерту себебі оның саусақтары таусылған болуы мүмкін деп әзілдеді. және нұсқа нөмірлерін санау үшін саусақтар). Ең көрнекті өзгерістердің қатарында: XFS жүйесінде асинхронды буферлі жазуды қолдау, ublk блок драйвері, тапсырмаларды жоспарлаушыны оңтайландыру, ядроның дұрыс жұмысын тексеру механизмі, ARIA блок шифрін қолдау.

6.0 ядросындағы негізгі инновациялар:

  • Дискінің ішкі жүйесі, енгізу/шығару және файлдық жүйелер
    • XFS файлдық жүйесі io_uring механизмі арқылы асинхронды буферленген жазуларға қолдауды қосты. Fio құралдарын (1 жіп, 4кБ блок өлшемі, 600 секунд, дәйекті жазу) арқылы жүргізілген өнімділік сынақтары секундына енгізу/шығару операцияларының (IOPS) 77к-ден 209k-ға дейін, деректерді беру жылдамдығының 314МБ/с-тан 854МБ/с-қа дейін артқанын көрсетеді, және кідірістің 9600 нс-тен 120 нс дейін төмендеуі (80 есе).
    • Btrfs файлдық жүйесі «жіберу» пәрменіне арналған хаттаманың екінші нұсқасын жүзеге асырады, ол қосымша метадеректерге қолдауды жүзеге асырады, деректерді үлкенірек блоктарда (64К астам) жіберу және қысылған пішінде экстенттерді жіберу. Тікелей оқу операцияларының өнімділігі 3 секторға дейін бір уақытта оқу есебінен айтарлықтай өсті (256 есеге дейін). Кейінге қалдырылған элементтер үшін сақталған метадеректерді азайту арқылы құлыптау даулары азайтылды және метадеректерді тексеру жылдамдады.
    • Жаңа ioctl операциялары EXT4_IOC_GETFSUUID және EXT4_IC_SETFSUUID суперблокта сақталған UUID кодын алу немесе орнату үшін ext4 файлдық жүйесіне қосылды.
    • F2FS файлдық жүйесі жадты аз тұтыну режимін ұсынады, ол шағын оперативті жады бар құрылғыларда жұмысын оңтайландырады және өнімділіктің төмендеуі есебінен жадты тұтынуды азайтуға мүмкіндік береді.
    • NVMe дискінің аутентификациясына қолдау қосылды.
    • NFSv4 сервері жүйедегі әрбір гигабайт жедел жады үшін 1024 жарамды клиент ретінде орнатылған белсенді клиенттер санына шектеуді жүзеге асырады.
    • CIFS клиентін енгізу көп арналы жіберу режимінде өнімділікті жақсартты.
    • Белгілі бір оқиғаларды елемеу үшін fanotify FS ішіндегі оқиғаларды бақылау ішкі жүйесіне жаңа FAN_MARK_IGNORE жалаушасы қосылды.
    • Overlayfs FS жүйесінде пайдаланушы идентификаторы салыстыру арқылы FS үстіне орнатылған кезде, POSIX-үйлесімді кіруді басқару тізімдері үшін дұрыс қолдау көрсетіледі.
    • Арнайы логиканы пайдаланушы кеңістігіндегі фондық процестің жағына жылжытатын және io_uring ішкі жүйесін пайдаланатын ublk блок драйвері қосылды.
  • Жад және жүйелік қызметтер
    • DAMON (Data Access MONitor) ішкі жүйесіне жаңа мүмкіндіктер қосылды, бұл пайдаланушы кеңістігінен жедел жадқа процеске қол жеткізуді бақылауға ғана емес, сонымен қатар жадты басқаруға әсер етуге мүмкіндік береді. Атап айтқанда, белгілі бір жад беттерінің басымдылығын арттыру үшін LRU (ең аз пайдаланылған) тізімдерін қайта топтастыруды қамтамасыз ететін жаңа «LRU_SORT» модулі ұсынылды.
    • Жадтың жаңа аймақтарын құру мүмкіндігі орталық процессор мен жад құрылғылары арасындағы жоғары жылдамдықты өзара әрекеттесуді ұйымдастыру үшін қолданылатын CXL (Compute Express Link) шинасының мүмкіндіктерін пайдалану арқылы жүзеге асырылды. CXL сыртқы жад құрылғыларымен қамтамасыз етілген жаңа жад аймақтарын қосуға және оларды жүйенің жедел жад (DDR) немесе тұрақты жадты (PMEM) кеңейту үшін қосымша физикалық мекенжай кеңістігі ресурстары ретінде пайдалануға мүмкіндік береді.
    • Кейбір чипсеттердегі аппараттық құрал мәселесін шешу үшін 20 жыл бұрын қосылған кодтан туындаған AMD Zen процессорларымен өнімділік мәселелері шешілді (процессорды баяулату үшін қосымша WAIT нұсқауы қосылды, осылайша чипсет жұмыссыз күйге өтуге уақыт алды). Өзгеріс бос және бос емес күйлер арасында жиі ауысатын жұмыс жүктемелері кезінде өнімділіктің төмендеуіне әкелді. Мысалы, уақытша шешімді өшіргеннен кейін tbench тестінің орташа ұпайлары 32191 МБ/с-тан 33805 МБ/с дейін өсті.
    • Эвристикасы бар код тапсырмаларды жоспарлаушыдан жойылды, бұл энергия тұтынудың болжамды өсуін ескере отырып, процестердің ең аз жүктелген процессорларға көшуін қамтамасыз етеді. Әзірлеушілер эвристика жеткілікті пайдалы емес және мұндай көшіру қуаттың төмендеуіне әкелуі мүмкін кезде (мысалы, мақсатты процессор төмен қуат деңгейінде болғанда) оны жою және процестерді қосымша бағалаусыз көшіру оңайырақ деген қорытындыға келді. Эвристиканы өшіру қарқынды тапсырмаларды орындау кезінде қуат тұтынуды азайтуға әкелді, мысалы, бейне декодтау сынағында қуат тұтыну 5.6%-ға төмендеді.
    • Үлкен жүйелердегі CPU ядролары бойынша тапсырмаларды бөлу оңтайландырылды, бұл жұмыс жүктемесінің белгілі бір түрлері үшін өнімділікті жақсартты.
    • io_uring асинхронды енгізу/шығару интерфейсі жаңа жалаушаны ұсынады, IORING_RECV_MULTISHOT, ол бір желі ұясынан бірден бірнеше оқу әрекеттерін орындау үшін recv() жүйелік шақыруымен көп түсіру режимін пайдалануға мүмкіндік береді. io_uring сонымен қатар аралық буферлеусіз (нөлдік көшірме) желіні тасымалдауды қолдайды.
    • Пробаға қосылған BPF бағдарламаларын ұйқы күйіне қою мүмкіндігі енгізілді. BPF сонымен қатар ядро ​​таңбалары кестелерімен жұмыс істеуге арналған жаңа иератор ksym қосады.
    • UEFI жүктеу айнымалыларына қол жеткізуге арналған sysfs жүйесіндегі ескірген «efivars» интерфейсі жойылды (efivarfs виртуалды FS енді EFI деректеріне қол жеткізу үшін әмбебап пайдаланылады).
    • Perf утилитасында құлыптау қақтығыстарын және процессордың ядро ​​құрамдастарын орындауға жұмсаған уақытын талдауға арналған жаңа есептер бар.
    • CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 параметрі жойылды, бұл ядроны "-O3" оңтайландыру режимінде құруға мүмкіндік берді. Оңтайландыру режимдері бар эксперименттерді құрастыру кезінде жалаушаларды беру арқылы жүзеге асыруға болатыны («KCFLAGS=-O3 жасау») және Kconfig параметріне параметрді қосу «-O3» режимінде қолданылатын циклды ашудың нәтиже беретінін көрсететін қайталанатын өнімділік профилін қажет ететіні атап өтілген. «-O2» оңтайландыру деңгейімен салыстырғанда артықшылық.
    • Жеке «жадты қысқартқыштардың» жұмысы туралы ақпаратты алу үшін отладтау интерфейсі қосылды (жадты тұтынуды азайту үшін жады жеткіліксіз болған кезде өңдеушілер және бума ядросының деректер құрылымдары шақырылады).
    • OpenRISC және LoongArch архитектуралары үшін PCI шинасына қолдау көрсетіледі.
    • RISC-V архитектурасы үшін кэш-когерентті емес DMA бар құрылғыларды басқару үшін «Zicbom» кеңейтімі енгізілді.
  • Виртуализация және қауіпсіздік
    • RV (Runtime Verification) тексеру механизмі қателерге кепілдік беретін жоғары сенімді жүйелерде дұрыс жұмыс істеуді тексеру үшін қосылды. Жүйенің күтілетін әрекетін анықтайтын машинаның алдын ала анықталған анықтамалық детерминирленген үлгісіне қарсы нақты орындалу барысын тексеретін бақылау нүктелеріне өңдеушілерді қосу арқылы тексеру орындалу уақытында орындалады. Орындалу уақытында үлгімен тексеру сенімділікті тексерудің классикалық әдістерін толықтыра отырып, маңызды жүйелерде орындаудың дұрыстығын растау үшін жеңілірек және орындауға оңай әдіс ретінде орналастырылған. RV артықшылықтарының қатарында модельдеу тілінде бүкіл жүйені бөлек енгізусіз қатаң тексеруді қамтамасыз ету, сондай-ақ күтпеген оқиғаларға икемді жауап беру мүмкіндігі бар.
    • Intel SGX2 (Software Guard eXtensions) технологиясына негізделген анклавтарды басқаруға арналған біріктірілген ядро ​​​​компоненттері, бұл қолданбаларға жүйенің қалған бөлігінің қол жеткізуі шектелген жадтың оқшауланған шифрланған аймақтарында кодты орындауға мүмкіндік береді. Intel SGX2 технологиясына Intel Ice Lake және Gemini Lake чиптерінде қолдау көрсетіледі және Intel SGX1-ден анклавтарды динамикалық жадты басқаруға арналған қосымша нұсқаулармен ерекшеленеді.
    • X86 архитектурасы үшін жүктеуші параметрлері арқылы жалған кездейсоқ сандар генераторы үшін тұқымды тасымалдау мүмкіндігі іске асырылды.
    • SafeSetID LSM модулі енді setgroups() қоңырауы арқылы жасалған өзгертулерді басқару мүмкіндігіне ие. SafeSetID жүйе қызметтеріне артықшылықтарды арттырмай (CAP_SETUID) және түбірлік артықшылықтарды алмай-ақ пайдаланушыларды қауіпсіз басқаруға мүмкіндік береді.
    • ARIA блок шифріне қолдау қосылды.
    • BPF негізіндегі қауіпсіздікті басқару модулі өңдеушілерді жеке процестерге және процесс топтарына (топтарға) қосу мүмкіндігін береді.
    • vCPU белсенділігін бақылауға негізделген қонақ жүйелерінің кідірістерін анықтау үшін бақылаушыны іске асыру механизмі қосылды.
  • Желілік ішкі жүйе
    • BPF ішкі жүйесіне SYN cookie файлдарын жасауға және тексеруге арналған өңдеушілер қосылды. Сондай-ақ қосылымдардың күйіне қол жеткізу және өзгерту үшін функциялар жиынтығы (kfunc) қосылады.
    • Сымсыз стек WiFi 7 спецификациясында анықталған және құрылғыларға әртүрлі жиілік диапазондары мен арналарды пайдаланып деректерді бір уақытта қабылдауға және жіберуге, мысалы, бір уақытта бірнеше байланыс арналарын орнатуға мүмкіндік беретін MLO (Multi-Link Operation) механизміне қолдауды қосты. клиенттік құрылғыға кіру нүктесі.
    • Ядроға енгізілген TLS протоколының өнімділігі жақсартылды.
    • Пайдаланушы кеңістігінің құрамдастары іске қосылмай тұрып, жүктеу процесінің басында хост атауын орнатуға мүмкіндік беру үшін ядро ​​​​пәрмен жолы опциясы қосылды "hostname=".
  • Жабдық
    • i915 (Intel) драйвері Intel Arc (DG2/Alchemist) A750 және A770 дискретті бейне карталарына қолдау көрсетеді. Intel Ponte Vecchio (Xe-HPC) және Метеор көлінің графикалық процессорларына қолдау көрсетудің бастапқы іске асырылуы ұсынылды. Intel Raptor Lake платформасын қолдау бойынша жұмыс жалғасуда.
    • Amdgpu драйвері AMD RDNA3 (RX 7000) және CDNA (Instinct) платформаларына қолдау көрсетуді жалғастыруда.
    • Nouveau драйвері NVIDIA nv50 GPU дисплей қозғалтқыштары үшін қолдау кодын қайта өңдеді.
    • LogiCVC экрандары үшін жаңа logicvc DRM драйвері қосылды.
    • v3d драйвері (Broadcom Video Core GPU үшін) Raspberry Pi 4 тақталарын қолдайды.
    • MSM драйверіне Qualcomm Adreno 619 GPU қолдауы қосылды.
    • Panfrost драйверіне ARM Mali Valhall GPU қолдауы қосылды.
    • Lenovo ThinkPad X8s ноутбуктерінде қолданылатын Qualcomm Snapdragon 3cx Gen13 процессорларына бастапқы қолдау қосылды.
    • AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake және Mediatek MT8186 платформаларына арналған дыбыс драйверлері қосылды.
    • Intel Habana Gaudi 2 машиналық оқыту үдеткіштеріне қолдау қосылды.
    • ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3 үшін қолдау қосылды.

Сонымен қатар, Латын Америкасының еркін бағдарламалық қамтамасыз ету қоры толығымен тегін ядроның 6.0 нұсқасын - Linux-libre 6.0-gnu нұсқасын құрады, микробағдарлама элементтерінен және еркін емес құрамдастарды немесе код бөлімдерін қамтитын драйверлерден тазартылған, оның көлемі өндірушімен шектеледі. Жаңа шығарылым CS35L41 HD-аудио драйверінде және STM32G0 микроконтроллерлеріне арналған UCSI драйверінде блоктарды пайдалануды өшіреді. Qualcomm және MediaTek чиптеріне арналған DTS файлдары тазартылды. MediaTek MT76 драйверіндегі блобтарды өшіру қайта өңделді. AMDGPU, Adreno, Tegra VIC, Netronome NFP және Habanalabs Gaudi2 драйверлері мен ішкі жүйелерінде жаңартылған blob тазалау коды. Ядродан жойылған VXGE драйверін тазалауды тоқтатты.

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

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