Linux 5.2 kodola laidiens

Pēc divu mēneÅ”u izstrādes Linuss Torvalds ieviesa kodola izlaiÅ”ana Linux 5.2. Starp pamanāmākajām izmaiņām: Ext4 darbÄ«bas režīms nav reÄ£istrjutÄ«gs, atseviŔķi sistēmas izsaukumi failu sistēmas montāžai, draiveri GPU Mali 4xx/ 6xx/7xx, iespēja apstrādāt sysctl vērtÄ«bu izmaiņas BPF programmās, ierÄ«ces kartētājs. modulis dm-dust, aizsardzÄ«ba pret uzbrukumiem MDS, Sound Open Firmware atbalsts DSP, BFQ veiktspējas optimizācija, PSI (Pressure Stall Information) apakÅ”sistēmas izmantoÅ”ana Android ierÄ«cēs.

Jaunajā versijā ir iekļauti 15100 1882 labojumi no XNUMX izstrādātājiem,
ielāpu izmērs - 62 MB (izmaiņas skāra 30889 failus, pievienotas 625094 koda rindas, dzēstas 531864 rindas). Apmēram 45% no visiem, kas uzrādīti 5.2
izmaiņas ir saistītas ar ierīču draiveriem, aptuveni 21% izmaiņu ir
attieksme pret aparatūras arhitektūrām raksturīgā koda atjaunināŔanu, 12%
saistÄ«ti ar tÄ«kla steku, 3% ar failu sistēmām un 3% ar iekŔējo
kodola apakÅ”sistēmas. 12.4% no visām izmaiņām sagatavoja Intel, 6.3% Red Hat, 5.4% Google, 4.0% AMD, 3.1% SUSE, 3% IBM, 2.7% Huawei, 2.7% Linaro, 2.2% ARM. , 1.6 % - Oracle.

Galvenais jauninājumiem:

  • Diska apakÅ”sistēma, I/O un failu sistēmas
    • Pievienots Ext4 atbalstÄ«t strādāt, nenoŔķirot rakstzÄ«mju reÄ£istru failu nosaukumos, kas tiek aktivizēts tikai attiecÄ«bā uz atseviŔķiem tukÅ”iem direktorijiem, izmantojot jauno atribÅ«tu ā€œ+Fā€ (EXT4_CASEFOLD_FL). Ja Å”is atribÅ«ts ir iestatÄ«ts direktorijā, visas darbÄ«bas ar failiem un apakÅ”direktorijiem iekÅ”pusē tiks veiktas, neņemot vērā rakstzÄ«mju reÄ£istru, tostarp reÄ£istrs tiks ignorēts, meklējot un atverot failus (piemēram, faili Test.txt, test.txt un test.TXT Ŕādos direktorijos tiks uzskatÄ«ti par vienādiem). Pēc noklusējuma failu sistēma joprojām ir reÄ£istrjutÄ«ga, izņemot direktorijus ar atribÅ«tu ā€œchattr +Fā€;
    • Unificētas UTF-8 rakstzÄ«mju apstrādes funkcijas failu nosaukumos, kuras tiek izmantotas, veicot virkņu salÄ«dzināŔanas un normalizācijas darbÄ«bas;
    • XFS pievieno infrastruktÅ«ru failu sistēmas stāvokļa uzraudzÄ«bai un jaunu ioctl veselÄ«bas stāvokļa vaicāŔanai. Ir ieviesta eksperimentāla funkcija, lai tieÅ”saistē pārbaudÄ«tu superbloku skaitÄ«tājus.
    • Pievienots jauns modulis ierÄ«ces kartētājs "dm-putekļiā€œ, kas ļauj simulēt sliktu bloku parādÄ«Å”anos datu nesējā vai kļūdas, lasot no diska. Modulis ļauj vienkārÅ”ot lietojumprogrammu un dažādu uzglabāŔanas sistēmu atkļūdoÅ”anu un testÄ“Å”anu, saskaroties ar iespējamām kļūmēm;
    • IzpildÄ«ts Ievērojama veiktspējas optimizācija BFQ I/O plānotājam. Augstas I/O slodzes apstākļos veiktas optimizācijas Atļaut Samaziniet operāciju laiku, piemēram, lietojumprogrammu palaiÅ”anu, lÄ«dz pat 80%.
    • Pievienota virkne sistēmas izsaukumu failu sistēmu montāžai: fsopen(), open_tree(), fspick (), fsmount(), fsconfig() Šø move_mount(). Å ie sistēmas izsaukumi ļauj atseviŔķi apstrādāt dažādus montāžas posmus (apstrādāt superbloku, iegÅ«t informāciju par failu sistēmu, montēt, pievienot piestiprināŔanas punktam), kas iepriekÅ” tika veikti, izmantojot kopējo sistēmas izsaukumu mount(). AtseviŔķi zvani nodroÅ”ina iespēju veikt sarežģītākus montāžas scenārijus un veikt atseviŔķas darbÄ«bas, piemēram, pārkonfigurēt superbloku, iespējot opcijas, mainÄ«t stiprinājuma punktu un pārvietoties uz citu nosaukumvietu. Turklāt atseviŔķa apstrāde ļauj precÄ«zi noteikt kļūdu kodu izvadÄ«Å”anas iemeslus un iestatÄ«t vairākus avotus daudzslāņu failu sistēmām, piemēram, pārklājumus;
    • Asinhronās I/O io_uring interfeisam ir pievienota jauna operācija IORING_OP_SYNC_FILE_RANGE, kas veic sistēmas izsaukumam lÄ«dzvērtÄ«gas darbÄ«bas. sync_file_range(), kā arÄ« ieviesta iespēja reÄ£istrēt eventfd ar io_uring un saņemt paziņojumus par darbÄ«bu pabeigÅ”anu;
    • CIFS failu sistēmai ir pievienots FIEMAP ioctl, kas nodroÅ”ina efektÄ«vu apjoma kartÄ“Å”anu, kā arÄ« atbalstu SEEK_DATA un SEEK_HOLE režīmiem;
    • FUSE apakÅ”sistēmā ierosināts API datu keÅ”atmiņas pārvaldÄ«bai;
    • Btrfs ir optimizējis qgroups ievieÅ”anu un uzlabojis fsync izpildes ātrumu failiem ar vairākām cietajām saitēm. Ir uzlabots datu integritātes pārbaudes kods, kas tagad ņem vērā iespējamos informācijas bojājumus RAM pirms datu izskaloÅ”anas diskā;
    • CEPH pievienoja atbalstu momentuzņēmumu eksportÄ“Å”anai, izmantojot NFS;
    • Ir uzlabota NFSv4 montāžas ievieÅ”ana ā€œmÄ«kstajāā€ režīmā (ja rodas kļūda, piekļūstot serverim ā€œmÄ«kstajāā€ režīmā, izsaukums uz nekavējoties atgriež kļūdas kodu, un ā€œcietajāā€ režīmā vadÄ«ba netiek dota lÄ«dz FS pieejamÄ«ba vai taimauts tiek atjaunots). Jaunais laidiens nodroÅ”ina precÄ«zāku taimauta apstrādi, ātrāku avāriju atkopÅ”anu un jaunu ā€œmÄ«kstākuā€ stiprinājuma opciju, kas ļauj mainÄ«t kļūdas kodu (ETIMEDOUT), kas tiek atgriezts, kad iestājas taimauts;
    • Nfsdcld API, kas izstrādāta, lai izsekotu NFS klientu stāvokli, ļauj NFS serverim pareizi izsekot klienta stāvoklim pēc atkārtotas palaiÅ”anas. Tādējādi nfsdcld dēmons tagad var darboties kā nfsdcltrack apstrādātājs;
    • Par AFS pievienots baitu diapazona bloÄ·Ä“Å”anas emulācija failos (Baitu diapazona bloÄ·Ä“Å”ana);
  • Virtualizācija un droŔība
    • Ir veikts darbs, lai kodolā likvidētu vietas, kas ļauj izpildÄ«t kodu no rakstāmām atspoguļotām atmiņas zonām, kas ļauj bloķēt potenciālos caurumus, kurus varētu izmantot uzbrukuma laikā;
    • Ir pievienots jauns kodola komandrindas parametrs "mitigations=", kas nodroÅ”ina vienkārÅ”otu veidu, kā kontrolēt noteiktu paņēmienu iespējoÅ”anu, lai aizsargātu pret ievainojamÄ«bām, kas saistÄ«tas ar spekulatÄ«vu instrukciju izpildi CPU. Nododot "mitigations=off", tiek atspējotas visas esoŔās metodes, un noklusējuma režīms "mitigations=auto" iespējo aizsardzÄ«bu, bet neietekmē hiperpavedienu izmantoÅ”anu. Režīms ā€œmitigations=auto,nosmtā€ papildus atspējo hiperpavedienu, ja to pieprasa aizsardzÄ«bas metode.
    • Pievienots atbalsts elektroniskajam ciparparakstam saskaņā ar GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3), izstrādāta Vitālijs Čikunovs no Basalt SPO. Pievienots atbalsts AES128-CCM vietējai TLS ievieÅ”anai. Pievienots AEAD algoritmu atbalsts modulim crypto_simd;
    • Programmā Kconfig pievienots atseviŔķa ā€œkodola sacietÄ“Å”anasā€ sadaļa ar iespējām uzlabot kodola aizsardzÄ«bu. PaÅ”laik jaunajā sadaļā ir tikai iestatÄ«jumi GCC pārbaudes uzlaboÅ”anas spraudņu iespējoÅ”aiÅ”anai;
    • Kodola kods ir gandrÄ«z piegādāts no nepārkāpjamiem reÄ£istra paziņojumiem slēdzÄ« (bez atgrieÅ”anās vai pārtraukuma pēc katra gadÄ«juma bloka). Atliek labot 32 no 2311 Ŕādas slēdža izmantoÅ”anas gadÄ«jumiem, pēc kuriem kodola veidoÅ”anā bÅ«s iespējams izmantot ā€œ-Wimplicit-fallthroughā€ režīmu;
    • PowerPC arhitektÅ«rai ir ieviests atbalsts aparatÅ«ras mehānismiem, lai ierobežotu nevēlamus kodola piekļuves ceļus datiem lietotāja telpā;
    • Pievienots bloÄ·Ä“Å”anas kods uzbrukumiem MDS (Microarchitectural Data Sampling) klase Intel procesoros. Varat pārbaudÄ«t, vai sistēma ir neaizsargāta pret ievainojamÄ«bām, izmantojot SysFS mainÄ«go ā€œ/sys/devices/system/cpu/vulnerabilities/mdsā€. Pieejams divi aizsardzÄ«bas režīmi: pilns, kam nepiecieÅ”ams atjaunināts mikrokods, un apvedceļŔ, kas pilnÄ«bā negarantē CPU buferu notÄ«rÄ«Å”anu, kad vadÄ«ba tiek nodota lietotāja telpai vai viesu sistēmai. Lai kontrolētu aizsardzÄ«bas režīmus, kodolam ir pievienots parametrs ā€œmds=ā€, kas var iegÅ«t vērtÄ«bas ā€œfullā€, ā€œfull,nosmtā€ (+ atspējot Hyper-Threads) un ā€œoffā€;
    • X86-64 sistēmās ir pievienota ā€œsteka aizsarglapuā€ aizsardzÄ«ba IRQ, atkļūdoÅ”anas mehānismiem un izņēmumu apstrādātājiem, kuras bÅ«tÄ«ba ir atmiņas lapu aizstāŔana pie robežas ar steku, kurai piekļūstot, tiek Ä£enerēta izņēmums (lapas kļūda);
    • Pievienots sysctl iestatÄ«jums vm.unprivileged_userfaultfd, kas kontrolē nepriviliģētu procesu spēju izmantot sistēmas izsaukumu userfaultfd();
  • TÄ«kla apakÅ”sistēma
    • Pievienots IPv6 vārtejas atbalsts IPv4 marÅ”rutiem. Piemēram, tagad varat norādÄ«t marÅ”rutÄ“Å”anas noteikumus, piemēram, ā€œip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0ā€;
    • ICMPv6 gadÄ«jumā tiek ieviesti ioctl izsaukumi icmp_echo_ignore_anycast un icmp_echo_ignore_multicast, lai ignorētu ICMP ECHO jebkurai apraidei un
      multiraides adreses. Pievienots spēja ierobežot ICMPv6 pakeÅ”u apstrādes intensitāti;

    • BATMAN (Better Approach To Mobile Adhoc Networking) tÄ«kla protokolam, kas ļauj izveidot decentralizētus tÄ«klus, kuros katrs mezgls ir savienots caur blakus esoÅ”ajiem mezgliem, pievienots atbalsts apraidei no multiraides uz unicast, kā arÄ« iespēja kontrolēt, izmantojot sysfs;
    • In ethtool piebilda jauns Fast Link Down parametrs, kas ļauj samazināt laiku, kas nepiecieÅ”ams, lai saņemtu informāciju par saites nolaiÅ”anas notikumu 1000BaseT (normālos apstākļos aizkave ir lÄ«dz 750 ms);
    • ParādÄ«jās iespēja Foo-Over-UDP tuneļu piesaistÄ«Å”ana noteiktai adresei, tÄ«kla interfeisam vai ligzdai (iepriekÅ” saistÄ«Å”ana tika veikta tikai ar kopēju masku);
    • Bezvadu kaudzē nodroÅ”ināta apdarinātāju ievieÅ”anas iespēja
      OWE (OpportÅ«nistiskā bezvadu Å”ifrÄ“Å”ana) lietotāju telpā;

    • Programmā Netfilter nat ķēdēm ir pievienots atbalsts inet adreÅ”u saimei (piemēram, tagad varat izmantot vienu tulkoÅ”anas kārtulu, lai apstrādātu ipv4 un ipv6, neatdalot noteikumus ipv4 un ipv6);
    • Netlinkā piebilda mode stingra visu ziņojumu un atribÅ«tu pareizÄ«bas stingrai pārbaudei, kurā nav atļauts pārsniegt paredzamo atribÅ«tu lielumu un ir aizliegts pievienot papildu datus ziņojumu beigās;
  • Atmiņas un sistēmas pakalpojumi
    • CLONE_PIDFD karodziņŔ ir pievienots klona() sistēmas izsaukumam, kad tas ir norādÄ«ts, faila deskriptors ā€œpidfdā€, kas identificēts ar izveidoto pakārtoto procesu, tiek atgriezts vecākprocesā. Å o faila deskriptoru, piemēram, var izmantot, lai nosÅ«tÄ«tu signālus, nebaidoties nonākt sacensÄ«bu stāvoklÄ« (tÅ«lÄ«t pēc signāla nosÅ«tÄ«Å”anas mērÄ·a PID var tikt atbrÄ«vots procesa pārtraukÅ”anas dēļ un aizņemts citā procesā);
    • Otrajai cgroup versijai ir pievienota saldētavas kontrollera funkcionalitāte, ar kuru var pārtraukt darbu cgroup un uz laiku atbrÄ«vot dažus resursus (CPU, I/O un, iespējams, pat atmiņu), lai veiktu citus uzdevumus. PārvaldÄ«ba tiek veikta, izmantojot cgroup kokā esoÅ”us kontroles failus cgroup.freeze un cgroup.events. 1. ieraksts cgroup.freeze iesaldē procesus paÅ”reizējā cgrupā un visās pakārtotajās grupās. Tā kā iesaldÄ“Å”ana aizņem kādu laiku, tiek nodroÅ”ināts papildu fails cgroup.events, caur kuru varat uzzināt par darbÄ«bas pabeigÅ”anu;
    • NodroÅ”ināts katram sysf mezglam pievienoto atmiņas atribÅ«tu eksports, kas ļauj no lietotāja telpas noteikt atmiņas banku apstrādes raksturu sistēmās ar neviendabÄ«gu atmiņu;
    • Ir pilnveidota PSI (Pressure Stall Information) apakÅ”sistēma, kas ļauj analizēt informāciju par gaidÄ«Å”anas laiku dažādu resursu (CPU, atmiņas, I/O) saņemÅ”anai noteiktiem uzdevumiem vai procesu kopām cgrupā. Izmantojot PSI, lietotāja vietas apstrādātāji var precÄ«zāk novērtēt sistēmas slodzes un palēnināŔanas modeļu lÄ«meni salÄ«dzinājumā ar vidējo slodzi. Jaunā versija nodroÅ”ina atbalstu jutÄ«guma sliekŔņu iestatÄ«Å”anai un iespēju izmantot poll() zvanu, lai saņemtu paziņojumu, ka iestatÄ«tie sliekŔņi ir aktivizēti noteiktu laika periodu. Å Ä« funkcija ļauj operētājsistēmai Android agrÄ«nā stadijā uzraudzÄ«t atmiņas trÅ«kumu, identificēt problēmu avotu un pārtraukt nesvarÄ«gas lietojumprogrammas, neradot lietotājam pamanāmas problēmas. Veicot stresa testÄ“Å”anu, uz PSI balstÄ«tie atmiņas patēriņa uzraudzÄ«bas rÄ«ki uzrādÄ«ja 10 reizes mazāk kļūdaini pozitÄ«vu rezultātu, salÄ«dzinot ar vmpressure statistiku;
    • BPF programmu pārbaudes kods ir optimizēts, kas lielām programmām ļauj pārbaudÄ«t lÄ«dz pat 20 reizēm ātrāk. Optimizācija ļāva palielināt BPF programmu lieluma ierobežojumu no 4096 lÄ«dz miljonam instrukciju;
    • BPF programmām pieŔķirts iespēja piekļūt globālajiem datiem, kas ļauj programmās definēt globālos mainÄ«gos un konstantes;
    • Pievienots API, kas ļauj kontrolēt sysctl parametru izmaiņas no BPF programmām;
    • MIPS32 arhitektÅ«rai ir ieviests JIT kompilators eBPF virtuālajai maŔīnai;
    • 32 bitu PowerPC arhitektÅ«rai ir pievienots KASan (Kernel address sanitizer) atkļūdoÅ”anas rÄ«ka atbalsts, kas palÄ«dz identificēt kļūdas, strādājot ar atmiņu;
    • Sistēmās x86-64 ir noņemts ierobežojums novietot stāvokļa izgāztuves kodola avārijas (avārijas izgāztuves) laikā atmiņas apgabalos, kas pārsniedz 896 MB;
    • S390 arhitektÅ«rai ir ieviests atbalsts kodola adreÅ”u telpas nejauÅ”ināŔanai (KASLR) un iespēja pārbaudÄ«t ciparparakstus, ielādējot kodolu, izmantojot kexec_file_load();
    • PA-RISC arhitektÅ«rai pievienots kodola atkļūdotāja (KGDB), pārejas atzÄ«mju un kprobes atbalsts;
  • ŠžŠ±Š¾Ń€ŃƒŠ“Š¾Š²Š°Š½ŠøŠµ
    • Iekļauts draiveris Lima Mali 400/450 GPU, ko izmanto daudzās vecākās mikroshēmās, kuru pamatā ir ARM arhitektÅ«ra. Jaunākiem Mali GPU ir pievienots Panfrost draiveris, kas atbalsta mikroshēmas, kuru pamatā ir Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) un Bifrost (Mali G3x, G5x, G7x) mikroarhitektÅ«ras;
    • Pievienots atbalsts audio ierÄ«cēm, kas izmanto atvērtu programmaparatÅ«ru Skaņa Atvērt programmaparatÅ«ru (SOF). Neskatoties uz atvērto draiveru pieejamÄ«bu, skaņas mikroshēmu programmaparatÅ«ras kods joprojām palika slēgts un tika piegādāts binārā formā. Projektu Sound Open Firmware izstrādāja Intel, lai izveidotu atvērtu programmaparatÅ«ru DSP mikroshēmām, kas saistÄ«tas ar audio apstrādi (vēlāk izstrādei pievienojās arÄ« Google). Å obrÄ«d projekts jau ir sagatavojis programmaparatÅ«ras atklāŔanu Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake un IceLake platformu skaņas mikroshēmām;
    • Intel DRM draiveris (i915) pievieno atbalstu mikroshēmām
      Elkhartleiks (Gen11). Pievienoti PCI ID Comet Lake (Gen9) mikroshēmām. Icelake mikroshēmu atbalsts ir stabilizēts, kam pievienoti arÄ« papildu PCI ierīču identifikatori.
      Ieslēgts
      asinhronās pārslēgÅ”anās režīms starp diviem buferiem video atmiņā (async flip), veicot rakstÄ«Å”anas darbÄ«bas, izmantojot mmio, kas ievērojami palielināja dažu 3D lietojumprogrammu veiktspēju (piemēram, veiktspēja 3DMark Ice Storm testā palielinājās par 300-400%). Pievienots tehnoloÄ£iju atbalsts HDCP2.2 (High-bandwidth Digital Content Protection), lai Å”ifrētu video signālus, kas tiek pārraidÄ«ti, izmantojot HDMI;

    • Vega20 GPU amdgpu draiveris pievienots atbalsts RAS (Reliability, Availability, Serviceability) un eksperimentāls atbalsts SMU 11 apakÅ”sistēmai, kas aizstāja Powerplay tehnoloÄ£iju. GPU Vega12 pievienots BACO režīma atbalsts (Bus Active, Chip Off). Pievienots sākotnējais atbalsts XGMI ā€” ātrgaitas kopnei (PCIe 4.0) GPU savienojumam. Pievienoti trÅ«kstoÅ”ie identifikatori kartēm, kuru pamatā ir Polaris10 GPU, amdkfd draiverim;
    • Nouveau draiveris ir pievienojis atbalstu plāksnēm, kuru pamatā ir NVIDIA Turing 117 mikroshēmojums (TU117, izmantots GeForce GTX 1650). IN
      kconfig pievienots iestatÄ«jums, lai atspējotu novecojuÅ”as funkcijas, kuras vairs netiek izmantotas paÅ”reizējās libdrm laidienās;

    • DRM API un amdgpu draiverim ir pievienots ā€œlaika skalasā€ sinhronizācijas objektu atbalsts, ļaujot iztikt bez klasiskās bloÄ·Ä“Å”anas.
    • VirtualBox virtuālā GPU vboxvideo draiveris ir pārvietots no inscenÄ“Å”anas filiāles uz galveno struktÅ«ru;
    • Pievienots ātruma draiveris GFX SoC ASPEED mikroshēmai;
    • Pievienots atbalsts ARM SoC un Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, ,Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi) ) plates RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510,
      ST Micro (stm32mp157a, stm32mp157c), NXP (
      Eckelmann ci4x10 (i.MX6DL),

      i.MX8MM EVK (i.MX8MM),

      ZII i.MX7 RPU2 (i.MX7),

      ZII SPB4 (VF610),

      Zii Ultra (i.MX8M),

      TQ TQMa7S (i.MX7Solo),

      TQ TQMa7D (i.MX7Dual),

      Kobo Aura (i.MX50),

      Menlosystems M53 (i.MX53)), NVIDIA Jetson Nano (Tegra T210).

Tajā paŔā laikā Latīņamerikas BrÄ«vās programmatÅ«ras fonds veidojas
iespēja pilnÄ«gi bezmaksas kodols 5.2 Sākot no Linux bezmaksas 5.2-gnu, notÄ«rÄ«ta no programmaparatÅ«ras un draivera elementiem, kas satur nebrÄ«vas sastāvdaļas vai koda sadaļas, kuru darbÄ«bas jomu ierobežo ražotājs. Jaunajā laidienā ir iekļauta failu augÅ”upielāde
Skaņa Atvērt programmaparatūru. Blobu ielāde draiveros ir atspējota
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp un ucsi_ccg. Blobu tÄ«rÄ«Å”anas kods ixp4xx, imx-sdma, amdgpu, nouveau un goya draiveros un apakÅ”sistēmās, kā arÄ« mikrokoda dokumentācijā ir atjaunināts. Pārtraukta traipu tÄ«rÄ«Å”ana r8822be draiverÄ« tā noņemÅ”anas dēļ.

Avots: opennet.ru

Pievieno komentāru