Хоёр сарын турш хөгжүүлсний дараа Линус Торвалдс цөмийг гаргасан. Linux 6.7. Хамгийн онцлох өөрчлөлтүүдийн дунд: Bcachefs файлын системийг нэгтгэх, Itanium архитектурыг дэмжихээ болих, GSP-R-тэй Nouvea firmware-тэй ажиллах чадвар, NVMe-TCP дээр TLS шифрлэлтийг дэмжих, BPF дээр онцгой тохиолдлуудыг ашиглах чадвар, io_uring дээр futex-ийг дэмжих, fq (Fair Queuing) хуваарилагчийн гүйцэтгэлийг оновчлох, TCP-AO (TCP Authentication Option) өргөтгөлийг дэмжих болон Landlock хамгаалалтын механизм дахь сүлжээний холболтыг хязгаарлах чадвар, хэрэглэгчийн нэрийн орон зайд хандах хяналт болон AppArmor-оор дамжуулан io_uring-ийг нэмэх зэрэг өөрчлөлтүүд нэмэгдсэн.
Шинэ хувилбарт 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 кодыг хуудасны фолио ашиглахаар хөрвүүлсэн.
- Санах ой болон системийн үйлчилгээ
- 2021 онд үйлдвэрлэлээ зогсоосон Intel-ийн Itanium процессоруудад ашигласан ia64 архитектурын дэмжлэгийг зогсоосон. Intel 2001 онд Itanium процессоруудыг танилцуулсан боловч 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-ийг цөмийн бүтээхэд заавал хамааралтай болгох шаардлагагүй). Шинэ хувилбар нь 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, үйлдвэрлэгчийн хязгаарлагдмал хүрээтэй чөлөөт бус бүрэлдэхүүн хэсгүүд эсвэл кодын хэсгүүдийг агуулсан firmware болон драйверын элементүүдийг цэвэрлэсэн. 6.7 хувилбарт amdgpu, nouveau, adreno, mwifiex, mt7988, ath11k, avs, болон btqca зэрэг янз бүрийн драйвер болон дэд системүүд дэх шинэчилсэн blob цэвэрлэх код багтсан болно. localtalk болон rtl8192u драйверуудын цэвэрлэх кодыг цөмөөс хассан тул устгасан. xhci-pci, rtl8xxxu, болон rtw8822b драйверуудын шаардлагагүй цэвэрлэх бүрэлдэхүүн хэсгүүдийг өмнө нь алдаатай нэмсэн бөгөөд устгасан. Aarch64 архитектурын dts файлууд дахь blob нэрсийг цэвэрлэсэн. Шинэ mt7925, tps6598x, aw87390, болон aw88399 драйверуудад blob-уудыг устгасан.
Эх сурвалж: opennet.ru
