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

Хоёр сарын турш хөгжүүлсний дараа Линус Торвалдс Linux цөмийн 6.7 хувилбарыг танилцууллаа. Хамгийн алдартай өөрчлөлтүүдийн дунд: Bcachefs файлын системийг нэгтгэх, Itanium архитектурын дэмжлэгийг зогсоох, Nouvea-ийн GSP-R програм хангамжтай ажиллах чадвар, NVMe-TCP дахь TLS шифрлэлтийг дэмжих, BPF-д үл хамаарах зүйлийг ашиглах чадвар, io_uring дахь futex-ийн дэмжлэг, fq (Fair Queuing) хуваарийн гүйцэтгэлийг оновчтой болгох), TCP-AO өргөтгөлийн дэмжлэг (TCP Authentication Option) болон Landlock аюулгүй байдлын механизм дахь сүлжээний холболтыг хязгаарлах чадвар, хэрэглэгчийн нэрийн зай болон io_uring-д хандалтын хяналтыг нэмсэн. AppArmor-аар дамжуулан.

Шинэ хувилбарт 18405 хөгжүүлэгчийн 2066 засвар орсон, засварын хэмжээ 72 MB (өөрчлөлтөд 13467 файл нөлөөлж, 906147 мөр код нэмэгдсэн, 341048 мөр устгагдсан). Сүүлийн хувилбар нь 15291 хөгжүүлэгчээс 2058 засвар хийсэн бөгөөд засварын хэмжээ 39 MB байв. 45-д оруулсан бүх өөрчлөлтийн 6.7 орчим хувь нь төхөөрөмжийн драйверуудтай, ойролцоогоор 14 хувь нь техник хангамжийн архитектурт хамаарах кодыг шинэчлэхтэй холбоотой, 13 хувь нь сүлжээний стектэй, 5 хувь нь файлын системтэй, 3 хувь нь холбоотой байна. дотоод цөмийн дэд системүүдтэй холбоотой.

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

  • Дискний дэд систем, I/O болон файлын системүүд
    • Цөм нь Bcachefs файлын системийн кодыг ашигладаг бөгөөд энэ нь XFS-ийн гүйцэтгэл, найдвартай байдал, өргөтгөх чадварыг Btrfs болон ZFS-д байдаг дэвшилтэт функцүүдийн элементүүдтэй хослуулахыг оролддог. Жишээлбэл, Bcachefs нь хэд хэдэн төхөөрөмжийг хуваалтад оруулах, олон давхаргат дискний зохион байгуулалт (доод давхарга нь хурдан SSD дээр суурилсан байнга ашиглагддаг өгөгдөл, дээд давхарга нь хатуу дискнээс бага ашиглагддаг өгөгдөл), хуулбарлах (RAID) зэрэг функцуудыг дэмждэг. 1/10), кэш хийх, ил тод өгөгдөл шахах (LZ4, gzip болон ZSTD горимууд), төлөвийн зүсмэлүүд (хормын хувилбарууд), хяналтын нийлбэрийг ашиглан бүрэн бүтэн байдлыг шалгах, Reed-Solomon алдааны засвар кодыг хадгалах чадвар (RAID 5/6), мэдээллийг хадгалах. шифрлэгдсэн хэлбэр (ChaCha20 ба Poly1305 ашигладаг). Гүйцэтгэлийн хувьд Bcachefs нь Copy-on-Write механизм дээр суурилсан Btrfs болон бусад файлын системүүдээс түрүүлж, Ext4 болон XFS-тэй ойролцоо ажиллах хурдыг харуулдаг.
    • Btrfs файлын систем нь хялбаршуулсан квот горимыг нэвтрүүлсэн бөгөөд энэ нь зөвхөн тэдгээрийн үүсгэгдсэн дэд хуваалт дахь өргөтгөлүүдийг хянах замаар илүү өндөр гүйцэтгэлд хүрэх боломжийг олгодог бөгөөд энэ нь тооцооллыг ихээхэн хялбарчилж, гүйцэтгэлийг сайжруулдаг боловч хэд хэдэн хэсэгт хуваалцсан хэмжээг харгалзан үзэх боломжийг танд олгодоггүй. дэд хуваалтууд.
    • Btrfs нь төхөөрөмжүүдийн хооронд физик зураглал таарахгүй байгаа нөхцөлд логик цар хүрээний зураглал хийхэд тохиромжтой шинэ "судал мод" өгөгдлийн бүтцийг нэмсэн. Энэ бүтцийг одоогоор бүсчилсэн блок төхөөрөмжүүдийн хувьд RAID0 ба RAID1-ийн хэрэгжилтэд ашиглаж байна. Ирээдүйд тэд энэ бүтцийг дээд түвшний RAID-д ашиглахаар төлөвлөж байгаа бөгөөд энэ нь одоогийн хэрэгжилтэд байгаа хэд хэдэн асуудлыг шийдвэрлэх болно.
    • Ceph файлын систем нь холбосон гадаад хуваалт дээрх тодорхой хэрэглэгчийн файлуудыг одоогийн системийн өөр хэрэглэгчтэй тааруулахад ашигладаг холбогдсон файлын системийн хэрэглэгчийн ID-г зураглахад дэмжлэг үзүүлдэг.
    • Root бус процессуудад UEFI хувьсагчдыг өөрчлөх боломжийг олгохын тулд efivarfs-д mount дээр uid болон gid зааж өгөх боломжийг нэмсэн.
    • FS шинж чанаруудыг унших, өөрчлөхийн тулд exFAT-д ioctl дуудлага нэмсэн. Тэг хэмжээтэй лавлахуудтай ажиллах боломж нэмэгдсэн.
    • F2FS нь 16К блок ашиглах чадварыг хэрэгжүүлдэг.
    • autofs automount механизмыг шинэ хуваалт холбох API ашиглахаар сольсон.
    • OverlayFS нь "lowerdir+" болон "datadir+" холбох сонголтыг санал болгодог. OverlayFS-ийг xattrs-тай холбоход дэмжлэг нэмсэн.
    • XFS нь бодит цагийн блок хуваарилах кодонд CPU-ийн ачааллыг оновчтой болгосон. Унших болон FICLONE үйлдлүүдийг нэгэн зэрэг гүйцэтгэх боломжоор хангагдсан.
    • EXT2 кодыг хуудасны фолио ашиглахаар хөрвүүлсэн.
  • Санах ой болон системийн үйлчилгээ
    • 64 онд бүрэн зогссон Intel Itanium процессоруудад ашигладаг ia2021 архитектурыг дэмжихээ больсон. Itanium процессоруудыг Intel 2001 онд нэвтрүүлсэн боловч ia64 архитектур нь AMD64-тэй өрсөлдөх чадваргүй болсон нь голчлон AMD64-ийн өндөр гүйцэтгэл, 32 битийн x86 процессороос илүү зөөлөн шилжилттэй байсантай холбоотой. Үүний үр дүнд Intel-ийн сонирхол x86-64 процессоруудад шилжиж, Itanium-ийн хэсэг нь HP Integrity серверүүд хэвээр үлдэж, гурван жилийн өмнө захиалга нь зогссон. Энэ платформыг удаан хугацаанд дэмжээгүйн улмаас ia64-ийн дэмжлэгийн кодыг цөмөөс хассан бол Линус Торвалдс ia64-ийн дэмжлэгийг цөмд буцааж өгөхөд бэлэн байгаагаа илэрхийлэв, гэхдээ зөвхөн өндөр чанартайг харуулж чадах засварчин байгаа тохиолдолд л. дор хаяж нэг жил үндсэн цөмөөс гадуур энэ платформыг дэмжих .
    • "ia32_emulation" цөмийн шугамын командын параметрийг нэмсэн бөгөөд энэ нь ачаалах үе шатанд x32-86 архитектурт зориулж бүтээсэн цөмүүдэд 64 битийн горимын эмуляцийг идэвхжүүлэх эсвэл идэвхгүй болгох боломжийг олгодог. Практик талаас нь авч үзвэл, шинэ сонголт нь 32 битийн програмуудтай нийцтэй цөмийг бүтээх боломжийг олгодог боловч нийцтэй байдлын API нь үндсэн цөмтэй харьцуулахад бага шалгагдсан тул цөм дээрх халдлагын векторыг багасгахын тулд энэ горимыг анхдагчаар идэвхгүй болго. интерфэйсүүд.
    • Rust-for-Linux салбараас Rust хэлийг драйверууд болон цөмийн модулиудыг хөгжүүлэх хоёрдахь хэл болгон ашиглахтай холбоотой өөрчлөлтүүдийн шилжилт хөдөлгөөн үргэлжилж байна (Зэвийн дэмжлэг нь анхдагчаар идэвхгүй бөгөөд Rust-г програмын жагсаалтад оруулахад хүргэдэггүй. цөмд шаардлагатай угсралтын хамаарлууд). Шинэ хувилбар нь Rust 1.73 хувилбарыг ашиглахад шилжиж, ажлын дараалалтай ажиллахад зориулсан багцуудыг санал болгодог.
    • Тусдаа эрхгүй нэрийн зайн доторх шинэ гүйцэтгэгдэх файлын форматыг (жишээ нь эмхэтгэсэн Java эсвэл Python програмуудыг ажиллуулах) дэмжихийн тулд binfmt_misc механизмыг ашиглах боломжтой.
    • Даалгаврыг гүйцэтгэх үед CPU-ийн цөмүүдийн ашиглалтыг хянах боломжийг олгодог cgroup controller cpuset нь эх бүлэг нь зөв root хэсэг мөн эсэхээс үл хамааран дотоод болон алсын хуваалтад хуваагддаг. "cpuset.cpus.exclusive" болон "cpuset.cpus.excluisve.effective" гэсэн шинэ тохиргоог мөн CPU-г тусгайлан холбох зорилгоор cpuset-д нэмсэн.
    • BPF дэд систем нь стек фреймүүдийг аюулгүй задлах чадвартай BPF програмаас яаралтай гарах гарц болгон боловсруулдаг үл хамаарах зүйлсийг дэмждэг. Үүнээс гадна BPF програмууд нь CPU-тэй холбоотой kptr заагчийг ашиглах боломжийг олгодог.
    • Futex-тэй үйлдлүүдийн дэмжлэгийг io_uring дэд системд нэмж, шинэ үйлдлүүдийг хэрэгжүүлсэн: IORING_OP_WAITID (waitid-ийн асинхрон хувилбар), SOCKET_URING_OP_GETSOCKOPT (getsockoptand сонголт), SOCKET_URING_OP_SETSOCKOPT (сонголт уншихгүй) ба IORING_OP_WAITID байхад зогс өгөгдөл байгаа эсвэл бүрэн буфер байхгүй байна).
    • Зөвхөн процессын нөхцөлд дараалал тайлахад эргүүлэх шаардлагатай хөнгөн жинтэй дан холболттой FIFO дарааллын хэрэгжилтийг нэмсэн бөгөөд ямар ч контекстэд дараалалд атомын нэмэлт оруулахад эргүүлэх түгжээг ашиглахгүй.
    • Объектуудыг хуваарилах, буцаах өндөр гүйцэтгэлтэй дарааллыг өргөтгөх боломжтой "objpool" цагираган буфер нэмсэн.
    • NUMA системүүд дээр илүү сайн гүйцэтгэлтэй, 2 битээс өөр хэмжээтэй, олон талт futex() системийн дуудлагын оронд ашиглах боломжтой шинэ futex32 API-г хэрэгжүүлэхийн тулд өөрчлөлтүүдийн эхний хэсгийг нэмсэн.
    • ARM32 болон S390x архитектурын хувьд одоогийн багц (cpuv4) BPF зааврын дэмжлэгийг нэмсэн.
    • RISC-V архитектурын хувьд Clang 17-д байгаа Shadow-Call Stack шалгах горимыг ашиглах боломжтой бөгөөд энэ нь стек дээр буфер халих үед функцээс буцах хаягийг дарж бичихээс хамгаалах зорилготой юм. Хамгаалалтын мөн чанар нь функц руу хяналтыг шилжүүлж, функцээс гарахын өмнө энэ хаягийг сэргээсний дараа буцах хаягийг тусдаа "сүүдэр" стек болгон хадгалах явдал юм.
    • Ижил санах ойн хуудсыг нэгтгэх механизмд (KSM: Kernel Samepage Merging) шинэ ухаалаг санах ойн хуудсыг сканнердах горим нэмэгдсэн бөгөөд энэ нь амжилтгүй сканнердсан хуудсуудыг хянаж, дахин сканнердах эрчмийг бууруулдаг. Шинэ горимыг идэвхжүүлэхийн тулд /sys/kernel/mm/ksm/smart_scan тохиргоог нэмсэн.
    • PAGEMAP_SCAN шинэ ioctl командыг нэмсэн бөгөөд үүнийг userfaultfd()-д ашиглах үед тодорхой санах ойд бичих баримтуудыг тодорхойлох боломжийг олгодог. Жишээлбэл, шинэ функцийг системд CRIU процессын төлөвийг хадгалах, сэргээхэд эсвэл тоглоомын хууран мэхлэлтийн эсрэг системд ашиглаж болно.
    • Ассемблей системд Clang хөрвүүлэгч байгаа бол BPF програм хэлбэрээр бичигдсэн perf дэд системийг ашиглах жишээнүүдийн угсралт нь анхдагчаар идэвхждэг.
    • Медиа дэд систем дэх фреймбуферийг удирдахад ашиглаж байсан, 10 гаруй жилийн өмнө videobuf2-ийн шинэ хэрэглүүрээр солигдсон хуучин videobuf давхаргыг устгасан.
  • Виртуалчлал ба аюулгүй байдал
    • Файлын систем дэх блокийн хэмжээнээс бага блок дахь өгөгдлийг шифрлэх чадварыг fscrypt дэд системд нэмсэн. Энэ нь зөвхөн жижиг блокуудыг дэмждэг техник хангамжийн шифрлэлтийн механизмыг идэвхжүүлэхэд шаардлагатай байж болно (жишээлбэл, зөвхөн 4096 блокийн хэмжээг дэмждэг UFS хянагчуудыг 16К блок хэмжээтэй файлын системд ашиглаж болно).
    • IOMMU (I/O Memory-Management Unit) санах ойн хуудасны хүснэгтүүдийг хэрэглэгчийн орон зайгаас файлын тодорхойлогчоор удирдах боломжийг олгодог "iommufd" дэд систем нь DMA-д зориулж кэшээс (бохир) устгагдаагүй өгөгдлийг хянах боломжийг нэмсэн. үйлдлүүд бөгөөд энэ нь процессын шилжилтийн явцад арилгаагүй өгөгдөл бүхий санах ойг тодорхойлоход шаардлагатай байдаг.
    • TCP залгууруудын хандалтын хяналтын дүрмийг тодорхойлох дэмжлэгийг Landlock механизмд нэмсэн бөгөөд энэ нь хэсэг процессуудын гадаад орчинтой харилцан үйлчлэлийг хязгаарлах боломжийг олгодог. Жишээлбэл, та HTTPS холболтыг бий болгохын тулд зөвхөн сүлжээний 443 порт руу нэвтрэхийг зөвшөөрдөг дүрмийг үүсгэж болно.
    • AppArmor дэд систем нь io_uring механизм руу хандах хандалтыг хянах, хэрэглэгчийн нэрийн орон зайг үүсгэх чадварыг нэмсэн бөгөөд энэ нь танд эдгээр боломжуудад зөвхөн тодорхой процессуудад хандах боломжийг сонгох боломжийг олгодог.
    • Виртуал машиныг ачаалах процессын бүрэн бүтэн байдлыг шалгахын тулд виртуал машины баталгаажуулалтын API-г нэмсэн.
    • LoongArch системүүд KVM гипервизор ашиглан виртуалчлалыг дэмждэг.
    • RISC-V систем дээр KVM гипервизорыг ашиглах үед Smstateen өргөтгөлийн дэмжлэг гарч ирсэн бөгөөд энэ нь виртуал машиныг гипервизорын тодорхой дэмждэггүй CPU бүртгэлд хандах боломжийг хаадаг. Мөн зарим нөхцөлт бүхэл тоон үйлдлийг ашиглах боломжийг олгодог зочны системд Zicond өргөтгөлийг ашиглах дэмжлэгийг нэмсэн.
    • KVM дээр ажилладаг x86-д суурилсан зочин системд 4096 хүртэлх виртуал CPU-г зөвшөөрдөг.
  • Сүлжээний дэд систем
    • NVMe-TCP (NVMe over TCP) драйвер нь NVMe хөтчүүдэд TCP протоколыг ашиглан сүлжээгээр (NVM Express гаруй даавуу) хандах боломжийг олгодог бөгөөд TLS (KTLS болон арын процесс ашиглан) ашиглан өгөгдөл дамжуулах сувгийг шифрлэх дэмжлэгийг нэмсэн. tlshd хэрэглэгчийн орон зайд холболтын хэлэлцээр хийх).
    • Fq (Fair Queuing) багц хуваарийн гүйцэтгэлийг оновчтой болгосон бөгөөд энэ нь tcp_rr (TCP Хүсэлт/Хариу) тестийн хүнд ачааллын үед дамжуулах чадварыг 5%, UDP пакетуудын хязгааргүй урсгалаар 13% нэмэгдүүлэх боломжтой болсон.
    • TCP нь нэмэлт микросекундын нарийвчлалтай цагийн тэмдэг (TCP TS) боломжийг (RFC 7323) нэмдэг бөгөөд энэ нь хоцролтыг илүү нарийвчлалтай тооцоолох, түгжрэлийг хянах илүү дэвшилтэт модулиудыг зөвшөөрдөг. Үүнийг идэвхжүүлэхийн тулд та "ip route add 10/8 ... features tcp_usec_ts" командыг ашиглаж болно.
    • TCP стек нь TCP-AO өргөтгөлийн (TCP Authentication Option, RFC 5925) дэмжлэгийг нэмсэн бөгөөд энэ нь илүү орчин үеийн HMAC-SHA1 болон CMAC-AES алгоритмуудыг ашиглан MAC код (Мессежийн баталгаажуулалтын код) ашиглан TCP толгойг шалгах боломжийг олгодог. 128-ын оронд хуучин MD5 алгоритм дээр суурилсан TCP-MD5 хувилбарыг ашиглах боломжтой байсан.
    • BPF програмыг ашиглан өгөгдөл дамжуулах логикийг тохируулсан шинэ төрлийн виртуал сүлжээний төхөөрөмж "netkit" нэмэгдсэн.
    • SMB серверийн цөмийн түвшний хэрэгжүүлэлт болох KSMBD нь орлуулагч хос нийлмэл тэмдэгтүүдийг агуулсан файлын нэрийг шийдвэрлэхэд дэмжлэг нэмсэн.
    • NFS нь RPC үйлчилгээнүүдтэй хэлхээний хэрэгжилтийг сайжруулсан. Бичих төлөөлөгчийн дэмжлэгийг нэмсэн (NFSv4.1+). NFSD нь rpc_status сүлжээний зохицуулагчийн дэмжлэгийг нэмсэн. Knfsd руу дахин экспортлох үед NFSv4.x үйлчлүүлэгчдэд зориулсан сайжруулсан дэмжлэг.
  • Тоног төхөөрөмж
    • GSP-RM программ хангамжийн анхны дэмжлэгийг NVIDIA RTX 20+ GPU-д GSP микроконтроллерийн (GPU системийн процессор) тал руу эхлүүлэх болон GPU удирдлагын үйлдлүүдийг шилжүүлэхэд ашигладаг Nouveau цөмийн модульд нэмсэн. GSP-RM дэмжлэг нь Nouveau драйверт техник хангамжийн харилцан үйлчлэлийг шууд програмчлахаас илүүтэйгээр програм хангамжийн дуудлагаар ажиллах боломжийг олгодог бөгөөд үүнийг эхлүүлэх, эрчим хүчний менежментэд зориулж урьдчилан бүтээгдсэн дуудлагуудыг ашиглан шинэ NVIDIA GPU-д дэмжлэг нэмэхэд илүү хялбар болгодог.
    • AMDGPU драйвер нь GC 11.5, NBIO 7.11, SMU 14, SMU 13.0 OD, DCN 3.5, VPE 6.1 болон DML2-г дэмждэг. Тохиромжгүй ачаалах сайжруулсан дэмжлэг (видео горимыг солих үед анивчихгүй).
    • i915 драйвер нь Intel Meteor Lake чипүүдийн дэмжлэгийг нэмж, Intel LunarLake (Xe 2)-ийн анхны хэрэгжилтийг нэмдэг.
    • USB4 v2 (120/40G) үзүүлэлтэд нэмсэн тэгш бус дамжуулах сувгийн дэмжлэгийг нэмсэн.
    • ARM SoC-д нэмэлт дэмжлэг: Qualcomm Snapdragon 720G (Xiaomi ухаалаг гар утсанд ашигладаг), AMD Pensando Elba, Renesas, R8A779F4 (R-Car S4-8), USRobotics USR8200 (чиглүүлэгч болон NAS-д ашигладаг).
    • Fairphone 5 ухаалаг гар утас болон Orange Pi 5, QuartzPro64, Turing RK1, Variscite MX6, BigTreeTech CB1, Freescale LX2162, Google Spherion, Google Hayato, Genio 1200 EVK, RK3566 Powkiddy RGB30 зэрэг ARM самбаруудад зориулсан дэмжлэг нэмэгдсэн.
    • Milk-V Pioneer болон Milk-V Duo-ийн RISC-V хавтангуудад зориулсан дэмжлэг нэмэгдсэн.
    • AMD CPU-тэй нийлүүлсэн HUAWEI зөөврийн компьютеруудын дууны интерфейсийн дэмжлэгийг нэмсэн. Dell Oasis 13/14/16 зөөврийн компьютер дээр суурилуулсан нэмэлт чанга яригчдад зориулсан дэмжлэг нэмэгдсэн. ASUS K6500ZC суурилуулсан чанга яригчийн дэмжлэгийг нэмсэн. HP 255 G8 болон G10 зөөврийн компьютер дээрх дууг хаах үзүүлэлтийн дэмжлэгийг нэмсэн. acp6.3 аудио драйверуудын дэмжлэгийг нэмсэн. Focusrite Clarett+ 2Pre болон 4Pre мэргэжлийн бичлэг хийх интерфейсийн дэмжлэгийг нэмсэн.

Үүний зэрэгцээ, Латин Америкийн Чөлөөт Програм хангамжийн Сан нь бүрэн үнэгүй цөмийн 6.7 хувилбарыг - Linux-libre 6.7-gnu хувилбарыг бүрдүүлж, програм хангамжийн элементүүд болон чөлөөт бус бүрэлдэхүүн хэсгүүд эсвэл кодын хэсгүүдийг агуулсан драйверуудаас цэвэрлэсэн бөгөөд хамрах хүрээ нь хязгаарлагдмал. үйлдвэрлэгчээс. 6.7 хувилбар дээр blob цэвэрлэх кодыг янз бүрийн драйверууд болон дэд системүүдэд, жишээлбэл, amdgpu, nouveau, adreno, mwifiex, mt7988, ath11k, avs болон btqca драйверуудад шинэчилсэн. Localtalk болон rtl8192u драйверуудыг цөмөөс хассан тул тэдгээрийг цэвэрлэх кодыг устгасан. Өмнө нь алдаагаар нэмсэн xhci-pci, rtl8xxxu болон rtw8822b драйверуудыг цэвэрлэх шаардлагагүй бүрэлдэхүүн хэсгүүдийг устгасан. Aarch64 архитектурт зориулсан dts файл дахь blob нэрийг цэвэрлэв. mt7925, tps6598x, aw87390 болон aw88399 шинэ драйверууд дээрх толбуудыг устгасан.

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

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