 |
от DeepUltramarine(13-04-2026)
Дойде краят на 9 седмичния merge window и development cycle след Linux 6.19. Линус Торвалдс лично е тагнал и пуснал версията след една, бих казал, "спокойна" последна седмица с много малки фиксове. Той коментира, че много от тях вероятно идват от ИИ инструменти, които търсят да разширят възможностите докрай – и че това може да е "новото нормално" за известно време.
В анонса на Linux 7.0-rc7 (и в коментарите около последната седмица преди стабилното пускане) Линус Торвалдс отбелязва, че броят на малките поправки е по-голям от обичайното за този етап от цикъла. Повечето от тях са дребни, но реални. Не изглеждат страшни, но са забележимо повече.
Той предположи, че част от тях вероятно идват от ИИ инструменти (LLM модели като този на ChatGPT, Claude и подобни), които стават все по-добри в намирането и поправянето на грешки — редки и незабележими, които човек лесно пропуска при нормално писане на код или ревю.
Ето и по-подробен преглед на най-важните неща, базиран на KernelNewbies, merge-window summaries и анонсите във Phoronix и LKML:
Rust вече не е експериментален, що се отнася до ядрото на Linux.
Това е една от най-символичните промени. Rust поддръжката в ядрото започна експериментално по време на 6.1 (2022–2023), а в 7.0 статутът "experimental" официално отпада. Вече има по-добри Rust синхронизационни примитиви, поддръжка за PCI config space в Rust и подобрения за LTO (Link-Time Optimization) между Rust и C код. Това е голяма крачка към по-безопасен код (memory safety) в критични части на ядрото.
io_uring – добавени са нови филтри с cBPF (и наследяване по задачи).
Добавена е възможност за зареждане на BPF филтри (cBPF) върху io_uring операции. Филтрите се прилагат на ниво SQE (Submission Queue Entry) и се наследяват при fork(). Това решава сериозен проблем със сигурността. Досега io_uring беше толкова мощен, че Google плати $1M награда за откриване на уязвимости и го забрани в Chrome OS. Сега админите могат да ограничават точно кои операции са позволени (напр. в контейнери или cloud), без да го изключват напълно. Освен това има големи RX буфери (>4K), zero-copy в Netkit и други оптимизации.
Сcheduler: lazy preemption по подразбиране плюс time-slice extension
Премахнати са част от старите модели на прекъсвания (останали са само full и lazy). Lazy става по подразбиране за arm64, x86, RISC-V и др. Плюс десетгодишна patch серия за "time-slice extension" чрез rseq(2) – позволява на user-space нишките временно да удължат time slice-а си, за да не бъдат прекъсвани в критични секции (много полезно за user-space spinlocks и високопроизводителни приложения). Резултатът е по-бързи реакции и по-малко "спорове".
Имаме и няколко големи промени при файловите системи.
nullfs – нова минимална, immutable (непроменяема) която служи, който служи като истински root за йерархиите при монтирането. Улеснява pivot_root() в initramfs и контейнери.
XFS – автономно поправяне (автономно поправяне на метаданни и I/O грешки) плюс health monitoring чрез fsnotify. Събитията се доставят в реално време на потребителски процес (например systemd демон може да прави поправки без да блокира unmount).
При BTRFS е въведен експериментален remap tree за по-добра надежност при премествания и бъдещи оптимизации.
С помощта на remap-tree слоят за преобразуване на логическите адреси на блоковете позволява да се извършват промени, без да се преместват или презаписват блокове, за да се обработват премествания или други промени, изискващи копиране при запис.
Още, swap subsystem Phase II (≈20% подобрение на скоростта в redis-benchmark), fserror инфраструктура за унифицирано отчитане на файлови I/O грешки, по-добро предварително четене в NTFS3/exFAT и т.н.
При мрежите:
AccECN (Accurate Explicit Congestion Notification, RFC 9768) вече е активен по подразбиране.
AccECN вече е механизмът по подразбиране за сигнализиране на претоварване по TCP за всички нови връзки. Той беше достъпен като опция, която трябваше да се активира ръчно, в продължение на няколко версии на ядрото. От Linux ядро 7.0 нататък вече не се изисква потребителите да го активират ръчно.
Големи RX буфери в ZCRX и до 30% по-малко процесорно натоварване.
io_uring zero copy Rx (ZC Rx) е функция, която премахва копирането от ядрото към потребителското пространство по пътя на приемане в мрежата, като позволява пакетните данни да се приемат директно в паметта на потребителското пространство. Тази функция се различава от TCP_ZEROCOPY_RECEIVE, тъй като няма строги изисквания за подреждане и няма нужда от mmap()/munmap().
В сравнение с решенията за заобикаляне на ядрото, като например DPDK, хедърите на пакетите се обработват от TCP стека на ядрото по обичайния начин.
Много ъпдейти на драйвери за WiFi, Bluetooth, RDMA, Ethernet.
Промени при сигурността и криптирането:
Поддръжка на ML-DSA (post-quantum digital signature algorithm) в X.509, PKCS#7 и crypto subsystem.
Clang thread-safety analysis за compile-time проверка на блокировките, стъпил на LLVM Clang 22
Подобрения при seccomp/ Landlock / AppArmor / SELinux.
Други особености, които си струва да се споменат:
open_tree(2) с нов флаг OPEN_TREE_NAMESPACE за по-бързо създаване на container mount namespaces.
Много архитектурни ъпдейти (нови Qualcomm, MediaTek, Intel Nova Lake, AMD, Apple Silicon и т.н.).
Премахнати са някои legacy неща: SHA-1 за подписване на модулите, laptop_mode, част от стария initrd код и др.
Цикълът беше по-дълъг от обикновено.
Rc4 се проточи повече от очакваното заради networking pull request. Въпреки това, всичко мина сравнително гладко и 7.0-rc7 беше много чист. Ubuntu 26.04 LTS вероятно ще го вземе като default kernel.
Пълен списък с промените и новостите може да видите на https://kernelnewbies.org/Linux_7.0
Източник: https://www.phoronix.com/news/Linux-7.0-Released
Както и някои други.
<< | Франция с планове за преминаване към Linux >>
|
 |