Linux kernelaren bertsioa 5.9

Bi hilabeteko garapenaren ondoren, Linus Torvalds aurkeztu nukleoa askatzea Linux 5.9. Aldaketa aipagarrienen artean: jabedun moduluetatik GPL moduluetara sinboloen inportazioa mugatzea, FSGSBASE prozesadorearen instrukzioa erabiliz testuinguru-aldaketa eragiketak bizkortzea, nukleoaren irudien konpresioaren laguntza Zstd erabiliz, nukleoan harien lehentasuna birlantzea, PRPrako euskarria. (Paraleloko erredundantzia-protokoloa), banda-zabalera jakitun den programazioa epe-planifikatzailean, memoria-orrien prebentzio-paketatzea, gaitasun-marka CAP_CHECKPOINT_RESTOR, close_range() sistema-deia, dm-crypt errendimenduaren hobekuntzak, 32 biteko Xen PV gonbidatuentzako kodea kentzea, lauza memoria berria kudeaketa-mekanismoa, "erreskate" aukera Btrfs-en, lineako enkriptatzeko laguntza ext4 eta F2FS-en.

Bertsio berriak 16074ko garatzaileen 2011 konponketa biltzen ditu,
adabakiaren tamaina - 62 MB (aldaketak 14548 fitxategiri eragin die, 782155 kode lerro gehitu dira, 314792 lerro ezabatu). 45an aurkeztutako guztien %5.9 inguru
aldaketak gailu kontrolatzaileekin lotuta daude, aldaketen %15 gutxi gorabehera
Hardware-arkitekturari dagokion kodea eguneratzeko jarrera, %13.
sareko pilari lotutakoak, %3 fitxategi-sistemei eta %3 barnekoak
nukleoaren azpisistemak.

Nagusia berrikuntzak:

  • Memoria eta sistema zerbitzuak
    • Estu GPL geruzak erabiltzearen aurkako babesa kontrolatzaile jabedunak GPL lizentziapean dauden moduluetarako soilik esportatutako nukleoko osagaiekin lotzeko. TAINT_PROPRIETARY_MODULE bandera heredatzen da orain bandera hau duten moduluetatik ikurrak inportatzen dituzten modulu guztietan. GPL modulu bat GPL ez den modulu batetik ikurrak inportatzen saiatzen bada, orduan GPL modulu horrek TAINT_PROPRIETARY_MODULE etiketa heredatuko du eta ezin izango ditu GPL lizentziadun moduluentzat soilik dauden nukleoaren osagaiak sartu, nahiz eta moduluak aurretik inportatu dituen ikurrak. "gplonly" kategoria. Alderantzizko blokeoa (EXPORT_SYMBOL_GPL inportatu zuten moduluetan EXPORT_SYMBOL_GPL soilik esportatzea), kontrolatzaile jabedunen lana hautsi dezakeena, ez da inplementatzen (modulu jabedunaren bandera bakarrik heredatzen da, baina ez GPL loturak).
    • Gehituta kcompactd motorra euskarria memoria-orriak aurrez ontziratu atzeko planoan nukleorako eskuragarri dauden memoria-orri handien kopurua handitzeko. Aurretiazko kalkuluen arabera, atzeko planoko ontziratzeak, gutxieneko gastuen kostuarekin, atzerapenak 70-80 aldiz murrizten ditu memoria-orri handiak (orrialde erraldoiak) esleitzerakoan, aurretik erabilitako ontziratze-mekanismoarekin alderatuta, beharra dagoenean abiarazitakoa (eskaeran). ). kcompactd-ek emango duen kanpoko zatiketaren mugak ezartzeko, sysctl vm.compaction_proactiveness gehitu da.
    • Gehituta Nukleoaren irudien konpresioaren laguntza algoritmoa erabiliz zstandard (zstd).
    • Prozesadorearen argibideetarako euskarria ezarri da x86 sistemetan FSGSBASE, erabiltzaileen espaziotik FS/GS erregistroen edukia irakurtzeko eta aldatzeko aukera ematen duena. Nukleoan, FSGSBASE testuingurua aldatzeko eragiketak bizkortzeko erabiltzen da GSBASErako beharrezkoak ez diren MSR idazketa eragiketak ezabatuz, eta erabiltzaileen espazioan FS/GS aldatzeko beharrezkoak ez diren sistema-deiak saihesten ditu.
    • Gehituta "allow_writes" parametroari esker, prozesadorearen MSR erregistroetan aldaketak debekatu ditzakezu erabiltzaile-espaziotik eta erregistro horien edukietarako sarbidea mugatzeko eragiketak irakurtzeko, MSR aldatzeak arazoak sor ditzake eta. Lehenespenez, idazketa oraindik ez dago desgaituta, eta MSR-ren aldaketak erregistroan islatzen dira, baina etorkizunean sarbide lehenetsia irakurtzeko modura aldatzea aurreikusi da.
    • I/O interfaze asinkronora io_uring Nukleoaren hariak behar ez dituzten buffer asinkronoetarako laguntza osoa gehitu da. Etorkizuneko bertsio batean grabatzeko laguntza espero da.
    • I/O programatzailearen epean ezarrita gaitasunean oinarritutako plangintza, ahalbidetuz sistema asimetrikoei buruzko erabaki zuzenak hartzea, hala nola ARMan oinarritutako sistemei buruz DynamIQ eta big.LITTLE, energetikoki eraginkorrak diren CPU nukleo indartsuak eta eraginkorrak ez direnak txip batean. Bereziki, modu berriak programazio-desegokiak saihesteko aukera ematen du PUZaren nukleo motel batek zeregin bat garaiz betetzeko baliabide egokiak ez dituenean.
    • Energia-kontsumoaren eredua nukleoan (Energy Model framework) orain dago deskribatzen du PUZaren energia-kontsumoaren portaera ez ezik, gailu periferikoak ere estaltzen ditu.
    • close_range() sistema-deia inplementatu da prozesu bati irekitako fitxategi-deskribatzaile sorta osoa aldi berean ixteko.
    • Testu kontsolaren eta fbcon kontrolatzailearen ezarpenetik kodea kendu da, testua programatikoki atzera egiteko (CONFIG_VGACON_SOFT_SCROLLBACK) aukera ematen duena VGA testu moduko bideo-memoria baino gehiago.
    • Berriz landua Nukleoko hariei lehentasunak esleitzeko algoritmoa. Aukera berriak koherentzia hobea eskaintzen du nukleoko azpisistema guztietan denbora errealeko zereginei lehentasunak esleitzerakoan.
    • Sysctl gehitu da sched_uclamp_util_min_rt_default denbora errealeko zereginetarako CPU-ren hobekuntza-ezarpenak kontrolatzeko (adibidez, denbora errealeko atazen portaera alda dezakezu joan-etorria bateria aurrezteko edo sistema mugikorretarako).
    • Prestaketak egin dira Orrialde Erraldoi Transparenten teknologiaren laguntza ezartzeko orriaren cachean.
    • Fanotify motorrak FAN_REPORT_NAME eta FAN_REPORT_DIR_FID marka berriak inplementatzen ditu gurasoen izena eta FID informazio esklusiboaren berri emateko, direktorioko elementuak eta direktoriokoak ez diren objektuak sortzeko, ezabatzeko edo mugitzeko gertaerak gertatzen direnean.
    • cgroupentzat ezarrita lauza memoria kontroladore berri bat, zeina nabarmentzen dena slaben kontabilitatea memoria-orrialdeen mailatik nukleo-objektuen mailara eramateagatik, eta horrek lauza-orriak cgroup ezberdinetan partekatzea posible egiten du, cgroup bakoitzerako slaben cache bereiziak esleitu beharrean. Proposatutako ikuspegiari esker, lauza erabiltzeko eraginkortasuna areagotzea, lauzarako erabiltzen den memoriaren tamaina % 30-45ean murriztea, nukleoaren memoria-kontsumo orokorra nabarmen murriztea eta memoria zatikatzea murriztea ahalbidetzen du.
    • Soinu azpisisteman ALSA ΠΈ USB pila, ren arabera duela gutxi onartua Linux nukleoan terminologia inklusiboaren erabilerari buruzko gomendioak; politikoki okerrak diren terminoak garbitu ziren. Kodea "esklabo", "maisu", "zerrenda beltza" eta "zerrenda zuria" hitzetatik garbitu da.
  • Birtualizazioa eta segurtasuna
    • Nukleoa Clang konpilatzailea erabiliz eraikitzean agertu pilan gordetako aldagai guztien hasiera automatikoa (CONFIG_INIT_STACK_ALL_ZERO) konfiguratzeko gaitasuna (eraikitzean, zehaztu β€œ-ftrivial-auto-var-init=zero”).
    • Seccomp azpisisteman, erabiltzailearen espazioan prozesuak kontrolatzeko modua erabiltzean, gehitu aukera fitxategi-deskribatzaileak kontrolatutako prozesuan ordezkatzea, fitxategi-deskribatzaileak sortzea dakarten sistema-deiak guztiz emulatzeko. Funtzionalitatea behar da Chrome-rako edukiontzi isolatuetan eta sandbox inplementazioetan.
    • Xtensa eta csky arkitekturarako, seccomp azpisistema erabiliz sistema-deiak mugatzeko laguntza gehitu da. Xtensa-rako, auditoretza-mekanismorako euskarria ere ezartzen da.
    • Gehituta gaitasun-marka berria CAP_CHECKPOINT_RESTORE, prozesuen egoera izoztearekin eta leheneratzearekin lotutako gaitasunetarako sarbidea emateko aukera ematen duena, pribilegio gehigarririk transferitu gabe.
    • GCC 11-k behar dituzun funtzio guztiak eskaintzen ditu
      KCSAN (Kernel Concurrency Sanitizer) arazketa-tresna, nukleoaren barruan lasterketa-baldintzak dinamikoki detektatzeko diseinatua. Horrela, KCSAN orain GCCn eraikitako nukleoekin erabil daiteke.

    • AMD Zen eta CPU eredu berrienetarako gehitu P2PDMA teknologiarako euskarria, PCI busera konektatuta dauden bi gailuen memoriaren artean datu-transferentzia zuzena egiteko DMA erabiltzeko aukera ematen duena.
    • Latentzia murrizteko aukera ematen duen modu bat gehitu da dm-crypt-i, datu kriptografikoak prozesatzea lan-ilarak erabili gabe. Modu hau ere beharrezkoa da funtzionamendu zuzena izateko zonakatuta bloke-gailuak (sekuentzialki idatzi behar diren eremuak dituzten gailuak, bloke-talde osoa eguneratuz). Lan egin da dm-crypt-en errendimendua handitzeko eta latentzia murrizteko.
    • Kodea kendu da Xen hipervisorea exekutatzen duten parabirtualizazio moduan exekutatzen diren 32 biteko gonbidatuei laguntzeko. Sistema horien erabiltzaileek 64 biteko kernelak erabiltzera pasatu beharko lukete gonbidatuen inguruneetan edo birtualizazio modu osoa (HVM) edo konbinatua (PVH) erabili beharrean, parabirtualizazioa (PV) inguruneak exekutatzeko.
  • Disko azpisistema, I/O eta fitxategi sistemak
    • Btrfs fitxategi-sisteman ezarrita beste berreskuratzeko aukera guztietarako sarbidea bateratzen duen "erreskate" muntatzeko aukera. "alloc_start" eta "subvolrootid" aukeren laguntza kendu da, eta "inode_cache" aukera zaharkituta geratu da. Errendimenduaren optimizazioak egin dira, batez ere fsync() eragiketen exekuzioa bizkortuz. Gehituta CRC32c ez den beste kontrol mota batzuk erabiltzeko gaitasuna.
    • Gehituta lineako enkriptatzea (Inline Encryption) ext4 eta F2FS fitxategi-sistemetan erabiltzeko gaitasuna, "inlinecrypt" muntatzeko aukera ematen den gaitzeko. Lineako enkriptatze moduak unitateko kontrolagailuan integratutako enkriptatze-mekanismoak erabiltzeko aukera ematen du, sarrera/irteera modu gardenean enkriptatzen eta deszifratzen dituena.
    • XFSn bermatuta inodoa berrezarri (hustu) modu guztiz asinkronoan, prozesuak blokeatzen ez dituen memoria garbitzeko eragiketa bat egitean. Aspaldiko kuota arazo bat konpondu da, muga bigunen eta inodoen mugaren abisuak gaizki jarraitzea eragiten zuena. DAX euskarriaren ezarpen bateratua ext4 eta xfs-etarako.
    • Ext4n ezarrita aldez aurretik kargatu blokeen esleipenaren bit-mapak. Hasieratu gabeko taldeen eskaneatzea mugatzearekin batera, optimizazioak partizio oso handiak muntatzeko behar den denbora murriztu zuen.
    • F2FSn gehitu du ioctl F2FS_IOC_SEC_TRIM_FILE, TRIM/baztertu komandoak erabiltzeko aukera ematen dizu fitxategi batean zehaztutako datuak fisikoki berrezartzeko, adibidez, sarbide-gakoak ezabatzeko, diskoan hondar datuak utzi gabe.
      F2FSn ere gehitu du GC_URGENT_LOW zabor bilketa modu berria, erasokorrago funtzionatzen duena, zabor-biltzailea abiarazi aurretik inaktibo egoeran egotearen egiaztapen batzuk ezabatuz.

    • bcache-n, hedapenen bucket_size 16 bitera izatetik 32 bitetara handitu da gailuen cacheak gaitzeko prestatzeko.
    • UFS kontrolagailuek emandako hardware-enkriptetan oinarritutako lineako enkriptatzea erabiltzeko gaitasuna gehitu da SCSI azpisistemara (Flash Biltegiratze Unibertsala).
    • Nukleoaren komando-lerroko "debugfs" parametro berri bat gehitu da, izen bereko pseudo-FSren erabilgarritasuna kontrolatzeko aukera ematen duena.
    • NFSv4.2 bezeroak fitxategi-atributu hedatuak (xattr) onartzen ditu.
    • Dm-hautsean gehitu du diskoan identifikatutako bloke txar guztien zerrenda aldi berean bistaratzeko interfazea ("dmsetup message dust1 0 listbadblocks").
    • Md/raid5-erako, /sys/block/md1/md/stripe_size parametroa gehitu da STRIPE blokearen tamaina konfiguratzeko.
    • NVMe biltegiratze gailuetarako gehitu unitateen zonifikazio-aginduetarako (ZNS, NVM Express Zoned Namespace) euskarria, eta horrek biltegiratze-espazioa bloke-taldeak osatzen dituzten zonaldeetan banatzeko aukera ematen du, unitatean datuak kokatzearen kontrol osoago izateko.
  • Sarearen azpisistema
    • Netfilter-en gehitu bideratze-egiaztapenaren aurreko fasean paketeak baztertzeko gaitasuna (ERREJECT adierazpena INPUT, FORWARD eta OUTPUT kateetan ez ezik, PREROUTING fasean ere erabil daiteke icmp eta tcp-en).
    • nftableetan gehitu konfigurazio-aldaketekin lotutako gertaerak ikuskatzeko gaitasuna.
    • netlink APIko nftables-etan gehitu kate anonimoentzako euskarria, zeinen izena dinamikoki esleitzen du nukleoak. Kate anonimo batekin lotutako arau bat ezabatzen duzunean, katea bera automatikoki ezabatzen da.
    • BPF-k iteratzaileentzako laguntza gehitzen du array elkartuen (mapak) elementuak zeharkatu, iragazi eta aldatzeko, datuak erabiltzailearen espazioan kopiatu gabe. Iteratzaileak TCP eta UDP socketetarako erabil daitezke, eta BPF programek irekitako socketen zerrendetan errepikatu eta haietatik behar duten informazioa atera dezakete.
    • BPF programa mota berri bat gehitu da BPF_PROG_TYPE_SK_LOOKUP, nukleoak sarrerako konexio baterako entzuteko socket egoki bat bilatzen duenean abiarazitakoa. Horrelako BPF programa bat erabiliz, kudeatzaileak sor ditzakezu konexio bat zein socketrekin lotu behar den erabakitzeko, bind() sistema-deiak mugatu gabe. Adibidez, socket bakar bat helbide edo ataka sortarekin lotu dezakezu. Horrez gain, SO_KEEPALIVE banderaren euskarria gehitu da bpf_setsockopt()-i eta BPF_CGROUP_INET_SOCK_RELEASE kudeatzaileak instalatzeko gaitasuna, socketa askatzen denean deitutakoa, inplementatu da.
    • Protokolo-laguntza ezarri da PRP (Parallel Redundancy Protocol), Ethernet-en oinarritutako babeskopiko kanal batera aldatzea ahalbidetzen duena, aplikazioetarako gardena, sareko osagairen bat huts egiten bada.
    • Pila mac80211 gehitu lau faseko WPA/WPA2-PSK kanalen negoziaziorako laguntza sarbide-puntu moduan.
    • qdisc (ilararen diziplina) programatzailea aldatzeko gaitasuna gehitu da FQ-PIE (Flow Queue PIE) sareko ilarak kudeatzeko algoritmoa lehenespenez erabiltzeko, tarteko paketeen bufferaren eragin negatiboa murrizteko ertzeko sareko ekipoetan (bufferbloat) sareak dituzten sareetan. kable-modemak.
    • Ezaugarri berriak gehitu dira MPTCP (MultiPath TCP), TCP protokoloaren luzapenak, TCP konexio baten funtzionamendua antolatzeko, paketeak aldi berean bidaltzeko hainbat ibilbidetan zehar IP helbide ezberdinekin lotutako sare-interfaze ezberdinen bidez. Syncook, DATA_FIN, buffer-en sintonizazio automatikoa, socket-diagnostikoak eta REUSEADDR, REUSEPORT eta V6ONLY marken laguntza gehitu da setsockopt-en.
    • Bideratze-taula birtualetarako VRF (Virtual Routing and Forwarding), hainbat bideratze-domeinuren funtzionamendua sistema bakarrean antolatzeko aukera ematen dutenak, modu "zorrotza" ezarri da. Modu honetan, mahai birtual bat beste mahai birtualetan erabiltzen ez den bideratze-taula batekin soilik lotu daiteke.
    • Haririk gabeko kontrolatzailea ath11k da gehitu onartzen 6GHz-ko maiztasuna eta miaketa espektrala.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • UniCore arkitektura onartzen duen kodea kendu zen, Pekingo Unibertsitateko Mikroprozesadore Zentroan garatua eta Linux nukleoan sartuta 2011n. 2014az geroztik arkitektura hau ez da mantendu eta ez du GCC-n euskarririk.
    • RISC-V arkitekturarako euskarria ezarri da kcov (kernel kodearen estaldura aztertzeko debugfs interfazea), kmemleak (memoria ihesak detektatzeko sistema), pilaren babesa, salto-markak eta eragiketarik gabeko eragiketak (multitasking tenporizadorearen seinaleetatik independentea).
    • PowerPC arkitekturarako, spinlock ilarentzako euskarria ezarri da, eta horrek nabarmen hobetu du errendimendua blokeo-gatazka egoeretan.
    • ARM eta ARM64 arkitekturetarako, prozesadorearen maiztasuna erregulatzeko mekanismoa lehenespenez gaituta dago egutegia (cpufreq gobernadorea), zeinak zuzenean zereginen programatzailearen informazioa erabiltzen du maiztasuna aldatzeko erabakia hartzeko eta cpufreq kontrolatzaileetara berehala sar daiteke maiztasuna azkar aldatzeko, PUZaren funtzionamendu-parametroak uneko kargara berehala egokituz.
    • Intel txartel grafikoentzako i915 DRM kontrolatzaileak mikroarkitekturan oinarritutako txipetarako euskarria dakar Suziri lakua eta txartel diskretuen hasierako laguntza gehitu zuen Intel Xe DG1.
    • Amdgpu kontrolatzaileak hasierako laguntza gehitu zuen AMD GPUetarako Navi 21 (Marinako Flounder) eta Navi 22 (Siena Ziklidoa). UVD/VCE bideoa kodetzeko eta deskodetzeko azelerazio-motorrentzako laguntza gehitu da Southern Islands GPUrako (Radeon HD 7000).
      Pantaila 90, 180 edo 270 gradu biratzeko propietate bat gehitu da.

      Interesgarria da AMD GPUrako kontrolatzailea da nukleoko kontrolatzailerik handiena - 2.71 milioi kode lerro inguru ditu, hau da, kernelaren tamaina osoaren % 10 gutxi gorabehera (27.81 milioi lerro). Aldi berean, 1.79 milioi lerro biltzen dira automatikoki sortutako goiburuko fitxategiek GPU erregistroetarako datuekin, eta C kodea 366 mila lerro da (konparazio baterako, Intel i915 kontrolatzaileak 209 mila lerro ditu eta Nouveau - 149 mila).

    • Nouveau gidarian gehitu fotogramaz fotograma osotasuna egiaztatzeko laguntza erabiliz CRC (Erredundantzia Ziklikoak) NVIDIA GPU pantaila-motorretan. Inplementazioa NVIDIAk emandako dokumentazioan oinarritzen da.
    • LCD paneletarako kontrolatzaileak gehitu dira: Frida FRD350H54004, KOE TX26D202VM0BWA, CDTech S070PWS19HP-FC21, CDTech S070SWV29HG-DC44, Tianma TM070JVHG33 eta Xingbangda XBD599.
    • ALSA audio azpisistemak onartzen du Intel Silent Stream (kanpoko HDMI gailuetarako etengabeko elikadura modua erreprodukzioa hastean atzerapena ezabatzeko) eta gailu berria mikrofonoa aktibatzeko eta isilarazteko botoien argiztapena kontrolatzeko, eta ekipo berrietarako laguntza ere gehitu du, kontrolagailu bat barne. Longson 7A1000.
    • ARM plaka, gailu eta plataformetarako laguntza gehitu da: Pine64 PinePhone v1.2, Lenovo IdeaPad Duet 10.1, ASUS Google Nexus 7, Acer Iconia Tab A500, Qualcomm Snapdragon SDM630 (Sony Xperia 10, 10 Plus, XA2, XA2 Plus eta XA2, XA2-n erabiltzen da) Ultra), Jetson Xavier NX, Amlogic WeTek Core6, Aspeed EthanolX, NXP i.MX3011-n oinarritutako bost plaka berri, MikroTik RouterBoard 950, Xiaomi Libra, Microsoft Lumia 5, Sony Xperia Z5, MStar, Microchip Sparx3, Intel Keem Bay, Amazon Alpine v2, Renesas RZ/GXNUMXH.

Aldi berean, Latinoamerikako Software Librearen Fundazioa eratu
aukera guztiz doako nukleoa 5.9 - Linux-libre 5.9-gnu, doakoak ez diren osagaiak edo kode atalak dituzten firmware eta kontrolatzaileen elementuak garbitu ditu, fabrikatzaileak mugatzen baitu horien esparrua. Bertsio berriak WiFi rtw8821c eta SoC MediaTek mt8183 kontrolatzaileetan blob kargatzea desgaitzen du. Blob garbiketa-kode eguneratua Habanalabs, Wilc1000, amdgpu, mt7615, i915 CSR, Mellanox mlxsw (Spectrum3), r8169 (rtl8125b-2) eta x86 ukipen-pantailaren kontrolatzaile eta azpisistemetan.

Iturria: opennet.ru

Gehitu iruzkin berria