Linux 6.7 ядросунун чыгарылышы

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

Жаңы версияда 18405 иштеп чыгуучунун 2066 72 оңдоосу камтылган, патчтын көлөмү 13467 МБ (өзгөрүүлөр 906147 341048 файлга таасирин тийгизген, 15291 2058 код саптары кошулган, 39 45 сап өчүрүлгөн). Акыркы чыгарылышта 6.7 иштеп чыгуучулардан 14 оңдоолор бар, патчтын көлөмү 13 МБ болгон. 5де киргизилген бардык өзгөртүүлөрдүн 3%га жакыны түзмөктүн драйверлерине тиешелүү, өзгөрүүлөрдүн болжол менен XNUMX%ы аппараттык архитектураларга мүнөздүү кодду жаңыртууга, XNUMX%ы тармактык стекке, XNUMX%ы файл тутумдарына жана XNUMX%ы тиешелүү. ички ядронун подсистемалары менен байланышкан.

6.7 ядросундагы негизги инновациялар:

  • Диск подсистемасы, киргизүү/чыгаруу жана файл системалары
    • Ядро Bcachefs файл тутумунун кодун кабыл алат, ал Btrfs жана ZFSде табылган өркүндөтүлгөн функциялардын элементтери менен айкалышкан XFSтин натыйжалуулугуна, ишенимдүүлүгүнө жана масштабдуулугуна жетишүүгө аракет кылат. Мисалы, Bcachefs бөлүмгө бир нече түзмөктөрдү кошуу, көп катмарлуу диск макеттери (тез SSDдердин негизинде көп колдонулган маалыматтар менен төмөнкү катмар жана катуу дисктерден азыраак колдонулган маалыматтар менен үстүнкү катмар), репликация (RAID) сыяктуу функцияларды колдойт. 1/10), кэштөө, ачык-айкын маалыматтарды кысуу (LZ4, gzip жана ZSTD режимдери), мамлекеттик кесимдерди (сүрөттөр), текшерүү суммасын колдонуу менен бүтүндүктү текшерүү, Reed-Solomon ката оңдоо коддорун сактоо мүмкүнчүлүгү (RAID 5/6), маалыматты сактоо шифрленген форма (ChaCha20 жана Poly1305 колдонулат). Өндүрүмдүүлүк жагынан Bcachefs Btrfs жана башка файл системаларынан алдыда, Copy-on-Write механизмине негизделген жана Ext4 жана XFSге жакын иштөө ылдамдыгын көрсөтөт.
    • Btrfs файл системасы жөнөкөйлөштүрүлгөн квота режимин киргизет, ал экстенттерге алар түзүлгөн суббөлүмдө гана көз салуу менен жогорку көрсөткүчтөргө жетишүүгө мүмкүндүк берет, бул эсептөөлөрдү кыйла жөнөкөйлөтөт жана иштин майнаптуулугун жакшыртат, бирок бир нече форматта бөлүшүлгөн масштабдарды эсепке алууга мүмкүндүк бербейт. бөлүктөр.
    • Btrfs жаңы "сызык дарагы" маалымат түзүмүн кошту, ал физикалык карта түзмөлөрдө дал келбеген жагдайларда логикалык масштабды картага түшүрүүгө ылайыктуу. Түзүм учурда RAID0 жана RAID1 ишке ашырууда райондоштурулган блоктук түзмөктөр үчүн колдонулат. Келечекте алар бул структураны жогорку деңгээлдеги RAIDтерде колдонууну пландаштырууда, бул учурдагы ишке ашырууда орун алган бир катар көйгөйлөрдү чечет.
    • Ceph файл системасы орнотулган чет өлкөлүк бөлүмдөгү белгилүү бир колдонуучунун файлдарын учурдагы системадагы башка колдонуучу менен дал келтирүү үчүн колдонулган орнотулган файл системаларынын колдонуучу идентификаторлорун картага түшүрүү үчүн колдоону ишке ашырат.
    • Түпкү эмес процесстерге UEFI өзгөрмөлөрүн өзгөртүүгө уруксат берүү үчүн efivarfs'га орнотууда uid жана gidди көрсөтүү мүмкүнчүлүгү кошулду.
    • FS атрибуттарын окуу жана өзгөртүү үчүн exFATга ioctl чалуулары кошулду. Нөл өлчөмдөгү каталогдорду иштетүү кошулду.
    • F2FS 16K блокторду колдонуу мүмкүнчүлүгүн ишке ашырат.
    • autofs automount механизми жаңы бөлүмдү орнотуу API'син колдонууга которулду.
    • OverlayFS "lowerdir+" жана "datadir+" орнотуу параметрлерин сунуштайт. OverlayFSти xattrs менен уяча орнотуу үчүн кошумча колдоо.
    • XFS реалдуу убакыт блок бөлүү кодунда CPU жүгүн оптималдаштырды. Окуу жана FICLONE операцияларын бир убакта аткаруу мүмкүнчүлүгү берилген.
    • EXT2 коду беттин фолиолорун колдонууга айландырылды.
  • Эстутум жана система кызматтары
    • 64-жылы толугу менен токтотулган Intel Itanium процессорлорунда колдонулган ia2021 архитектурасын колдоо токтотулду. Itanium процессорлору 2001-жылы Intel тарабынан киргизилген, бирок ia64 архитектурасы AMD64 менен атаандаша алган жок, бул негизинен AMD64тин жогорку өндүрүмдүүлүгүнө жана 32 биттик x86 процессорлорунан жылмакай өтүүсүнө байланыштуу. Натыйжада, Intelдин кызыкчылыктары x86-64 процессорлорунун пайдасына өзгөрүп, Itanium лотунда үч жыл мурун заказдар токтотулган HP Integrity серверлери калды. ia64 колдоо коду, негизинен, бул платформа үчүн узак мөөнөттүү колдоо жоктугунан улам ядродон алынып салынды, ал эми Линус Торвалдс ядрого ia64 колдоосун кайтарып берүүгө даяр экенин билдирди, бирок жогорку сапатты көрсөтө алган тейлөөчү болсо гана. жок дегенде бир жыл негизги ядродон тышкары бул платформаны колдоо.
    • Жүктөө стадиясында x32-32 архитектурасы үчүн курулган ядролордо 86-бит режиминин эмуляциясын колдоону иштетүүгө же өчүрүүгө мүмкүндүк берген “ia64_emulation” ядро ​​сапынын командалык параметри кошулду. Практикалык жактан алганда, жаңы опция 32 биттик тиркемелер менен шайкештикти колдоо менен ядрону курууга мүмкүндүк берет, бирок ядродогу чабуул векторун азайтуу үчүн бул режимди демейки боюнча өчүрүңүз, анткени шайкештик API негизги ядрого караганда азыраак текшерилген. интерфейстер.
    • Rust-for-Linux бутагынан драйверлерди жана ядролук модулдарды иштеп чыгуу үчүн экинчи тил катары Rust тилин колдонууга байланыштуу өзгөрүүлөрдүн уланып келе жатканы (Rust колдоосу демейки боюнча активдүү эмес жана Rust'тун программаларга кошулушуна алып келбейт. ядро үчүн зарыл болгон монтаждык көз карандылыктар). Жаңы версия Rust 1.73 чыгарууну колдонууга өтүүнү камсыздайт жана жумушчу кезектер менен иштөө үчүн байламталардын топтомун сунуштайт.
    • Жаңы аткарылуучу файл форматтарын колдоо үчүн (мисалы, компиляцияланган Java же Python тиркемелерин иштетүү үчүн) өзүнчө артыкчылыксыз аттар мейкиндигинде binfmt_misc механизмин колдонууга болот.
    • Тапшырманы аткарууда CPU өзөктөрүн колдонууну көзөмөлдөөгө мүмкүндүк берген cgroup контроллери cpuset, ата-энелик топтун туура тамыр бөлүмү болобу же жокпу, айырмаланган жергиликтүү жана алыскы бөлүүгө бөлүүнү камсыз кылат. Жаңы жөндөөлөр "cpuset.cpus.exclusive" жана "cpuset.cpus.excluisve.effective" да cpuset'ке эксклюзивдүү CPU туташтыруу үчүн кошулду.
    • 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" шакекче буфери кошулду.
    • Өзгөртүүлөрдүн баштапкы бөлүгү жаңы futex2 APIди ишке ашыруу үчүн кошулган, ал NUMA системаларында жакшыраак иштешет, 32 биттен башка өлчөмдөрдү колдойт жана мультиплекстелген futex() тутум чалуусунун ордуна колдонулушу мүмкүн.
    • ARM32 жана S390x архитектуралары үчүн BPF нускамаларынын учурдагы топтомун (cpuv4) колдоо кошулду.
    • RISC-V архитектурасы үчүн Clang 17де жеткиликтүү Shadow-Call Stack текшерүү режимин колдонууга болот, ал стекте буфер толуп кеткен учурда функциядан кайтаруу дарегин кайра жазуудан коргоо үчүн иштелип чыккан. Коргоонун маңызы башкарууну функцияга өткөрүп бергенден кийин жана функциядан чыкканга чейин бул даректи кайтарып алгандан кийин кайтаруу дарегин өзүнчө “көмүскө” стекте сактоо болуп саналат.
    • Окшош эс-тутум барактарын бириктирүү механизмине жаңы смарт эс баракчасын сканерлөө режими кошулду (KSM: Yadro 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 үчүн кэштен (кир) тазалана элек маалыматтарга көз салууну кошту. процессти көчүрүү учурунда тазаланбаган маалыматтар менен эстутумду аныктоо үчүн зарыл болгон операциялар.
    • Lentlock механизмине TCP розеткалары үчүн жеткиликтүүлүктү башкаруу эрежелерин аныктоо үчүн колдоо кошулду, ал процесстер тобунун тышкы чөйрө менен өз ара аракеттенүүсүн чектөөгө мүмкүндүк берет. Мисалы, HTTPS байланыштарын орнотуу үчүн 443 тармак портуна гана кирүүгө уруксат берген эреже түзө аласыз.
    • AppArmor подсистемасы io_uring механизмине кирүү мүмкүнчүлүгүн көзөмөлдөө жана колдонуучу аттары мейкиндиктерин түзүү мүмкүнчүлүгүн кошту, бул мүмкүнчүлүктөрдү айрым процесстерге гана тандоого уруксат берүүгө мүмкүндүк берет.
    • Виртуалдык машинаны жүктөө процессинин бүтүндүгүн текшерүү үчүн виртуалдык машинаны аттестациялоо API кошулду.
    • LoongArch системалары KVM гипервизорунун жардамы менен виртуалдаштырууну колдойт.
    • RISC-V системаларында KVM гипервизорун колдонууда Smstateen кеңейтүүсүн колдоо пайда болду, ал виртуалдык машинанын гипервизор тарабынан ачык колдоого алынбаган CPU регистрлерине кирүүсүн бөгөттөйт. Ошондой эле конок системаларында кээ бир шарттуу бүтүн операцияларды колдонууга мүмкүндүк берген Zicond кеңейтүүсүн колдонуу үчүн колдоо кошулду.
    • KVM астында иштеген x86 негизделген конок системаларында 4096га чейин виртуалдык CPU уруксат берилет.
  • Тармактык подсистема
    • NVMe-TCP (TCP аркылуу NVMe) драйвери, TCP протоколун колдонуп, тармак аркылуу NVMe дисктерине (Fabrics аркылуу NVM Express) кирүүгө мүмкүндүк берет, TLS (KTLS жана фон процессин колдонуу менен) маалымат берүү каналын шифрлөө үчүн колдоо кошту. туташуу сүйлөшүүлөрү үчүн tlshd колдонуучу мейкиндигинде).
    • fq (Fair Queuing) пакет пландоочусунун иштеши оптималдаштырылган, бул tcp_rr (TCP Request/Response) сынагында оор жүктөмдөрдүн астында өткөрүү жөндөмдүүлүгүн 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), ал MAC коддору (Кабардын аутентификация коду) аркылуу TCP аталыштарын текшерүүгө мүмкүндүк берет, заманбап HMAC-SHA1 жана CMAC-AES- алгоритмдерин колдонуу менен. 128 анын ордуна мурунку MD5 алгоритмине негизделген TCP-MD5 опциясы бар.
    • Виртуалдык тармак түзүлүштөрүнүн жаңы түрү “netkit” кошулду, анда маалыматтарды берүү логикасы BPF программасы аркылуу орнотулган.
    • KSMBD, SMB серверинин өзөк деңгээлинде ишке ашырылышы, татаал символдордун суррогат жуптарын камтыган файл аталыштарын чечүү үчүн колдоону кошту.
    • NFS RPC кызматтары менен жиптерди ишке ашырууну жакшыртты. Жазуу өкүлчүлүгүнө колдоо кошулду (NFSv4.1+ үчүн). NFSD rpc_status netlink иштетүүчү үчүн колдоо кошту. Knfsdге реэкспорттоодо NFSv4.x кардарлары үчүн жакшыртылган колдоо.
  • жабдуулар
    • Nouveau ядро ​​модулуна GSP-RM микропрограммасынын баштапкы колдоосу кошулду, ал NVIDIA RTX 20+ GPUде инициализациялоо жана GPU башкаруу операцияларын өзүнчө GSP микроконтроллеринин (GPU тутумунун процессору) тарабына жылдыруу үчүн колдонулат. 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 смартфонуна жана ARM такталарына Orange Pi 5, QuartzPro64, Turing RK1, Variscite MX6, BigTreeTech CB1, Freescale LX2162, Google Spherion, Google Hayato, Genio 1200 EVK, RK3566 Powkiddy RGB30 үчүн колдоо кошулду.
    • RISC-V такталары Milk-V Pioneer жана Milk-V Duo үчүн кошумча колдоо.
    • AMD процессорлору менен жабдылган 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 файлдарындагы блоб аталыштары тазаланды. Жаңы mt7925, tps6598x, aw87390 жана aw88399 драйверлериндеги бүдүрчөлөр алынып салынды.

Source: opennet.ru

Комментарий кошуу