Linux Kernel lage 5.7

Apre de mwa nan devlopman, Linus Torvalds entwodwi lage nwayo Linux 5.7. Pami chanjman ki pi remakab yo: yon nouvo aplikasyon sistèm fichye exFAT, yon modil bareudp pou kreye tinèl UDP, pwoteksyon ki baze sou otantifikasyon pointeur pou ARM64, kapasite pou tache pwogram BPF ak moun kap okipe LSM, yon nouvo aplikasyon Curve25519, yon divizyon. detektè fèmen, BPF konpatibilite ak PREEMPT_RT, retire limit la sou gwosè liy 80 karaktè nan kòd la, pran an kont endikatè tanperati CPU nan pwogramasyon an travay, kapasite nan sèvi ak klonaj () anjandre pwosesis nan yon lòt cgroup, pwoteksyon kont ekri. nan memwa lè l sèvi avèk userfaulfd.

Nouvo vèsyon an gen ladan 15033 repare soti nan 1961 devlopè,
gwosè patch - 39 MB (chanjman ki afekte 11590 fichye, ajoute 570560 liy kòd,
297401 ranje retire). Apeprè 41% nan tout prezante nan 5.7
chanjman yo gen rapò ak chofè aparèy, apeprè 16% nan chanjman yo genyen
atitid anvè ajou kòd espesifik nan achitekti pyès ki nan konpitè, 13%
ki gen rapò ak pile rezo a, 4% nan sistèm dosye ak 4% nan entèn yo
subsistèm nwayo.

Prensipal la inovasyon:

  • Disk Subsystem, I/O ak File Systems
    • Te ajoute nouvo aplikasyon chofè exFAT, te fonde baze sou baz kòd aktyèl "sdfat" (2.x) Samsung devlope pou smartphones Android li yo. Chofè a te ajoute deja nan nwayo a te baze sou eritaj Samsung kòd (vèsyon 1.2.9) e li te apeprè 10% dèyè nouvo chofè a nan pèfòmans. Se pou nou sonje ke ajoute sipò exFAT nan nwayo a te vin posib apre Microsoft pibliye spesifikasyon piblik yo ak te fè patant exFAT disponib pou itilize gratis sou Linux.
    • Btrfs aplike yon nouvo lòd ioctl() - BTRFS_IOC_SNAP_DESTROY_V2, ki pèmèt ou efase yon sou-seksyon pa idantifyan li yo. Yo bay sipò konplè pou klonaj ekstansyon inline yo. Kantite pwen anile pou operasyon redistribisyon yo te elaji, sa ki te redwi tan datant lè yo egzekite kòmandman 'anile balans' la. Detèminasyon backlinks nan limit yo te akselere (pa egzanp, tan ekzekisyon script tès la diminye soti nan yon èdtan a plizyè minit). Te ajoute kapasite nan tache limit fichye nan chak inode nan yon pye bwa. Yo te reamenaje konplo bloke yo itilize lè w ap ekri sou patisyon yo epi lè yo ekskli NOCOW. Amelyore efikasite nan ekzekisyon fsync pou chenn.
    • XFS te amelyore metadata tcheke ak fsck pou patisyon aktif. Yo te pwopoze yon bibliyotèk pou rebati estrikti btree, ki nan fiti yo pral itilize pou retravay xfs_repair epi aplike posibilite pou rekiperasyon san yo pa demonte patisyon an.
    • Sipò eksperimantal pou mete yon patisyon swap nan depo SMB3 yo te ajoute nan CIFS. Aplike ekstansyon POSIX nan readdir, ki defini nan spesifikasyon SMB3.1.1. Amelyore pèfòmans ekriti pou paj 64KB lè kachèt = mòd ​​strik yo aktive epi yo itilize vèsyon pwotokòl 2.1+.
    • FS EXT4 te transfere soti nan bmap ak iopoll nan lè l sèvi avèk iomap.
    • F2FS bay sipò si ou vle pou konpresyon done lè l sèvi avèk algorithm zstd la. Pa default, yo itilize algorithm LZ4 pou konpresyon. Te ajoute sipò pou kòmandman "chattr -c commit". Montre ekspozisyon tan yo bay. Te ajoute ioctl F2FS_IOC_GET_COMPRESS_BLOCKS pou jwenn enfòmasyon sou kantite blòk konprese yo. Te ajoute konpresyon done pwodiksyon atravè statx.
    • Sistèm fichye Ceph la te ajoute kapasite pou fè lokalman operasyon kreyasyon ak efase fichye (dekonekte) san yo pa tann yon repons nan men sèvè a (k ap travay nan mòd asynchrone). Chanjman an, pou egzanp, ka siyifikativman amelyore pèfòmans lè w ap kouri sèvis piblik rsync la.
    • Kapasite pou itilize virtiofs kòm yon sistèm fichye wo nivo yo te ajoute nan OVERLAYFS.
    • Reekri kòd travèse chemen an nan VFS, kòd parsing lyen senbolik yo te retravay, epi travèse pwen mòn yo te inifye.
    • Nan subsystem a scsi itilizatè ki pa gen privilèj pèmèt egzekisyon kòmandman ZBC.
    • Nan dm_writecache aplike kapasite nan piti piti netwaye kachèt la ki baze sou paramèt max_age a, ki fikse lavi maksimòm yon blòk.
    • Nan dm_integrity te ajoute sipò pou "jete" operasyon an.
    • Nan null_blk te ajoute sipò pou sibstitisyon erè pou simulation echèk pandan tès la.
    • Te ajoute kapasite pou voye notifikasyon udev sou chanjman gwosè aparèy blòk yo.
  • Sou-sistèm rezo
    • Netfilter enkli chanjman, siyifikativman akselere pwosesis la nan lis match gwo (nftables ansanm), ki mande pou tcheke yon konbinezon de subnets, pò rezo, pwotokòl ak adrès MAC.
      Optimize prezante nan nft_set_pipapo (PIle PAcket POlicies) modil la, ki rezoud pwoblèm nan matche sa ki nan yon pake ak chenn eta jaden abitrè yo itilize nan règ filtraj, tankou IP ak chenn pò rezo (nft_set_rbtree ak nft_set_hash manipile matche entèval ak refleksyon dirèk nan valè yo). ). Vèsyon pipapo vektorize lè l sèvi avèk enstriksyon AVX256 2-bit sou yon sistèm ak yon processeur AMD Epyc 7402 te montre yon ogmantasyon pèfòmans 420% lè analize 30 mil dosye ki gen ladan konbinezon pò-pwotokòl. Ogmantasyon an lè w konpare yon konbinezon yon sous-rezo ak yon nimewo pò lè w analize 1000 dosye yo te 87% pou IPv4 ak 128% pou IPv6.

    • Te ajoute bareudp modil, ki pèmèt ou ankapsile divès pwotokòl L3, tankou MPLS, IP ak NSH, nan yon tinèl UDP.
    • Entegrasyon konpozan MPTCP (MultiPath TCP), yon ekstansyon pwotokòl TCP pou òganize operasyon yon koneksyon TCP ak livrezon pakè ansanm sou plizyè wout atravè diferan koòdone rezo ki mare nan diferan adrès IP, kontinye.
    • Te ajoute sipò pou mekanis akselerasyon pyès ki nan konpitè pou encapsulation ankadreman Ethernet nan 802.11 (Wi-Fi).
    • Lè w ap deplase yon aparèy soti nan yon espas non rezo a nan yon lòt, dwa aksè ak pwopriyetè dosye korespondan yo nan sysfs yo ajiste.
    • Te ajoute kapasite pou itilize drapo SO_BINDTODEVICE pou itilizatè ki pa rasin yo.
    • Yo aksepte twazyèm pati patch yo, konvèti zouti ethtool soti nan ioctl() pou itilize koòdone netlink la. Nouvo koòdone a fè li pi fasil pou ajoute ekstansyon, amelyore manyen erè, pèmèt notifikasyon yo dwe voye lè eta chanje, senplifye entèraksyon ki genyen ant nwayo a ak espas itilizatè a, epi redwi kantite lis nonmen ki bezwen senkronize.
    • Te ajoute kapasite pou itilize akseleratè pyès ki nan konpitè espesyal pou fè operasyon swiv koneksyon.
    • Nan netfilter te ajoute yon zen pou konekte klasifikasyon nan pake sortan (egress), ki konplete zen ki te deja prezan pou pake fèk ap rantre (ingress).
  • Virtualization ak sekirite
    • Te ajoute kenkayri aplikasyon otantifikasyon pointeur (Pointer Otantifikasyon), ki sèvi ak espesyalize enstriksyon CPU ARM64 pou pwoteje kont atak lè l sèvi avèk teknik pwogramasyon ki oryante pou retounen (ROP), kote atakè a pa eseye mete kòd li nan memwa, men li opere sou moso enstriksyon machin ki deja disponib nan bibliyotèk chaje, ki fini. ak yon enstriksyon retounen kontwòl. Sekirite se desann nan itilize siyati dijital pou verifye adrès retounen nan nivo nwayo a. Se siyati a ki estoke nan moso tèt yo ki pa itilize nan konsèy nan tèt li. Kontrèman ak aplikasyon lojisyèl, kreyasyon ak verifikasyon siyati dijital yo fèt lè l sèvi avèk enstriksyon CPU espesyal.
    • Te ajoute kapasite pou pwoteje yon zòn memwa kont ekri lè l sèvi avèk apèl sistèm userfaultfd(), ki fèt pou okipe defo paj (aksè nan paj memwa ki pa alokasyon) nan espas itilizatè. Lide a se sèvi ak userfaultfd() tou de pou detekte vyolasyon aksè nan paj ki make kòm pwoteksyon ekri ak rele yon moun kap okipe sa yo ki ka reponn a tantativ ekri sa yo (pa egzanp, okipe chanjman pandan kreyasyon an nan snapshots ap viv nan pwosesis k ap kouri, eta. kaptire lè jete fatra memwa sou disk, mete ann aplikasyon memwa pataje, swiv chanjman nan memwa). Fonksyonalite ekivalan lè l sèvi avèk mprotect() an konjonksyon avèk siyal siyal SIGSEGV, men li travay notables pi vit.
    • SELinux te obsolète paramèt "checkreqprot", ki pèmèt ou enfim chèk pwoteksyon memwa lè w ap trete règ yo (pèmèt itilizasyon zòn memwa ègzekutabl yo, kèlkeswa règ yo espesifye nan règ yo). Lyen senbolik Kernfs yo gen dwa eritye kontèks anyè paran yo.
    • Konpozisyon an enkli modil KRSI, ki pèmèt ou tache pwogram BPF nan nenpòt kwòk LSM nan nwayo a. Chanjman an pèmèt ou kreye modil LSM (Linux Security Module) nan fòm pwogram BPF pou rezoud pwoblèm odit ak kontwòl aksè obligatwa.
    • Te pote soti Optimize pèfòmans /dev/random pa gwoup valè CRNG olye pou yo rele enstriksyon RNG endividyèlman. Amelyore pèfòmans getrandom ak /dev/random sou sistèm ARM64 bay enstriksyon RNG.
    • Aplikasyon yon koub eliptik Curve25519 ranplase pou opsyon ki soti nan bibliyotèk la HACL, pou ki bay prèv matematik verifikasyon fyab fòmèl.
    • Te ajoute mekanis pou enfòme sou paj memwa gratis. Sèvi ak mekanis sa a, sistèm envite yo ka transmèt enfòmasyon sou paj ki pa itilize ankò nan sistèm lame a, epi lame a ka repran done paj yo.
    • Nan vfio/pci te ajoute sipò pou SR-IOV (Single-Root I/O Virtualization).
  • Sèvis memwa ak sistèm
    • Soti nan 80 a 100 karaktè ogmante limitasyon sou longè maksimòm liy nan tèks sous yo. An menm tan an, devlopè yo toujou rekòmande pou yo rete nan 80 karaktè pou chak liy, men sa a se pa yon limit difisil ankò. Anplis de sa, depase limit gwosè liy lan pral lakòz kounye a yon avètisman bati sèlman si checkpatch la ap kouri ak opsyon '--strict' la. Chanjman an pral fè li posib pa distrè devlopè yo pa manipilasyon ak espas epi santi w pi lib lè w aliye kòd, osi byen ke pral anpeche rupture liy twòp, twoublan konpreyansyon kòd ak rechèch.
    • Te ajoute sipò pou mòd bòt melanje EFI, ki pèmèt ou chaje yon nwayo 64-bit soti nan firmwèr 32-bit ki kouri sou yon CPU 64-bit san yo pa itilize yon bootloader espesyalize.
    • Enkli sistèm pou idantifye ak debogaj kadna fann ("fann fèmen"), ki rive lè w gen aksè nan done ki pa aliye nan memwa akòz lefèt ke lè w ap egzekite yon enstriksyon atomik, done yo kwaze de liy kachèt CPU. Sa yo bloke rezilta nan yon frape pèfòmans enpòtan (1000 sik pi dousman pase yon operasyon atomik sou done ki tonbe nan yon liy kachèt). Tou depan de "split_lock_detect" paramèt bòt la, nwayo a ka detekte kadna sa yo sou vole epi bay avètisman oswa voye yon siyal SIGBUS nan aplikasyon an ki lakòz fèmen an.
    • Planifikatè travay la bay swiv detèktè tanperati (Presyon tèmik) ak aplike pran an kont surchof lè mete travay yo. Sèvi ak estatistik yo bay yo, gouvènè tèmik la ka ajiste frekans maksimòm CPU a lè sichofe, ak pwogramasyon travay la kounye a pran an kont rediksyon nan pouvwa informatique akòz yon rediksyon konsa nan frekans lè pwograme travay yo kouri (anvan, pwogramè a reponn a chanjman. nan frekans ak yon sèten reta, pou kèk tan pran desizyon ki baze sou sipozisyon gonfle sou resous enfòmatik ki disponib).
    • Planifikatè travay la gen ladann endikatè invariant Suivi chaj, ki pèmèt ou kòrèkteman estime chay la, kèlkeswa frekans aktyèl CPU opere. Chanjman an pèmèt ou pi byen predi konpòtman an nan travay nan kondisyon chanjman dinamik nan vòltaj ak frekans CPU. Pou egzanp, yon travay ki konsome 1/3 nan resous CPU yo nan 1000 MHz pral konsome 2/3 nan resous yo lè frekans lan desann nan 500 MHz, ki te deja kreye yon fo sipozisyon ke li te kouri nan kapasite plen (sa vle di travay parèt. pi gwo nan pwogramè a sèlman pa diminye frekans lan, ki te mennen nan desizyon kòrèk yo te pran nan gouvènè schedutil cpufreq).
    • Intel P-state chofè a, ki responsab pou chwazi mòd pèfòmans yo, te chanje pou itilize scheduleutil.
    • Kapasite pou itilize subsistèm BPF lè nwayo a ap kouri an tan reyèl (PREEMPT_RT) te aplike. Anvan sa, lè PREEMPT_RT te aktive, BPF te oblije être désactivé.
    • Yo te ajoute yon nouvo kalite pwogram BPF - BPF_MODIFY_RETURN, ki ka tache ak yon fonksyon nan nwayo a epi chanje valè fonksyon sa a retounen.
    • Te ajoute opòtinite Sèvi ak apèl sistèm clone3() pou kreye yon pwosesis nan yon cgroup ki diferan de cgroup paran an, ki pèmèt pwosesis paran an aplike restriksyon ak pèmèt kontablite imedyatman apre anjandre yon nouvo pwosesis oswa fil. Pou egzanp, yon manadjè sèvis ka dirèkteman asiyen nouvo sèvis nan gwoup c separe, ak nouvo pwosesis, lè yo mete yo nan gwoup c "jele", yo pral imedyatman sispann.
    • nan Kbuild te ajoute sipò pou varyab anviwònman "LLVM=1" pou chanje nan bwat zouti Clang/LLVM lè w ap bati nwayo a. Kondisyon pou vèsyon binutils yo te ogmante (2.23).
    • Yon seksyon /sys/kernel/debug/kunit/ te ajoute nan debugfs ak rezilta tès kunit yo.
    • Te ajoute paramèt bòt nwayo pm_debug_messages (analòg ak /sys/power/pm_debug_messages), ki pèmèt pwodiksyon enfòmasyon debug sou operasyon sistèm jesyon pouvwa a (itil lè debogaj pwoblèm ak ibènasyon ak mòd sibstiti).
    • Nan koòdone I/O asynchrone io_uring sipò te ajoute épissure () и seleksyon tanpon atomik.
    • Amelyore cgroup pwofil lè l sèvi avèk zouti perf la. Précédemment, perf te kapab sèlman pwofil travay nan yon cgroup espesifik epi li pa t 'kapab chèche konnen ki cgroup echantiyon aktyèl la ki dwe. perf kounye a rekipere enfòmasyon cgroup pou chak echantiyon, sa ki pèmèt ou pwofil plis pase yon cgroup epi aplike klasman pa
      cgroup nan rapò.

    • cgroupfs, yon pseudo-FS pou jere cgroups, te ajoute sipò pou atribi pwolonje (xattrs), ak ki, pou egzanp, ou ka kite plis enfòmasyon pou moun kap okipe yo nan espas itilizatè.
    • Nan kontwolè memwa cgroup te ajouteak sipò pou pwoteksyon rekursif nan valè "memory.low" la, ki kontwole kantite minimòm RAM yo bay manm gwoup la. Lè w ap monte yon yerachi cgroup ak opsyon "memory_recursiveprot", valè "memory.low" ki fikse pou nœuds ki pi ba yo pral otomatikman distribye nan tout nœuds timoun yo.
    • Te ajoute Uacce (Inifye/Itilizatè-espas-aksè-entansyon Accelerator Framework) kad pou pataje adrès vityèl (SVA, Shared Virtual Addressing) ant CPU a ak aparèy periferik, ki pèmèt akseleratè pyès ki nan konpitè jwenn aksè nan estrikti done nan CPU prensipal la.
  • Achitekti pyès ki nan konpitè
    • Pou achitekti ARM a, se kapasite nan cho-chache memwa aplike.
    • Pou achitekti RISC-V, sipò pou branche cho ak retire CPU (CPU hotplug) te ajoute. Pou RISC-V 32-bit, eBPF JIT aplike.
    • Yo te retire kapasite pou itilize sistèm ARM 32-bit pou kouri anviwònman envite KVM.
    • Retire aplikasyon NUMA "enbesil" pou achitekti s390, pou ki pa gen okenn ka itilize pou reyalize amelyorasyon pèfòmans.
    • Pou ARM64, te ajoute sipò pou ekstansyon AMU (Activity Monitors Unit), ki defini nan ARMv8.4 epi ki bay kontè pèfòmans yo itilize pou kalkile faktè koreksyon echèl frekans nan pwogramasyon travay la.
  • Ekipman
    • Te ajoute sipò pou aparèy vDPA ki sèvi ak yon kanal echanj done ki konfòm ak espesifikasyon virtio. Aparèy vDPA yo ka swa fizikman konekte ekipman oswa lojisyèl imite aparèy vityèl.
    • Nan subsistèm GPIO la parèt yon nouvo lòd ioctl() pou kontwole chanjman, ki pèmèt ou enfòme pwosesis la sou chanjman nan eta nenpòt liy GPIO. Kòm yon egzanp lè l sèvi avèk nouvo lòd la pwopoze gpio-watch sèvis piblik.
    • Nan i915 DRM chofè a pou kat videyo Intel enkli ladan li sipò defo pou chips Tigerlake ("Gen12") ak te ajoute sipò inisyal pou kontwòl ekleraj OLED. Sipò amelyore pou Ice Lake, Elkhart Lake, Baytrail ak chips Haswell.
    • Nan chofè a amdgpu te ajoute kapasite pou chaje firmwèr nan chip USBC pou ASIC. Amelyore sipò pou chips AMD Ryzen 4000 "Renoir". Gen kounye a sipò pou kontwole panno OLED. Bay ekspozisyon estati firmwèr nan debugfs.
    • Kapasite pou itilize OpenGL 4 nan sistèm envite yo te ajoute nan chofè a DRM vmwgfx pou sistèm Virtualization VMware (anvan OpenGL 3.3 te sipòte).
    • Te ajoute nouvo tidss chofè DRM pou sistèm ekspozisyon platfòm TI Keystone.
    • Te ajoute chofè pou panno LCD: Feixin K101 IM2BA02, Samsung s6e88a0-ams452ef01, Novatek NT35510, Elida KD35T133, EDT, NewEast Optoelectronics WJFH116008A, Rocktech RK101II01D350D54004, FridXNUMXDXNUMX
    • Pou sistèm jesyon pouvwa a te ajoute sipò pou platfòm Intel Jasper Lake (JSL) ki baze sou Atom.
    • Te ajoute sipò pou laptop Pinebook Pro ki baze sou Rockchip RK3399, Pine64 PineTab tablèt ak smartphone pinephone baze sou Allwinner A64.
    • Te ajoute sipò pou nouvo kodèk odyo ak chips:
      Amlogic AIU, Amlogic T9015, Texas Instruments TLV320ADCX140, Realtek RT5682, ALC245, Broadcom BCM63XX I2S, Maxim MAX98360A, Presonus Studio 1810c, MOTU MicroBook IIc.

    • Te ajoute sipò pou tablo ARM ak platfòm Qualcomm Snapdragon 865 (SM8250), IPQ6018, NXP i.MX8M Plus, Kontron "sl28", 11 opsyon tablo i.MX6 TechNexion Pico, twa nouvo opsyon Toradex Colibri, Samsung S7710 Galaxy Xcover 2 ki baze sou ST. -Ericsson u8500, DH Elektwonik DHCOM SoM ak PDK2, Renesas M3ULCB, Hoperun HiHope, Linutronix Testbox v2, PocketBook Touch Lux 3.

Sous: opennet.ru

Add nouvo kòmantè