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

Эки айлык иштеп чыгуудан кийин Линус Торвалдс Linux 6.0 ядросунун релизинин бет ачарын өткөрдү. Версия номеринин олуттуу өзгөрүшү эстетикалык себептерден улам болуп саналат жана сериядагы көп сандагы маселелердин топтолушу ыңгайсыздыгын жеңилдетүү үчүн расмий кадам болуп саналат (Линус филиалдын номерин өзгөртүүнүн себеби анын манжалары түгөнүп баратканы үчүн тамашалады. жана версия номерлерин эсептөө үчүн манжалар). Эң көрүнүктүү өзгөрүүлөрдүн арасында: XFSде асинхрондук буфердик жазууну колдоо, ublk блок драйвери, тапшырмаларды пландаштыргычты оптималдаштыруу, ядронун туура иштешин текшерүү механизми, ARIA блок шифрин колдоо.

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

  • Диск подсистемасы, киргизүү/чыгаруу жана файл системалары
    • XFS файл системасы io_uring механизмин колдонуу менен асинхрондук буфердик жазууларды колдоону кошту. Fio куралдарын колдонуу менен жүргүзүлгөн аткаруу тесттери (1 жип, 4кБ блоктун көлөмү, 600 секунд, ырааттуу жазуу) секундасына киргизүү/чыгаруу операцияларынын (IOPS) 77кден 209кга чейин, маалыматтарды берүү ылдамдыгы 314МБ/секден 854МБ/сек чейин көбөйгөнүн көрсөтөт. жана 9600ns 120ns чейин (80 эсе) кечигүү бир тамчы.
    • Btrfs файл системасы кошумча метаберилиштерди колдоону, маалыматтарды чоңураак блоктордо (64К ашык) жөнөтүүнү жана кысылган түрдө экстенттерди берүүнү жүзөгө ашырган "жөнөтүү" буйругу үчүн протоколдун экинчи версиясын ишке ашырат. Түз окуу операцияларынын көрсөткүчтөрү 3 секторго чейин бир убакта окуунун эсебинен (256 эсеге чейин) көбөйдү. Бөгөттөө талашы кыскарды жана кийинкиге калтырылган элементтер үчүн сакталган метадайындарды кыскартуу менен метадайындарды текшерүү ылдамдады.
    • Жаңы ioctl операциялары EXT4_IOC_GETFSUUID жана EXT4_IC_SETFSUUID суперблокто сакталган UUIDди алуу же орнотуу үчүн ext4 файл тутумуна кошулду.
    • F2FS файл тутуму эстутумду аз керектөө режимин сунуштайт, ал аз көлөмдөгү RAM менен түзмөктөрдө иштөөнү оптималдаштырат жана өндүрүмдүүлүктүн төмөндөшүнүн эсебинен эстутум керектөөнү кыскартууга мүмкүндүк берет.
    • NVMe дисктин аныктыгын текшерүү үчүн колдоо кошулду.
    • NFSv4 сервери системадагы ар бир гигабайт оперативдик эс үчүн 1024 жарактуу кардарлар катары белгиленген активдүү кардарлардын санына чектөө киргизет.
    • CIFS кардар ишке ашыруу көп каналдуу берүү режиминде аткарууну жакшырды.
    • Белгилүү окуяларга көңүл бурбоо үчүн fanotify FS ичиндеги окуяларга көз салуу подсистемасына FAN_MARK_IGNORE жаңы желекчеси кошулду.
    • Overlayfs FSде, колдонуучунун ID картасы менен FS үстүнө орнотулганда, POSIX шайкеш келүүнү башкаруу тизмелери үчүн туура колдоо көрсөтүлөт.
    • Колдонуучу мейкиндигинде фон процессинин тарабына конкреттүү логиканы жылдыруучу жана io_uring подсистемасын колдонгон ublk блок драйвери кошулду.
  • Эстутум жана система кызматтары
    • DAMON (Data Access MONitor) подсистемасына жаңы функциялар кошулду, алар колдонуучу мейкиндигинен оперативдүү эстутумга кирүү процессин көзөмөлдөөгө гана эмес, эстутумду башкарууга да таасир этүүгө мүмкүндүк берет. Атап айтканда, айрым эстутумдун барактарынын артыкчылыктуулугун жогорулатуу үчүн LRU (Эң аз колдонулган) тизмелерин кайра топтоону камсыз кылган жаңы “LRU_SORT” модулу сунушталды.
    • Жаңы эстутумдун аймактарын түзүү мүмкүнчүлүгү CPU жана эс тутум түзүлүштөрүнүн ортосунда жогорку ылдамдыктагы өз ара аракеттенүүнү уюштуруу үчүн колдонулган CXL (Compute Express Link) автобусунун мүмкүнчүлүктөрүн колдонуу менен ишке ашырылган. CXL тышкы эс тутумдары тарабынан берилген жаңы эстутумдун аймактарын туташтырууга жана аларды системанын кокус жетүү эс тутумун (DDR) же туруктуу эс тутумун (PMEM) кеңейтүү үчүн кошумча физикалык дарек мейкиндигинин ресурстары катары колдонууга мүмкүндүк берет.
    • Кээ бир чипсеттерде аппараттык камсыздоо маселесин чечүү үчүн 20 жыл мурун кошулган коддон улам келип чыккан AMD Zen процессорлорунун иштешине байланыштуу көйгөйлөр чечилди (процессорду жайлатуу үчүн кошумча WAIT нускамасы кошулган, андыктан чипсет иштебей турган абалга келүүгө үлгүргөн). Өзгөрүүлөр бош жана бош эмес абалдардын ортосунда тез-тез алмашып турган жумуш жүктөмдөрүндө майнаптуулуктун төмөндөшүнө алып келди. Мисалы, чечүүчү жолду өчүргөндөн кийин, tbench тестинин орточо упайлары 32191 МБ/секден 33805 МБ/сек чейин көбөйдү.
    • Эвристикасы бар код тапшырмаларды пландаштыргычтан алынып салынды, бул процесстердин энергияны керектөөдөгү болжолдонгон пайданы эске алуу менен эң аз жүктөлгөн CPUларга көчүрүүсүн камсыз кылат. Иштеп чыгуучулар эвристика жетишерлик пайдалуу эмес жана мындай миграция кубаттуулуктун азыраак керектелишине алып келиши мүмкүн болгон учурда (мисалы, максаттуу CPU төмөнкү кубаттуулук деңгээлинде болгондо) аны алып салуу жана процесстерди кошумча баалоосуз көчүрүү оңой деген тыянакка келишкен. Эвристиканы өчүрүү интенсивдүү тапшырмаларды аткарууда электр энергиясын керектөөнүн кыскарышына алып келди, мисалы, видеону чечмелөө тестинде, энергия керектөө 5.6% га кыскарды.
    • Чоң системалардагы CPU өзөктөрү боюнча тапшырмаларды бөлүштүрүү оптималдаштырылган, бул жумуш жүктөмүнүн айрым түрлөрү үчүн аткарууну жакшыртты.
    • io_uring асинхрондук киргизүү/чыгаруу интерфейси жаңы желекти сунуштайт, IORING_RECV_MULTISHOT, ал бир эле тармак розеткасынан бир эле учурда бир нече окуу операцияларын аткаруу үчүн recv() тутумунун чалуусу менен көп ок режимин колдонууга мүмкүндүк берет. io_uring ошондой эле аралык буферлөө (нөл-көчүрмө) жок тармак которууну колдойт.
    • Uprobe тиркелген 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 архитектурасы үчүн "Zicbom" кеңейтүүсү кэш-когеренттүү эмес DMA менен түзмөктөрдү башкаруу үчүн ишке ашырылган.
  • Виртуалдаштыруу жана коопсуздук
    • А 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 кукилерин түзүү жана текшерүү үчүн иштеткичтер кошулду. Ошондой эле кошулуулардын абалына жетүү жана өзгөртүү үчүн функциялардын жыйындысы (kfunc) кошулган.
    • Зымсыз стек WiFi 7 спецификациясында аныкталган MLO (Multi-Link Operation) механизмин колдоону кошту жана түзмөктөргө бир эле учурда ар кандай жыштык тилкелерин жана каналдарын колдонуу менен маалыматтарды кабыл алууга жана жөнөтүүгө, мисалы, бир эле учурда бир нече байланыш каналдарын орнотууга мүмкүндүк берет. кардар түзмөгүнө кирүү чекити.
    • Ядрого орнотулган TLS протоколунун иштеши жакшыртылды.
    • Колдонуучу мейкиндигинин компоненттери башталганга чейин, жүктөө процессинин башында хосттун аталышын коюуга мүмкүндүк берүү үчүн ядронун буйрук сабы опциясы кошулду "hostname=".
  • жабдуулар
    • i915 (Intel) драйвери Intel Arc (DG2/Alchemist) A750 жана A770 дискреттик видео карталарын колдоону камсыз кылат. Intel Ponte Vecchio (Xe-HPC) жана Meteor Lake GPU'ларын колдоонун алгачкы ишке ашырылышы сунушталды. 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 драйверин тазалоону токтотту.

Source: opennet.ru

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