Linux 6.0 цөмийн хувилбар

Хоёр сарын турш хөгжүүлсний дараа Линус Торвалдс Linux 6.0 цөмийн хувилбарыг танилцуулав. Хувилбарын дугаарт ихээхэн өөрчлөлт орсон нь гоо зүйн шалтгаантай бөгөөд цувралд олон тооны асуудал хуримтлагдсанаас үүссэн таагүй байдлыг арилгах албан ёсны алхам юм (Линус салбар дугаарыг солих болсон шалтгаан нь хуруу нь дуусч байгаатай холбоотой гэж хошигножээ. Хувилбарын дугаарыг тоолохын тулд хөлийн хуруунууд) . Хамгийн онцлох өөрчлөлтүүдийн дунд: XFS дээр асинхрон буферт бичих дэмжлэг, ublk блок драйвер, даалгавар төлөвлөгчийг оновчтой болгох, цөмийн зөв ажиллагааг шалгах механизм, ARIA блок шифрийг дэмжих.

Цөм 6.0 дахь гол шинэчлэлүүд:

  • Дискний дэд систем, I/O болон файлын системүүд
    • XFS файлын систем нь io_uring механизмыг ашиглан асинхрон буферт бичих дэмжлэгийг нэмсэн. Fio хэрэглүүр (1 урсгал, 4кБ блокийн хэмжээ, 600 секунд, дараалсан бичих) ашиглан хийсэн гүйцэтгэлийн туршилтууд нь секундэд оролт/гаралтын ажиллагаа (IOPS) 77к-аас 209к хүртэл, өгөгдөл дамжуулах хурд 314МБ/с-ээс 854МБ/с болж өссөнийг харуулж байна. мөн хоцролт нь 9600ns-ээс 120ns (80 дахин) хүртэл буурсан.
    • Btrfs файлын систем нь "илгээх" командын протоколын хоёр дахь хувилбарыг хэрэгжүүлдэг бөгөөд энэ нь нэмэлт мета өгөгдлийн дэмжлэгийг хэрэгжүүлдэг бөгөөд өгөгдлийг том блокоор (64К-аас дээш) илгээж, шахсан хэлбэрээр дамжуулдаг. 3 хүртэлх салбарыг нэгэн зэрэг уншсанаар шууд унших үйлдлийн гүйцэтгэл мэдэгдэхүйц нэмэгдсэн (256 дахин). Түгжих маргааныг багасгаж, хойшлогдсон элементүүдийн нөөц метадатаг багасгаснаар мета өгөгдлийн шалгалтыг хурдасгасан.
    • EXT4_IOC_GETFSUUID болон EXT4_IC_SETFSUUID шинэ ioctl үйлдлүүд нь суперблокт хадгалагдсан UUID-г сэргээх эсвэл тохируулах зорилгоор ext4 файлын системд нэмэгдсэн.
    • F2FS файлын систем нь санах ой бага зарцуулдаг горимыг санал болгодог бөгөөд энэ нь бага хэмжээний RAM-тай төхөөрөмжүүдийн ажиллагааг оновчтой болгож, гүйцэтгэлийг бууруулах зардлаар санах ойн хэрэглээг багасгах боломжийг олгодог.
    • NVMe хөтөчийн баталгаажуулалтын дэмжлэгийг нэмсэн.
    • NFSv4 сервер нь идэвхтэй үйлчлүүлэгчдийн тоонд хязгаарлалт тавьдаг бөгөөд энэ нь систем дэх RAM-ийн гигабайт тутамд 1024 хүчинтэй үйлчлүүлэгч байхаар тогтоогддог.
    • CIFS үйлчлүүлэгчийн хэрэгжилт нь олон сувгийн дамжуулах горимд гүйцэтгэлийг сайжруулсан.
    • Тодорхой үйл явдлуудыг үл тоомсорлохын тулд fanotify FS дахь үйл явдлыг хянах дэд системд FAN_MARK_IGNORE шинэ тугийг нэмсэн.
    • Overlayfs FS-д хэрэглэгчийн ID-ийн зураглал бүхий FS-ийн дээд талд суурилуулсан үед POSIX-д нийцсэн хандалтын хяналтын жагсаалтад зөв дэмжлэг үзүүлдэг.
    • Хэрэглэгчийн орон зайд арын процессын тал руу тодорхой логикийг шилжүүлж, io_uring дэд системийг ашигладаг ublk блок драйверыг нэмсэн.
  • Санах ой болон системийн үйлчилгээ
    • DAMON (Data Access MONitor) дэд системд шинэ боломжууд нэмэгдсэн нь хэрэглэгчийн орон зайгаас RAM-д хандах хандалтыг хянах төдийгүй санах ойн удирдлагад нөлөөлөх боломжийг олгодог. Тодруулбал, зарим санах ойн хуудсуудын тэргүүлэх чиглэлийг нэмэгдүүлэхийн тулд LRU (Сүүлийн үед ашигласан) жагсаалтыг дахин бүлэглэх боломжийг олгодог "LRU_SORT" шинэ модулийг санал болгосон.
    • Санах ойн шинэ бүсүүдийг үүсгэх чадварыг CPU болон санах ойн төхөөрөмжүүдийн хооронд өндөр хурдны харилцан үйлчлэлийг зохион байгуулахад ашигладаг CXL (Compute Express Link) автобусны чадварыг ашиглан хэрэгжүүлсэн. CXL нь гадаад санах ойн төхөөрөмжүүдээр хангагдсан шинэ санах ойн бүсүүдийг холбож, системийн санамсаргүй хандалтын санах ой (DDR) эсвэл байнгын санах ойг (PMEM) өргөтгөхийн тулд нэмэлт физик хаягийн нөөц болгон ашиглах боломжийг танд олгоно.
    • Зарим чипсетийн техник хангамжийн асуудлыг шийдвэрлэхийн тулд 20 жилийн өмнө нэмсэн кодоос үүдэлтэй AMD Zen процессоруудын гүйцэтгэлийн асуудлыг шийдвэрлэсэн (процессорыг удаашруулахын тулд нэмэлт WAIT заавар нэмэгдсэн тул чипсет идэвхгүй байдалд орох цаг болсон). Энэхүү өөрчлөлт нь сул зогсолт болон завгүй байдлын хооронд байнга ээлжлэн солигддог ажлын ачааллын үед гүйцэтгэл буурахад хүргэсэн. Жишээлбэл, тойрон гарах арга замыг идэвхгүй болгосны дараа tbench тестийн дундаж оноо 32191 MB/s-ээс 33805 MB/s болж өссөн.
    • Хьюристик бүхий кодыг даалгавар төлөвлөгчөөс хассан бөгөөд энэ нь эрчим хүчний хэрэглээний таамагласан өсөлтийг харгалзан процессыг хамгийн бага ачаалалтай CPU-д шилжүүлэх боломжийг олгодог. Хөгжүүлэгчид эвристик нь хангалттай ашиггүй бөгөөд ийм шилжилт нь эрчим хүчний зарцуулалтыг бууруулж болзошгүй үед (жишээлбэл, зорилтот CPU нь бага чадлын түвшинд байх үед) үүнийг арилгах, нэмэлт үнэлгээгүйгээр процессуудыг шилжүүлэх нь илүү хялбар гэж дүгнэсэн. Эвристикийг идэвхгүй болгосноор эрчимтэй ажлуудыг гүйцэтгэх үед эрчим хүчний зарцуулалт буурахад хүргэсэн, жишээлбэл, видео тайлах туршилтын үед эрчим хүчний хэрэглээ 5.6% -иар буурсан байна.
    • Томоохон системүүдийн процессорын цөм дээрх даалгаврын хуваарилалтыг оновчтой болгосон нь тодорхой төрлийн ажлын ачааллын гүйцэтгэлийг сайжруулсан.
    • 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 архитектурын хувьд кэштэй уялдаа холбоогүй 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-ийн үйл ажиллагааг хянах үндсэн дээр зочны системийн саатлыг илрүүлэхийн тулд watchdog хэрэгжүүлэлт бүхий механизм нэмэгдсэн.
  • Сүлжээний дэд систем
    • BPF дэд системд SYN күүки үүсгэх, шалгах зохицуулагчийг нэмсэн. Мөн холболтын төлөвт хандах, өөрчлөх функцүүдийн багц (kfunc) нэмэгдсэн.
    • Утасгүй стек нь WiFi 7-ийн тодорхойлолтод тодорхойлогдсон MLO (Олон холболтын ажиллагаа) механизмын дэмжлэгийг нэмсэн бөгөөд төхөөрөмжүүдэд өөр өөр давтамжийн зурвас, сувгийг ашиглан өгөгдлийг нэгэн зэрэг хүлээн авах, илгээх, жишээлбэл, сүлжээний хооронд хэд хэдэн холбооны сувгийг нэгэн зэрэг үүсгэх боломжийг олгодог. үйлчлүүлэгч төхөөрөмж рүү нэвтрэх цэг.
    • Цөмд суулгасан 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 драйверт blob ашиглахыг идэвхгүй болгосон. Qualcomm болон MediaTek чипүүдэд зориулсан DTS файлуудыг цэвэрлэв. MediaTek MT76 драйвер дээрх blobуудыг идэвхгүй болгох ажлыг дахин боловсруулсан. AMDGPU, Adreno, Tegra VIC, Netronome NFP болон Habanalabs Gaudi2 драйверууд болон дэд системүүд дэх blob цэвэрлэх кодыг шинэчилсэн. Цөмөөс хасагдсан VXGE драйверийг цэвэрлэхээ больсон.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх