Linux 6.0 kernel release

Pagkatapos ng dalawang buwan ng pag-unlad, ipinakita ni Linus Torvalds ang paglabas ng Linux 6.0 kernel. Ang makabuluhang pagbabago sa numero ng bersyon ay para sa aesthetic na mga kadahilanan at ito ay isang pormal na hakbang upang maibsan ang kakulangan sa ginhawa ng pag-iipon ng isang malaking bilang ng mga isyu sa serye (Nagbiro si Linus na ang dahilan ng pagpapalit ng numero ng sangay ay mas malamang na siya ay nauubusan ng mga daliri at mga daliri sa paa upang mabilang ang mga numero ng bersyon) . Kabilang sa mga pinaka-kapansin-pansing pagbabago: suporta para sa asynchronous buffered writing sa XFS, ang ublk block driver, pag-optimize ng task scheduler, isang mekanismo para sa pag-verify ng tamang operasyon ng kernel, suporta para sa ARIA block cipher.

Mga pangunahing inobasyon sa kernel 6.0:

  • Disk subsystem, I/O at mga file system
    • Ang XFS file system ay nagdagdag ng suporta para sa asynchronous buffered writes gamit ang io_uring mechanism. Ang mga pagsubok sa performance na isinagawa gamit ang fio tool (1 thread, 4kB block size, 600 seconds, sequential write) ay nagpapakita ng pagtaas sa input/output operations per second (IOPS) mula 77k hanggang 209k, ang bilis ng paglipat ng data mula 314MB/s hanggang 854MB/s, at pagbaba ng latency mula 9600ns hanggang 120ns (80 beses).
    • Ang Btrfs file system ay nagpapatupad ng pangalawang bersyon ng protocol para sa command na "send", na nagpapatupad ng suporta para sa karagdagang metadata, pagpapadala ng data sa mas malalaking bloke (higit sa 64K) at pagpapadala ng mga lawak sa naka-compress na form. Ang pagganap ng mga operasyon ng direktang pagbasa ay makabuluhang nadagdagan (hanggang sa 3 beses) dahil sa sabay-sabay na pagbabasa ng hanggang sa 256 na sektor. Binawasan ang pagtatalo sa pagla-lock at pinabilis ang pagsusuri ng metadata sa pamamagitan ng pagbabawas ng nakareserbang metadata para sa mga ipinagpaliban na elemento.
    • Ang mga bagong ioctl operations na EXT4_IOC_GETFSUUID at EXT4_IC_SETFSUUID ay naidagdag sa ext4 file system upang kunin o itakda ang UUID na nakaimbak sa superblock.
    • Nag-aalok ang F2FS file system ng mababang mode ng pagkonsumo ng memorya, na nag-o-optimize ng operasyon sa mga device na may maliit na halaga ng RAM at nagbibigay-daan sa iyo na bawasan ang pagkonsumo ng memorya sa halaga ng pinababang pagganap.
    • Nagdagdag ng suporta para sa NVMe drive authentication.
    • Ang NFSv4 server ay nagpapatupad ng limitasyon sa bilang ng mga aktibong kliyente, na itinakda bilang 1024 na wastong kliyente para sa bawat gigabyte ng RAM sa system.
    • Ang pagpapatupad ng CIFS client ay nagpabuti ng pagganap sa multi-channel transmission mode.
    • Ang isang bagong flag na FAN_MARK_IGNORE ay naidagdag sa subsystem ng pagsubaybay sa kaganapan sa fanotify FS upang huwag pansinin ang mga partikular na kaganapan.
    • Sa Overlayfs FS, kapag naka-mount sa ibabaw ng isang FS na may user ID mapping, ibibigay ang tamang suporta para sa mga listahan ng access control na sumusunod sa POSIX.
    • Idinagdag ang driver ng ublk block, na naglilipat ng partikular na lohika sa gilid ng proseso sa background sa espasyo ng user at gumagamit ng io_uring subsystem.
  • Mga serbisyo ng memorya at system
    • Ang mga bagong feature ay naidagdag sa subsystem ng DAMON (Data Access MONitor), na nagpapahintulot hindi lamang na subaybayan ang proseso ng pag-access sa RAM mula sa espasyo ng gumagamit, ngunit din upang maimpluwensyahan ang pamamahala ng memorya. Sa partikular, ang isang bagong module na "LRU_SORT" ay iminungkahi, na nagbibigay ng muling pagpapangkat ng mga listahan ng LRU (Least Recently Used) upang mapataas ang priyoridad ng ilang mga memory page.
    • Ang kakayahang lumikha ng mga bagong rehiyon ng memorya ay ipinatupad gamit ang mga kakayahan ng CXL (Compute Express Link) bus, na ginagamit upang ayusin ang mataas na bilis ng pakikipag-ugnayan sa pagitan ng CPU at mga memory device. Binibigyang-daan ka ng CXL na ikonekta ang mga bagong rehiyon ng memorya na ibinibigay ng mga external na memory device at gamitin ang mga ito bilang karagdagang mapagkukunan ng espasyo sa pisikal na address upang palawakin ang random access memory (DDR) o permanenteng memory (PMEM) ng system.
    • Nalutas ang mga isyu sa pagganap sa mga processor ng AMD Zen na dulot ng code na idinagdag 20 taon na ang nakakaraan upang ayusin ang isang isyu sa hardware sa ilang chipset (isang karagdagang WAIT na pagtuturo ang idinagdag upang pabagalin ang processor upang magkaroon ng oras ang chipset na pumunta sa isang idle state). Nagresulta ang pagbabago sa pinababang performance sa ilalim ng mga workload na madalas na nagpapalit-palit sa pagitan ng idle at busy na estado. Halimbawa, pagkatapos i-disable ang workaround, tumaas ang average na tbench test scores mula 32191 MB/s hanggang 33805 MB/s.
    • Ang code na may heuristics na nagsisiguro sa paglipat ng mga proseso sa pinakakaunting load na mga CPU, na isinasaalang-alang ang hinulaang pakinabang sa pagkonsumo ng enerhiya, ay inalis mula sa task scheduler. Napagpasyahan ng mga developer na ang heuristic ay hindi gaanong kapaki-pakinabang gaya ng nararapat at mas madaling alisin ito at i-migrate ang mga proseso nang walang karagdagang pagsusuri sa tuwing ang gayong paglipat ay maaaring magresulta sa mas mababang paggamit ng kuryente (halimbawa, kapag ang target na CPU ay nasa isang mas mababang antas ng kapangyarihan). Ang hindi pagpapagana ng heuristics ay humantong sa isang pagbawas sa pagkonsumo ng kuryente kapag nagsasagawa ng masinsinang mga gawain, halimbawa, sa pagsubok ng pag-decode ng video, ang pagkonsumo ng kuryente ay bumaba ng 5.6%.
    • Ang pamamahagi ng mga gawain sa mga core ng CPU sa malalaking system ay na-optimize, na nagpabuti ng pagganap para sa ilang uri ng workload.
    • Ang io_uring asynchronous I/O interface ay nag-aalok ng bagong flag, IORING_RECV_MULTISHOT, na nagbibigay-daan sa iyong gumamit ng multi-shot mode gamit ang recv() system call para magsagawa ng maraming read operation mula sa parehong socket ng network nang sabay-sabay. Sinusuportahan din ng io_uring ang paglipat ng network nang walang intermediate buffering (zero-copy).
    • Ipinatupad ang kakayahang ilagay ang mga programang BPF na nakakabit sa uprobe sa isang estado ng pagtulog. Nagdaragdag din ang BPF ng bagong iterator ksym para sa pagtatrabaho sa mga talahanayan ng simbolo ng kernel.
    • Ang hindi na ginagamit na interface ng "efivars" sa sysfs, na nilayon para sa pag-access sa mga variable ng boot ng UEFI, ay inalis na (ang efivarfs virtual FS ay ginagamit na ngayon para ma-access ang data ng EFI).
    • Ang perf utility ay may mga bagong ulat para sa pagsusuri ng mga salungatan sa lock at ang oras na ginugol ng processor sa pagpapatupad ng mga bahagi ng kernel.
    • Ang CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 na setting ay inalis, na nagpapahintulot sa kernel na mabuo sa "-O3" optimization mode. Napansin na ang mga eksperimento na may mga mode ng pag-optimize ay maaaring isagawa sa pamamagitan ng pagpasa ng mga flag sa panahon ng pagpupulong ("make KCFLAGS=-O3"), at ang pagdaragdag ng isang setting sa Kconfig ay nangangailangan ng paulit-ulit na performance profiling, na nagpapakita na ang loop unrolling na ginamit sa "-O3" mode ay nagbibigay isang benepisyo kumpara sa "-O2" na antas ng pag-optimize.
    • Ang isang interface ng debugfs ay idinagdag upang makakuha ng impormasyon tungkol sa pagpapatakbo ng mga indibidwal na "memory shrinkers" (tinatawag ang mga handler kapag walang sapat na memorya at pagpapakete ng mga istruktura ng data ng kernel upang bawasan ang kanilang pagkonsumo ng memorya).
    • Para sa mga arkitektura ng OpenRISC at LoongArch, ipinatupad ang suporta para sa PCI bus.
    • Para sa arkitektura ng RISC-V, ang extension na "Zicbom" ay ipinatupad upang pamahalaan ang mga device na may DMA na hindi cache-coherent.
  • Virtualization at Seguridad
    • Ang mekanismo ng pag-verify ng RV (Runtime Verification) ay idinagdag upang i-verify ang tamang operasyon sa mga lubos na maaasahang system na ginagarantiyang walang mga pagkabigo. Isinasagawa ang pag-verify sa runtime sa pamamagitan ng pag-attach ng mga handler sa mga trace point na sumusuri sa aktwal na pag-usad ng pagpapatupad laban sa isang paunang natukoy na reference deterministic na modelo ng makina na tumutukoy sa inaasahang pag-uugali ng system. Ang pag-verify kasama ang modelo sa runtime ay nakaposisyon bilang isang mas magaan at madaling ipatupad na paraan para sa pagkumpirma ng kawastuhan ng pagpapatupad sa mga kritikal na system, na umaayon sa mga klasikal na paraan ng pag-verify ng pagiging maaasahan. Kabilang sa mga bentahe ng RV ay ang kakayahang magbigay ng mahigpit na pag-verify nang walang hiwalay na pagpapatupad ng buong sistema sa isang wika ng pagmomodelo, pati na rin ang kakayahang umangkop na tugon sa mga hindi inaasahang kaganapan.
    • Pinagsama-samang mga bahagi ng kernel para sa pamamahala ng mga enclave batay sa teknolohiya ng Intel SGX2 (Software Guard eXtensions), na nagpapahintulot sa mga application na magsagawa ng code sa mga nakahiwalay na naka-encrypt na bahagi ng memorya, kung saan ang natitirang bahagi ng system ay may limitadong pag-access. Ang teknolohiya ng Intel SGX2 ay suportado sa Intel Ice Lake at Gemini Lake chips, at naiiba sa Intel SGX1 sa mga karagdagang tagubilin para sa dynamic na memory management ng mga enclave.
    • Para sa arkitektura ng x86, ang kakayahang ilipat ang binhi para sa generator ng pseudorandom na numero sa pamamagitan ng mga setting ng bootloader ay ipinatupad.
    • Ang SafeSetID LSM module ay mayroon na ngayong kakayahan na pamahalaan ang mga pagbabagong ginawa sa pamamagitan ng setgroups() na tawag. Ang SafeSetID ay nagbibigay-daan sa mga serbisyo ng system na ligtas na pamahalaan ang mga user nang walang dumadami na mga pribilehiyo (CAP_SETUID) at nang hindi nakakakuha ng mga pribilehiyo sa ugat.
    • Nagdagdag ng suporta para sa ARIA block cipher.
    • Ang module ng pamamahala ng seguridad na nakabase sa BPF ay nagbibigay ng kakayahang mag-attach ng mga humahawak sa mga indibidwal na proseso at mga grupo ng proseso (cgroups).
    • Ang isang mekanismo na may pagpapatupad ng watchdog ay idinagdag upang makita ang mga hang ng mga system ng bisita batay sa pagsubaybay sa aktibidad ng vCPU.
  • Subsystem ng network
    • Ang mga humahawak para sa pagbuo at pagsuri ng SYN cookies ay naidagdag sa BPF subsystem. Idinagdag din ang isang set ng mga function (kfunc) para sa pag-access at pagbabago ng estado ng mga koneksyon.
    • Ang wireless stack ay nagdagdag ng suporta para sa mekanismo ng MLO (Multi-Link Operation), na tinukoy sa detalye ng WiFi 7 at nagpapahintulot sa mga device na sabay-sabay na tumanggap at magpadala ng data gamit ang iba't ibang frequency band at channel, halimbawa, upang sabay na magtatag ng ilang mga channel ng komunikasyon sa pagitan ng isang access point sa isang client device.
    • Ang pagganap ng TLS protocol na binuo sa kernel ay napabuti.
    • Nagdagdag ng opsyon sa kernel command line na "hostname=" upang payagan ang hostname na maitakda nang maaga sa proseso ng boot, bago magsimula ang mga bahagi ng espasyo ng user.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Ang i915 (Intel) driver ay nagbibigay ng suporta para sa Intel Arc (DG2/Alchemist) A750 at A770 discrete video card. Ang paunang pagpapatupad ng suporta para sa Intel Ponte Vecchio (Xe-HPC) at Meteor Lake GPU ay iminungkahi. Patuloy na sinusuportahan ng trabaho ang platform ng Intel Raptor Lake.
    • Ang driver ng amdgpu ay patuloy na nagbibigay ng suporta para sa mga platform ng AMD RDNA3 (RX 7000) at CDNA (Instinct).
    • Inayos muli ng driver ng Nouveau ang support code para sa NVIDIA nv50 GPU display engine.
    • Nagdagdag ng bagong logicvc DRM driver para sa LogiCVC screen.
    • Ang v3d driver (para sa Broadcom Video Core GPU) ay sumusuporta sa Raspberry Pi 4 boards.
    • Nagdagdag ng suporta para sa Qualcomm Adreno 619 GPU sa msm driver.
    • Nagdagdag ng suporta para sa ARM Mali Valhall GPU sa Panfrost driver.
    • Nagdagdag ng paunang suporta para sa mga processor ng Qualcomm Snapdragon 8cx Gen3 na ginagamit sa mga laptop ng Lenovo ThinkPad X13s.
    • Nagdagdag ng mga sound driver para sa mga platform ng AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake at Mediatek MT8186.
    • Nagdagdag ng suporta para sa Intel Habana Gaudi 2 machine learning accelerators.
    • Nagdagdag ng suporta para sa ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3.

Kasabay nito, ang Latin American Free Software Foundation ay bumuo ng isang bersyon ng ganap na libreng kernel 6.0 - Linux-libre 6.0-gnu, na na-clear sa mga elemento ng firmware at mga driver na naglalaman ng mga di-libreng bahagi o mga seksyon ng code, ang saklaw nito ay limitado ng tagagawa. Hindi pinapagana ng bagong release ang paggamit ng mga blobs sa CS35L41 HD-audio driver at ang UCSI driver para sa STM32G0 microcontrollers. Nalinis na ang mga DTS file para sa Qualcomm at MediaTek chips. Ang hindi pagpapagana ng mga blobs sa MediaTek MT76 driver ay muling ginawa. Na-update na blob cleaning code sa mga driver at subsystem ng AMDGPU, Adreno, Tegra VIC, Netronome NFP at Habanalabs Gaudi2. Huminto sa paglilinis ng VXGE driver, na inalis sa kernel.

Pinagmulan: opennet.ru

Magdagdag ng komento