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

Хоёр сарын турш хөгжүүлсний дараа Линус Торвалдс Linux цөмийн 6.1 хувилбарыг танилцууллаа. Хамгийн онцлох өөрчлөлтүүдийн дунд: Rust хэл дээрх драйверууд болон модулиудыг хөгжүүлэхэд дэмжлэг үзүүлэх, ашигласан санах ойн хуудсыг тодорхойлох механизмыг шинэчлэх, BPF програмын тусгай санах ойн менежер, KMSAN, KCFI (Kernelk Control) санах ойн асуудлыг оношлох систем. -Flow Integrity) хамгаалах механизм, Maple бүтцийн модыг нэвтрүүлэх.

Шинэ хувилбар нь 15115 хөгжүүлэгчийн 2139 засварыг багтаасан бөгөөд засварын хэмжээ нь 51 MB бөгөөд энэ нь цөмийн 2 ба 6.0-ийн засваруудын хэмжээнээс ойролцоогоор 5.19 дахин бага юм. Өөрчлөлт нь 13165 файлд нөлөөлж, 716247 мөр код нэмж, 304560 мөрийг устгасан. 45-д оруулсан бүх өөрчлөлтийн 6.1 орчим хувь нь төхөөрөмжийн драйверуудтай холбоотой, ойролцоогоор 14 хувь нь техник хангамжийн архитектурт хамаарах кодыг шинэчлэхтэй холбоотой, 14 хувь нь сүлжээний стектэй, 3 хувь нь файлын системтэй, 3 хувь нь холбоотой байна. дотоод цөмийн дэд системүүдтэй холбоотой.

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

  • Санах ой болон системийн үйлчилгээ
    • Драйвер болон цөмийн модулиудыг хөгжүүлэхэд Rust хэлийг хоёр дахь хэл болгон ашиглах чадварыг нэмсэн. Rust-ийг дэмжих гол шалтгаан нь санах ойтой ажиллахад алдаа гаргах магадлалыг бууруулж, аюулгүй, өндөр чанартай төхөөрөмжийн драйверуудыг бичихэд хялбар болгох явдал юм. Rust-ийн дэмжлэг нь анхдагчаар идэвхгүй болсон бөгөөд Rust-г шаардлагатай цөм бүтээх хамааралд оруулахгүй. Цөм нь өнөөг хүртэл засваруудын хамгийн бага, хасагдсан хувилбарыг нэвтрүүлсэн бөгөөд энэ нь 40-өөс 13 мянган мөр код хүртэл цөөрсөн бөгөөд зөвхөн Rust хэл дээр бичигдсэн энгийн цөмийн модулийг бүтээхэд хангалттай шаардлагатай хамгийн бага хэмжээг өгдөг. Ирээдүйд Rust-for-Linux салбараас бусад өөрчлөлтүүдийг шилжүүлж, одоо байгаа функцийг аажмаар нэмэгдүүлэхээр төлөвлөж байна. Үүний зэрэгцээ NVMe хөтчүүд, 9p сүлжээний протокол болон Apple M1 GPU-ийн Rust хэл дээрх драйверуудыг хөгжүүлэхэд санал болгож буй дэд бүтцийг ашиглах төслүүдийг боловсруулж байна.
    • EFI бүхий AArch64, RISC-V болон LoongArch архитектурт суурилсан системүүдийн хувьд шахсан цөмийн зургийг шууд ачаалах боломжийг хэрэгжүүлсэн. EFI zboot-оос шууд дуудагдсан цөмийн дүрсийг ачаалах, ажиллуулах, буулгахад зориулсан зохицуулагчийг нэмсэн. EFI протоколын мэдээллийн сангаас протоколуудыг суулгах, устгахад зориулагдсан зохицуулагчийг мөн нэмсэн. Өмнө нь задлах ажлыг тусдаа ачаалагчаар гүйцэтгэдэг байсан бол одоо үүнийг цөм дэх зохицуулагч өөрөө хийж болно - цөмийн дүрс нь EFI програм хэлбэрээр үүсдэг.
    • Энэхүү найрлага нь санах ойн удирдлагын олон түвшний загварыг хэрэгжүүлэх засваруудын нэг хэсгийг багтаасан бөгөөд энэ нь янз бүрийн гүйцэтгэлийн шинж чанартай санах ойн банкуудыг салгах боломжийг олгодог. Жишээлбэл, хамгийн их ашиглагддаг хуудсууд нь хамгийн хурдан санах ойд хадгалагддаг бол хамгийн ховор хэрэглэгддэг хуудаснууд нь харьцангуй удаан санах ойд хадгалагддаг. Цөм 6.1 нь удаан санах ойд их ашиглагддаг хуудсууд хаана байрлаж байгааг тодорхойлох механизмыг танилцуулж, ингэснээр тэдгээрийг хурдан санах ой руу шилжүүлэхийн зэрэгцээ санах ойн түвшин ба тэдгээрийн харьцангуй гүйцэтгэлийн ерөнхий ойлголтыг танилцуулж байна.
    • Үүнд MGLRU (Олон үеийн LRU) механизм багтсан бөгөөд энэ нь хоёр дараалалд суурилсан хуучин LRU (хамгийн сүүлд ашигласан) хэрэгжилтийг орлуулж, аль санах ойн хуудсуудыг бодитоор ашиглаж, аль нь түлхэж болохыг илүү сайн тодорхойлдог олон үе шаттай бүтэцтэй. swap хуваалт.
    • Oracle-ийн инженерүүдийн санал болгосон "агч мод"-ын өгөгдлийн бүтцэд дэмжлэг нэмсэн бөгөөд энэ нь "улаан хар мод" бүтцийг илүү үр дүнтэй орлуулах болно. Maple tree нь орчин үеийн процессоруудын кэшийг үр ашигтай ашиглахад зориулагдсан, хүрээний индексжүүлэлтийг дэмждэг B модны хувилбар юм. Зарим санах ойн удирдлагын дэд системүүд аль хэдийн агч мод руу шилжсэн бөгөөд энэ нь тэдний гүйцэтгэлд эерэг нөлөө үзүүлсэн. Ирээдүйд агч модыг хүрээний түгжээг хэрэгжүүлэхэд ашиглаж болно.
    • BPF дэд системд crash_kexec() дуудлагаар дамжуулан яаралтай унтраалтыг эхлүүлэхээр тусгайлан зохион бүтээсэн "сүйтгэх" BPF програмуудыг үүсгэх чадварыг нэмсэн. Ийм BPF программууд нь тодорхой цаг хугацаанд эвдрэлийн хогийн цэг үүсгэхийг эхлүүлэхийн тулд дибаг хийх зорилгоор шаардлагатай байж болно. BPF програмыг ачаалах үед устгах үйлдлүүдэд хандахын тулд та BPF_F_DESTRUCTIVE тугийг зааж, sysctl kernel.destructive_bpf_enabled-г идэвхжүүлж, CAP_SYS_BOOT эрхтэй байх ёстой.
    • BPF программуудын хувьд бүлгүүдийн элементүүдийг тоолохоос гадна тодорхой урсгал эсвэл даалгаврын нөөцийг (файл, vma, процесс гэх мэт) тоолох боломжтой. Хэрэглэгчийн цагираган буфер үүсгэхийн тулд газрын зургийн шинэ төрлийг хэрэгжүүлсэн.
    • BPF программд санах ой хуваарилах тусгай дуудлагыг нэмсэн (санах ойн хуваарилагч), энэ нь стандарт kmalloc()-аас илүү BPF-ийн хүрээнд илүү аюулгүй санах ойн хуваарилалтыг хангадаг.
    • Өөрчлөлтүүдийн эхний хэсгийг нэгтгэж, BPF програм хэлбэрээр хэрэгжүүлсэн HID (Хүний интерфейсийн төхөөрөмж) интерфэйс бүхий оролтын төхөөрөмжүүдийн драйверуудыг бий болгох боломжийг олгосон.
    • Цөм нь 5.1 хувилбар дээр хуучирсан бөгөөд 5.18 болон 5.19 хувилбараас хойш томоохон архитектуруудад идэвхгүй болсон a.out-ын гүйцэтгэх файлын форматыг дэмжих кодыг бүрэн устгасан. a.out форматыг Линукс системүүд дээр удаан хугацаагаар хэрэглэхээ больсон ба a.out файл үүсгэхийг Linux-ийн анхдагч тохиргоонуудын орчин үеийн хэрэгслүүд дэмждэггүй. a.out файлын дуудагчийг хэрэглэгчийн орон зайд бүхэлд нь хэрэгжүүлэх боломжтой.
    • Loongson 3 5000 процессоруудад ашиглагддаг LoongArch зааварчилгааны багц архитектурт суурилсан, MIPS болон RISC-V-тэй төстэй шинэ RISC ISA-г хэрэгжүүлж буй системүүдийн хувьд гүйцэтгэлийн хэмжилтийн үйл явдлууд (perf үйл явдлууд), kexec, kdump болон BPF JIT эмхэтгэлийг дэмждэг. .
    • io_uring асинхрон оролт/гаралтын интерфэйс нь IORING_SETUP_DEFER_TASKRUN хэмээх шинэ горимыг санал болгодог бөгөөд энэ нь цагираган буфертэй холбоотой ажлыг програмын хүсэлт гаргах хүртэл түр хойшлуулах боломжийг олгодог бөгөөд үүнийг багц ажил болон урьдчилан тохируулсны улмаас хоцрогдол үүсэхээс зайлсхийхэд ашиглаж болно. буруу цаг.
    • Хэрэглэгчийн орон зай дахь процессууд нь ердийн санах ойн хуудсуудыг том санах ойн хуудас болгон хөрвүүлэх боломжийг олгодог (Transparent Huge-Pages).
    • FS дахь хандалтын эрхийг ашиглан userfaultfd() системийн дуудлагын функцэд хандах боломжийг олгодог /dev/userfaultfd төхөөрөмжийн хэрэгжилт нэмэгдсэн. Userfaultfd функц нь хэрэглэгчийн орон зайд хуваарилагдаагүй санах ойн хуудсуудад (хуудасны алдаа) хандах хандагчийг үүсгэх боломжийг танд олгоно.
    • GNU Make хэрэгслийн хувилбарт тавигдах шаардлагыг нэмэгдүүлсэн - одоо цөмийг бүтээхэд дор хаяж 3.82 хувилбар шаардлагатай.
  • Дискний дэд систем, I/O болон файлын системүүд
    • Btrfs файлын системд гүйцэтгэлийн чухал оновчлолууд хийгдсэн; бусад зүйлсээс гадна FIEMAP ioctl дуудлагын гүйцэтгэлийг тушаалаар нэмэгдүүлсэн. io_uring ашигладаг програмуудад зориулсан асинхрон буферт бичих дэмжлэгийг нэмсэн. "Илгээх" үйлдэлд fs-verity-ээр хамгаалагдсан файлуудын дэмжлэгийг нэмсэн.
    • Ext4 файлын систем нь сэтгүүлийн засвар үйлчилгээ, зөвхөн унших горимтой холбоотой гүйцэтгэлийн оновчтой байдлыг нэмсэн.
    • Зөвхөн уншигдах горимд хандах боломжтой хуваалтууд дээр ашиглах зориулалттай EROFS (Зөвхөн унших боломжтой файлын систем) файлын систем нь өөр өөр файлын системд давхардсан өгөгдлийг хуваалцах боломжийг хэрэгжүүлдэг.
    • statx() системийн дуудлагыг файлд шууд оролт/гаралт хийх боломжтой эсэхийг харуулахын тулд нэмсэн.
    • O_TMPFILE туг бүхий түр файл үүсгэх дэмжлэгийг FUSE (Хэрэглэгчийн орон зай дахь файлын систем) дэд системд нэмсэн.
  • Виртуалчлал ба аюулгүй байдал
    • CFI (Удирдлагын урсгалын бүрэн бүтэн байдал) хамгаалалтын механизмын хэрэгжилтийг сольж, функцийн шууд бус дуудлага бүрийн өмнө шалгалтыг нэмж, хэвийн гүйцэтгэлийн дарааллыг (хяналтын урсгал) зөрчихөд хүргэж болзошгүй тодорхойгүй зан үйлийн зарим хэлбэрийг илрүүлэх боломжтой болсон. санах ойд хадгалагдсан функцууд руу заагчийг өөрчилдөг ашиглалтын үр дүн. LLVM төслөөс CFI-ийн стандарт хэрэгжилтийг Clang ашиглахад үндэслэсэн сонголтоор сольсон боловч доод түвшний дэд системүүд болон үйлдлийн системийн цөмүүдийг хамгаалахад тусгайлан тохируулсан. LLVM-д Clang 16 хувилбарт шинэ хэрэгжилтийг санал болгох бөгөөд "-fsanitize=kcfi" сонголтоор идэвхжүүлнэ. Шинэ хэрэгжүүлэлтийн гол ялгаа нь энэ нь холбоосын цагийн оновчлол (LTO)-тай холбоогүй бөгөөд функцийн заагчийг үсрэх хүснэгтийн холбоосоор сольдоггүй явдал юм.
    • LSM модулиудын хувьд (Linux Security Module) нэрийн орон зай үүсгэх үйлдлүүдийг таслан зогсоох зохицуулагчийг үүсгэх боломжтой.
    • BPF программ дахь PKCS#7 тоон гарын үсгийг шалгах хэрэгслүүдээр хангагдсан.
    • Цөм 5.6 дээр санамсаргүйгээр устгагдсан блоклохгүй горимд (O_NONBLOCK) нээх боломжийг /dev/random руу буцаасан.
    • X86 архитектуртай системүүд дээр санах ойн хуудсуудыг нэгэн зэрэг гүйцэтгэх, бичих боломжийг олгодог цөмийн дэд системүүдээр буулгах тохиолдолд анхааруулга нэмсэн. Цаашид ийм санах ойн зураглалыг бүрмөсөн хориглох боломжийг судалж байна.
    • Цөм дэх санах ойн эхлээгүй хэрэглээ, мөн хэрэглэгчийн зай болон төхөөрөмжүүдийн хооронд санах ойн алдагдлыг илрүүлэхийн тулд KMSAN (Цөмийн санах ой ариутгагч) дибаг хийх механизмыг нэмсэн.
    • Санамсаргүй дуудлагад ашигладаг крипто-аюулгүй CRNG псевдо санамсаргүй тоо үүсгэгчийг сайжруулсан. Өөрчлөлтүүдийг VPN WireGuard-ын зохиогч Жейсон А.Доненфельд бэлтгэсэн бөгөөд псевдо санамсаргүй бүхэл тоо олборлолтын аюулгүй байдлыг сайжруулахад чиглэгдэж байна.
  • Сүлжээний дэд систем
    • TCP стек нь нэрийн талбар бүрт сокет хэш хүснэгтүүдийг тусад нь ашиглах боломжийг (анхдагчаар идэвхгүй болгосон) олгодог бөгөөд энэ нь олон тооны нэрийн зайтай системүүдийн гүйцэтгэлийг сайжруулдаг.
    • Хуучин DECnet протоколыг дэмжих кодыг устгасан. DECnet ашигладаг программуудыг эмхэтгэхийг зөвшөөрөхийн тулд хэрэглэгчийн орон зайн API бүдүүвчийг хэвээр үлдээсэн боловч эдгээр програмууд сүлжээнд холбогдох боломжгүй болно.
    • Netlink протоколыг баримтжуулсан болно.
  • Тоног төхөөрөмж
    • Amdgpu драйвер нь маш өндөр нягтралыг дэмждэг дэлгэцтэй мэдээлэл солилцох үед өгөгдлийг алдагдалгүй шахах зорилгоор DSC (Display Stream Compression) дамжуулалтыг дэмждэг болсон. AMD RDNA3 (RX 7000) болон CDNA (Instinct) платформуудад дэмжлэг үзүүлэх ажил үргэлжилж байна. DCN 3.2, SMU 13.x, NBIO 7.7, GC 11.x, PSP 13.x, SDMA 6.x болон GMC 11.x IP бүрэлдэхүүн хэсгүүдийн дэмжлэгийг нэмсэн. Amdkfd драйвер (Polaris гэх мэт салангид AMD GPU-д зориулагдсан) GFX 11.0.3-ийг дэмждэг.
    • i915 (Intel) драйвер нь Meteor Lake GPU-г дэмждэг. Meteor Lake болон шинэ GPU нь DP 2.0 (DisplayPort) интерфейсийг дэмждэг. Alder Lake S микроархитектур дээр суурилсан видео картуудын таниулбаруудыг нэмсэн.
    • Apple Silicon, Intel SkyLake болон Intel KabyLake процессоруудад хэрэгжсэн аудио дэд системүүдийн дэмжлэгийг нэмсэн. CS35L41 HDA аудио драйвер нь унтах горимыг дэмждэг. Apple Silicon, AMD Rembrant DSP, AMD Pink Sardine ACP 6.2, Everest ES8326, Intel Sky Lake болон Kaby Lake, Mediatek MT8186, NXP i.MX8ULP DSP, Qualcomm i.MX8280ULP DSP, Qualcomm 8250SM8450 зэрэг аудио чипүүдийн ASoC (ALSA System on Chip) дэмжлэгийг нэмсэн. SM4392 болон Texas Instruments SRCXNUMX
    • Samsung LTL101AL01, B120XAN01.0, R140NWF5 RH, Densitron DMT028VGHMCMI-1A TFT, AUO B133UAN02.1, IVO M133NW4J-R3, Innolux N120XAN1E, B116XAN01.6E LCD хавтангуудад дэмжлэг нэмсэн. 116WH M-N21, INX N116BCA- EA2 , INX N116BCN-EA1, Multi-Inno Technology MI0800FT-9.
    • Baikal-T1 SoC-д ашигладаг AHCI SATA хянагчдад зориулсан дэмжлэг нэмэгдсэн.
    • Bluetooth чипүүд MediaTek MT7921, Intel Magnetor (CNVi, нэгдсэн холболт), Realtek RTL8852C, RTW8852AE болон RTL8761BUV (Edimax BT-8500)-ийн дэмжлэгийг нэмсэн.
    • Qualcomm утасгүй модулиудын ath11k драйвер нь 160 МГц давтамжтай спектрийн сканнердах дэмжлэгийг нэмж, олон урсгалтай NAPI-г нэвтрүүлж, Qualcomm WCN6750 Wi-Fi чипүүдийн дэмжлэгийг сайжруулсан.
    • PinePhone гар, InterTouch мэдрэгчтэй самбар (ThinkPad P1 G3), X-Box Adaptive Controller, PhoenixRC Flight Controller, VRC-2 Car Controller, DualSense Edge Controller, IBM Operation Panel, XBOX One Elite удирдлага, XP-PEN Deco Pro S таблетуудад зориулсан драйверуудыг нэмсэн. болон Intuos Pro Small (PTH-460).
    • Aspeed HACE (Hash and Crypto Engine) криптограф хурдасгуурт зориулсан драйвер нэмэгдсэн.
    • Thunderbolt/USB4 Intel Meteor Lake хянагчдад зориулсан дэмжлэг нэмэгдсэн.
    • Sony Xperia 1 IV, Samsung Galaxy E5, E7 болон Grand Max, Pine64 Pinephone Pro ухаалаг гар утасны дэмжлэгийг нэмсэн.
    • ARM SoC болон хавтангуудад зориулсан нэмэлт дэмжлэг: AMD DaytonaX, Mediatek MT8186, Rockchips RK3399 болон RK3566, TI AM62A, NXP i.MX8DXL, Renesas R-Car H3Ne-1.7G, Qualcomm IPQ8064-v2.0, IPQ Kontr 8062, IPQ. BL i.MX8065MM OSM-S, MT8 (Acer Tomato), Radxa ROCK 8195C+, NanoPi R4S Enterprise Edition, JetHome JetHub D4p. SoC Samsung, Mediatek, Renesas, Tegra, Qualcomm, Broadcom болон NXP-д зориулсан драйверуудыг шинэчилсэн.

Үүний зэрэгцээ, Латин Америкийн Чөлөөт Програм хангамжийн Сан нь бүрэн үнэгүй цөмийн 6.1 хувилбарыг - Linux-libre 6.1-gnu хувилбарыг бүрдүүлж, програм хангамжийн элементүүд болон чөлөөт бус бүрэлдэхүүн хэсгүүд эсвэл кодын хэсгүүдийг агуулсан драйверуудаас цэвэрлүүлсэн. үйлдвэрлэгчээр хязгаарлагддаг. Шинэ хувилбар нь AArch8852 архитектурт суурилсан процессортой янз бүрийн Qualcomm болон MediaTek SoC-уудад зориулсан шинэ rtw64b драйвер болон DTS файлуудыг цэвэрлэдэг. Amdgpu, i915, brcmfmac, r8188eu, rtw8852c, Intel ACPI драйверууд болон дэд системүүдэд шинэчлэгдсэн blob цэвэрлэх код. Хуучин tm6000 ТВ карт, cpia2 v4l, sp8870, av7110 драйверуудын цэвэрлэгээг зассан.

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

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