PĂ€rast kahte kuud arendust esitles Linus Torvalds Linuxi 7.2 tuuma vĂ€ljalaske. Silmapaistvamad muudatused on: USB4STREAMi andmevoogede mehhanism, btrfs, xfs ja ext4 jĂ”udluse optimeerimine, koodi eemaldamine i486 CPU toe jaoks, vĂ”imalus luua sisemisi planeerijaid SCHED_EXT, mĂ€lutarbimise vĂ€hendamine vahetusmĂ€lu alamstes, anonĂŒĂŒmsete kanalite kiirendamine, Intel MBEC ja AMD GMET laienduste tugi KVM-is, AppleTalk protokolli eemaldamine, HDMI 2.1 FRL algtugi AMDGPU draiveris.
Peamised uuendused tuumas 7.2 (1, 2, 3):
- DiskisĂŒsteem, sisend/vĂ€ljund ja failisĂŒsteemid
- iomap mehhanismist eemaldati liigne memset funktsiooni kutsumine juba lĂ”petatud iteratsioonide jaoks funktsioonis iomap_iter(), mis suurendas kĂ”rge I/O intensiivsuse korral kiiretel NVMe salvestusseadmetel testides IOPS-i 5% vĂ”rra ext4 ja xfs failisĂŒsteemide kasutamisel.
- XFS-is kuulutati vÀlja stabiilne tugi tsoonitud salvestusseadmetele (bloki- vÔi sektorigruppide tsooni jagamine, kuhu on lubatud vaid jÀrjestikune andmete lisamine kogu bloki grupi vÀrskendamisega).
- Btrfs-is on vaikimisi lubatud suurte mÀlu lehtede (large folios) tugi, mis vÀhendab kulusid ja tÔstab jÔudlust intensiivse jÀrjestikuse I/O korral. Lisatud eksperimentaalne huge folios tugi suurusega kuni 2 MB. Uus ioctl GET_CSUMS on lisatud kontrollsumma teabe saamiseks kasutajaruumi, nÀiteks utiliidi mkfs ja dedupe optimeerimist. JÔudlus jÀrjestikuste andmete kirjutamisel on suurenenud 15% ja sirgjoonelise I/O korral 59%.
- Ext4 failisĂŒsteemis on mĂ€rkimisvÀÀrselt ĂŒmber töötatud 'fast commit' mehhanismi rakendus konkurentsi ja vastastikuste lukustuste vĂ€ltimiseks. Lisatud inode'i snapshotide statistika eksport lĂ€bi /proc/fs/ext4/*/fc_info. Ahnustatud kaustade hashide arvutamise jĂ”udlust (255-tĂ€hemĂ€rgiste nimede puhul kiirus peaaegu kahekordistus, 64 tĂ€hemĂ€rki 27%, 32 tĂ€hemĂ€rki - 11%).
- F2FS-is on lisatud fserrori vigade tagasiside tugi, mis vĂ”imaldab kasutajaruumi kaudu jĂ€lgida failisĂŒsteemi probleeme. VĂ€henenud katkestuste töötlemise kontekstis veedetud aeg.
- Device Mapper (DM) on lisatud uus dm-inlinecrypt kĂ€itleja, mis vĂ”imaldab lĂ€bipaistvat krĂŒpteerimist ja dekrĂŒpteerimist plokkseadmete puhul, kasutades riistvaraseadmeid, millel on inline-krĂŒpteerimise funktsioon.
- Esitatud dokumentatsioon uute failisĂŒsteemide lisamiseks tuumale.
- NFS-i puhul on ploki suurus vaikimisi suurendatud 4 MB-ni sĂŒsteemides, mis sisaldavad vĂ€hemalt 16 GB mĂ€lu (ploki suuruse kĂ€sitsi muutmiseks saab kasutada /proc/fs/nfsd/max_block_size). Lisatud on toetust katalooge koosoleku delegeerimisele kliendile, mis vĂ”imaldab teatud aja jooksul teostada toiminguid selle kataloogi osas ilma oleku muutuste kontrollimiseta. serveris.
- SMB-serverisse on lisatud toetus faile hoidmiseks kompressitud kujul ning andmete kokkusurumiseks nende edastamise ajal vÔrgu kaudu.
- Uues NTFS-i (ntfsplus) rakenduses on lisatud toetus Windowsi sĂŒmboolsetele linkidele ning tagatud on paljude metainfode vigade Ă”ige kĂ€sitlemine.
- Eemaldatud on fscache tagantjÀrele andmete vahemÀlu EROFS-i (Enhanced Read-Only File System) jaoks, mis kuulutati kaks aastat tagasi aegunuks.
- Ceph failisĂŒsteemi on lisatud tugi kliendi seansside kĂ€sitsi nullimiseks.
- 9P failisĂŒsteemi on tehtud optimeerimisi, mis kiirendavad tööprotsesse sellistes stsenaariumides nagu projektide koostamine.
- SĂŒsteemikutsesse file_getattr() on lisatud lipud, et saada teavet failisĂŒsteemi sĂŒmbolite reegli arvestamise kohta. Lipp FS_XFLAG_CASEFOLD nĂ€itab, et failinimede kontroll toimub ilma sĂŒmbolite reegli arvestamiseta, ja lipp FS_XFLAG_CASENONPRESERVING, et uute failinimede loomisel ei sĂ€ilitata sĂŒmbolite reegli teavet. Antud lippude rakendamine on vĂ”imalik NFS-kliendides, mis töötavad ilma sĂŒmbolite reegli arvestamiseta.
- SĂŒsteemikutsesse openat2() on lisatud lipp O_EMPTYPATH, mis vĂ”imaldab edastada tĂŒhja failitee. Sellisel juhul mÀÀratakse avatud faili tee edastatud failidekstraktori alusel.
- SĂŒsteemikutsesse openat2() on lisatud lipp OPENAT2_REGULAR, mis lubab avada vaid tavalisi faile (katse avada erifail, nĂ€iteks sokkel, toru vĂ”i seade, pĂ”hjustab vea EFTYPE).
- MĂ€lu ja sĂŒsteemiteenused
- USB4STREAM mehhanism on andnud andmeed edastamiseks arvutite vahel, mis on ĂŒhendatud USB4 kaabliga. Lisa seadme /dev/tbstreamX, mille abil saab andmeid lugeda ja kirjutada, kasutades standardseid funktsioone read() ja write(), sarnaselt failide lugemise ja kirjutamisega. NĂ€iteks ĂŒhel hostil saab teavet saata kĂ€suga "echo hello > /dev/tbstream0", samas kui teisel saab lugeda kĂ€suga "cat /dev/tbstream0". USB4STREAM mehhanismi saab kombineerida USB4 kaabli kaudu vĂ”rguĂŒhenduse loomise vĂ”imalusega (thunderbolt_net) vĂ”i kasutada seda eraldi, kui on vajalik andmete edastamine rakenduste vahel, mis ei toeta vĂ”rgusokette.
- LĂŒlitatud sisse teine muudatuste seeria i486 protsessorite toetuse lĂ”petamiseks. Eemaldatud ĂŒle 13 koodirea, mis on seotud FPU puuduvate protsessorite ujuvkomaaride simulatsiooniplokiga. Eemaldatud toetus i486 protsessorite jaoks, millel ei ole CX8 (vĂ”rdle ja vaheta 8 baiti) ja TSC (CPU tsĂŒklite loendur, mida kasutatakse ĂŒlesannete ajakaval) riistvara operatsioone; nende simulatsioonikood on eemaldatud.
- Teatatud, et AMD Geode protsessorite tugi, mis kasutatakse OLPC XO-1 arvutis, on jÀÀnud ilma hoolduseta (orphaned).
- Lisatud tugi Intel TDX (Trusted Domain Extensions) mehhanismi rakenduse uuendamiseks, mida kasutatakse kĂŒlalissĂŒsteemide mĂ€lu krĂŒpteerimiseks. TDX on rakendatud spetsiaalse programmikogumi kĂ€itusena, mis transporditakse BIOS-i poolt Flash-mĂ€lust operatiivmĂ€lu alglaadimise ajal. Tuumale on lisatud vĂ”imalused selle mooduli haldamiseks ja uuema versiooniga asendamiseks töötavas sĂŒsteemis ilma taaskĂ€ivitamiseta.
- Uus GPU ressursihalduri (Fair GPU scheduler) on rakendatud GPU tööde tĂ€itmise jĂ€rjekorra mÀÀramiseks, mida saadavad GPU-d kasutavad protsessid. Erinevalt traditsioonilisest GPU pĂ€ringute FIFO jĂ€rjekorrast, kasutab uus haldur Ă”iglast ressursijagamise mehhanismi, mis on seotud CFS (Completely Fair Scheduler) planeerijaga, mis rakendab protsesside tĂ€itmise vahetusaega. Uue halduri kasutamisest on kĂ”ige tĂ”husamad tulemused nĂ€htavad interaktiivsete ĂŒlesannete paralleelse tĂ€itmise korral, mis töötavad aktiivselt GPU-ga. Viimasel hetkel enne 7.2 tuuma vĂ€ljalaskmist tĂŒhistati Fair GPU scheduler sisselĂŒlitamine ja tagastati vana FIFO planeerija, kuna tekkis vajadus tĂ”rgete tĂ”rkeotsingu jĂ€rele, mis viis jĂ”udluse languseni ja 100% koormuseni GPU-l eraldi mĂ€ngude kĂ€ivitamisel Protonis.
- eBPF alamsĂŒsteemis on tehtud muudatusi: lisatud vĂ”imalus ĂŒhendada ĂŒks BPF programm mitmele jĂ€lgimispunktile (tracepoint). JĂ€lgimispunktidega seotud BPF programmidesse on lisatud juurdepÀÀsu vĂ”imalus mĂ€lu komponentidele, mis töötavad kasutaja tasemel, korrektselt kĂ€sitledes mittealokatsioonitud mĂ€lu lehtede kĂ€sitlemist (page fault). Sistemaatilisse kĂ”ne bpf() on lisatud tĂŒĂŒbiklasside atribuutide (log_buf, log_size, log_level ja log_true_size) tugi, mis vĂ”imaldab ĂŒhtlustada metainformatsiooni edastamist kĂ”igis BPF kĂ€skudes, piiranguteta BPF_PROG_LOAD, BPF_BTF_LOAD ja BPF_MAP_CREATE kĂ€skudega. BPF funktsioonidesse on eemaldatud piirang, mis ei vĂ”imalda edastada rohkem kui 5 parameetrit. Lisatud on ohutu juurdepÀÀs jagatud mĂ€lu bpf_arena, ilma kartmata mittealokatsiooni lehti kĂ€sitleda (page fault). Uus BPF hash map struktuuri variant, mis lubab dĂŒnaamilist suuruse muutmist, on rakendatud.
- Parandatud on '/proc/interrupts' vÀljundi loomist katkestuste statistika jaoks, samuti on moderniseeritud struktuurid katkestuste arvestamiseks ja lisatud vahemÀlu.
- Kiirendatud on faili '/proc/filesystems' genereerimist, mida kasutatakse libselinux-is.
- Ălesannete ajakavandajal on nĂŒĂŒd rakendatud koormuse tasakaalustamise tugi CPU tuumade vahel, arvestades protsessori sisemisi vahemĂ€lu olekuid. Ajakavandaja pĂŒĂŒab nĂŒĂŒd rĂŒhmitada protsesse, mis kasutavad ĂŒhiseid ressursse, nĂ€iteks ĂŒhe protsessi lĂ”ime, et kasutada neid sama taseme vahemĂ€lus, mis suurendab andmete kĂ€ttesaadavuse tĂ”husust, suurendades vajadusel vahemĂ€lus vajalike andmete leidmise tĂ”enĂ€osust.
- SCHED_EXT mehhanismis, mis vĂ”imaldab BPF-i kasutamist CPU ajakavandajate loomiseks, on edasi viidud vĂ”imalus luua saabuvad ajakavandajad (sub-scheduler), mille abil saab iga cgroup-i jaoks kasutada oma ĂŒlesannete ajakavandajat.
- On jĂ€tkatud muudatuste ĂŒleviimist Rust-for-Linux harust, mis on seotud Rust-i keele kasutamisega teise keele arendusena draiverite ja tuumamoodulite loomiseks (Rust-i tugi ei ole vaikimisi aktiveeritud ja see ei too kaasa Rust-i kaasamist tuuma kohustuslike kogumite sĂ”ltuvustesse). Rust-i kasutamise vĂ”imalus tuumas on rakendatud s390 arhitektuuril. Paketti on lisatud 'zerocopy', mis sisaldab kiireid mĂ€lupÀÀsupimeetriga primitiive 'unsafe' reĆŸiimi koodi jaoks.
- Tuuma kompileerimiseks vajalik LLVM tööriistade minimaalne versioon on tÔstetud 17.0.1-le.
- Minimaalne C-raamatukogu nolibc, mis on kaasas Linuxi allika tekstidega ja mis pakub vahekihit loovusi pĂ”hitegevuste sĂŒsteemi kutsete suhtes, on saanud toe OpenRISC ja 32-bit PA-RISC arhitektuuridele.
- VahetussĂŒsteemi (swap) on viidud lĂ€bi optimeerimisi, mis suurendavad jĂ”udlust ja vĂ€hendavad sĂŒsteemi mĂ€lutarvet, vĂ€hendades staatiliste metaandmete salvestamise kulusid ja ĂŒhtlustades anonĂŒĂŒmse ja jagatud mĂ€lu töötlemist lehtede kasutamisel. MĂ€lu tarbimise vĂ€henemine on piisavalt mĂ€rkimisvÀÀrne, nĂ€iteks 1 TB vahetuspartitsiooni monteerimisel tĂ€heldatakse mĂ€lutarbimise vĂ€henemist umbes 512 MB vĂ”rra.
- MĂ€lu tĂ”rjumismehhanismi tĂ”husust on suurendatud, eemaldata vĂ”i viies vahetusse mĂ€lupiirkonna, et vabastada mĂ€lu, kui sĂŒsteemis on mĂ€lu puudus. Teatud koormuste korral, nĂ€iteks MongoDB testimisel YCSB (Yahoo! Cloud Serving Benchmark) abil, tĂ€heldatakse jĂ”udluse kasvu kuni 30%.
- KogumissĂŒsteemi on lisatud kĂ€sk âmake sbomâ, mis genereerib SBOM (Software Bill Of Materials) loetelusid, mis peegeldavad jĂ”udnud komponentide, raamatukogude ja sĂ”ltuvuste, samuti nende litsentside teavet, mis on saadud SPDX pĂ€istest koodifailides.
- Nimetamata kanalite (pipe) rakenduses on optimeeritud lukustuste töötlemist (mÀlu eraldamise toimingud on viidud lukustuse ulatusest vÀlja), mis on suurendanud nimetamata kanalite lÀbilaskevÔimet 21-48% ja vÀhendanud viivitusi 17-33%.
- Virtualiseerimine ja turvalisus
- Slabi mĂ€lu jaotamise mehhanismile (slab allocator) on lisatud vĂ”imalus kasutada mĂ€lu eraldamise tokeneid (Allocation Token), mis on rakendatud Clang 22 kompilatsioonis. Tokeneid saab kasutada mĂ€lu eraldamise toimingute mĂ€rgistamiseks ainulaadsete identifikaatoritega ning erinevat tĂŒĂŒpi objektide eraldi paigutamise korraldamiseks, et raskendada haavatavuste, mis on seotud puhverĂŒlevooluga, ekspluateerimist (puhverĂŒlevool ĂŒhe objekti tĂŒĂŒbiga ei ole nii lihtne kasutada teiste objektide tĂŒĂŒpide kahjustamiseks).
- AF_ALG mehhanism, mida kasutati Copy Fail haavatavuses andmete muutmiseks lehekĂŒljepuhvrisse, on kuulutatud aegunuks ja plaanis eemaldada ĂŒhes tulevases vĂ€ljaandes. AF_ALG vĂ”imaldab kasutada riistvarakiirendajaid krĂŒptograafiliste arvutuste jaoks kernelis Crypto API-s, kuid seda rakendatakse ĂŒsna spetsiifilistes olukordades. Kernelis 7.2 on AF_ALG eemaldatud asĂŒnkroonse sisendi/vĂ€ljundi tugi, vanade draiverite ja zero-copy mehhanismi tugi skcipher ja aead teostustes. JĂ€rele on jÀÀnud ainult tarkvaralised rakendused krĂŒptograafiliste algoritmide jaoks, ja riistvaraliste krĂŒpto kiirendajate toetus kernelis crypto API-s on eemaldatud, kuna AF_ALG laiendab oluliselt rĂŒnnaku pinda, kuid ei paku vĂ”rreldes krĂŒptograafia rakendamisega kasutajaruumi paremat jĂ”udlust. AF_ALG kasutati Cryptsetup'i tööriistakomplektis, kuid selle toetus eemaldati hiljutises vĂ€ljaandes 2.8.7.
- IMA (Integrity Measurement Architecture) mehhanismile, mis vĂ”imaldab vĂ€listel teenustel tuvastada kernelis alam-sĂŒsteemide olekuid, et tagada nende autentimine, on lisatud tugi sisemiste tabelite ekspordiks mÔÔtmistulemustega kasutajaruumi, eemaldades need kernelist, et sÀÀsta mĂ€lu.
- Landlock moodul, mis pakub privileegitud programmidele vahendeid Linuxi tuuma objekti kasutuse piiramiseks (failihierarhiad, vĂ”rgu soketid, ioctl jne), on lisatud UDP sokettide juurdepÀÀsu haldamise tugi ning vĂ”imalus valikuliselt keelata objekti blokaadide logimist, et vĂ€ltida logi ĂŒlekoormamist ebaoluliste teadetega.
- Tuuma on vabastatud funktsiooni strncpy() kasutamisest, mis kopeerib sisendstringist kindla arvu bite. strncpy() kasutamine vĂ”ib pĂ”hjustada vigu, kui null sĂŒmbol stringi lĂ”pus vahele jÀÀb vĂ”i kui see tĂ€idab stringi nullidega. Soovitatakse kasutada funktsioone strscpy() ja strscpy_pad() nulliga lĂ”petatud stringide kopeerimiseks, samuti strtomem_pad(), memcpy_and_pad() ja memcpy() tuntud fikseeritud suurusega stringide kopeerimiseks. Töö tuuma vabastamiseks strncpy() kasutamisest algas 2020. aastal ning nĂ”udis 70 arendajalt 362 muudatust.
- HĂŒpervisor KVM Lisatud tugi Intel MBEC (Mode-Based Execution Control) ja AMD GMET (Guest-Mode Execution Trap) laiendustele, mis vĂ”imaldavad mĂ€lu kaarditabelites eraldi hallata koodi tĂ€itmise Ă”igusi tuuma ja kasutajaruumi jaoks kĂŒlalisĂŒsteemides. Varasemad Intel ja AMD riistvaralise virtualiseerimise laiendused lubasid mĂ€rkida mĂ€lu lehekĂŒljed, mis on tĂ€itmiseks saadaval, ainult ĂŒhe bitiga, samas kui tuuma ja kasutajaruumi Ă”iguste vaheline programm kĂ€idi lĂ€bi hĂŒperviisori tasemel. MBEC ja GMET kasutamine vĂ€listab hĂŒperviisori Ă”iguste kontrollimise ja vĂ€hendab oluliselt ressursside nĂ”udlikkust, kui juhtimine kĂŒlalisĂŒsteemist hĂŒperviisorile edasi antakse (VMexit).
- VĂ”rgusĂŒsteem
- TCP-AO (TCP Authentication Option, RFC 5925) laienduse rakendamine on viidud uue krĂŒptograafilise raamatukogu libcrypto kasutamise alla, mis on vĂ”imaldanud koodi lihtsustada ja tĂ”husust parandada. TCP-AO vĂ”imaldab verifitseerida TCP-pealkirju MAC-koodide (Message Authentication Code) abil, kasutades kaasaegsemaid algoritme HMAC-SHA-1-96 ja AES-128-CMAC-96 asemel varem saadaval olnud TCP-MD5, mis pĂ”hines vananenud MD5 algoritmil.
- Multipath TCP (MPTCP) ĂŒhenduste toetatavate subvoogude arv on suurenenud 8-lt 64-le.
- Tööd jÀtkatakse tuuma vÔrgu paketi globale lukustamise vÀhendamiseks rtnl_lock.
- AppleTalk protokolli steki, mida kasutati Appleâi arvutites alates 1985. aastast ja mis asendati 1990ndatel TCP/IP-ga, on eemaldatud tuumast. Samuti on eemaldatud ATM andmeedastustehnoloogia komponendid, mis ei ole seotud PPPoATM-iga, ning ARCnet vĂ”rguinterfeisid ISA ja PCMCIA busside baasil, PCMCIA liidese Bluetooth-adapterid, Chelsea TLS-kiirendajad, kood TLS-i integreerimiseks sockmapiga ja tugi 5/10 MHz sagedusvahemikele cfg80211/mac80211 traadita stegis. Erinevate blokeeringute tĂ”ttu, mille lahendamiseks pole leidunud head lahendust, on eemaldatud ka TLS töötluse kiirem rakendus TCP Offload Engine baasil (kuid laialdaselt kasutatav TLS offload on sĂ€ilinud). 32-bitiste x_tables ĂŒhilduvuse kood 64-bitistes sĂŒsteemides on vĂ€lja lĂŒlitatud ja plaanis eemaldada.
- pppoe draiverisse on lisatud tugi GRO (Generic Receive Offload) ja GSO (Generic Segmentation Offload) mehhanismidele, et kiirendada pakettide taastamist ja segmentimist riistvara tasandil. GRO ja GSO kasutamine vÔimaldab oluliselt suurendada sissetuleva liikluse lÀbilaskevÔimet, nÀiteks MediaTek MT7621 seadmetes, kus aadresside tÔlke konfiguratsioonis on maksimaalne lÀbilaskevÔime tÔusnud 130 Mbit/s-lt 630 Mbit/s-ni.
- Varustus
- AMDGPU draiveris on saadud algtugi HDMI 2.1 FRL (Fixed Rate Link) tehnoloogiale, mis vĂ”imaldab edastada kaotamata videot 4K/120Hz ja 8K/60Hz kvaliteedis. Erinevalt varasemast, mil HDMI 2.1 toe rakendamine avatud draiverites ei Ă”nnestunud HDMI Foorumi litsentsinĂ”uete tĂ”ttu, on AMD-l nĂŒĂŒd Ă”nnestunud selline rakendus kokku leppida.
- i915 draiverisse on lisatud vÔimalus seadistada seadme kontrolleri taustavÀrvi kuvamine. On rakendatud parameeter pin_params.needs_low_address.
- Inteli Xe arhitektuuri pĂ”hineva GPU drm-draiveri (Direct Rendering Manager) Xe arendamine jĂ€tkub, mida kasutatakse Inteli Arc seeria graafikakaartides ja integreeritud graafikas, alates Tiger Lake protsessoritest. Algne tugi CRI (Crescent Island) platvormile on lisatud. dGPU plattformide Xe3p jaoks on rakendatud sĂŒsteemi kontroller.
- Nouveau draiveris on lahendatud probleemid NVIDIA GA100 GPU-ga.
- v3d draiverisse on lisatud vÔimalus hallata v3D GPU energiatarbimist Raspberry Pi plaatidel.
- NVIDIA GPU-draiveri Nova komponentide integratsioon jÀtkub GSP-firmware'iga, mida kasutatakse alates NVIDIA GeForce RTX 2000 seeriast, mis pÔhineb Turingi mikroarhitektuuril. Draiver on kirjutatud Rusti keeles. Lisatud on tugi NVIDIA GPU-le GA100 ja seeriatele Hopper ja Blackwell.
- Lisatud tugi ARM-platvormidele, SoC-dele ja seadmetele: Apple t8122 (M3), Motorola Edge 30, Nothing Phone 3a, Google Pixel 3a XL, Qualcomm Dragonwing IPQ9650, Huawei Hawi, ZTE zx297520v3, Renesas R-Car M3Le, ASPEED AST27xx, Cortina Gemini, NXP i.MX6/8/9, NXP LX2160A, TI K3 AM62x.
Samas on Ladina-Ameerika Tasuta Tarkvara Fond loonud tĂ€iesti vabade kĂ€rg 7.2 â Linux-libre 7.2-gnu, mis on puhastatud firmware'ide ja draiverite elementidest, mis sisaldavad mittevabu komponente vĂ”i koodi osi, mille kasutusala on tootja poolt piiratud. VĂ€ljalaskes 7.2 on puhastatud uute draiverite rt722-sdca ja tac5xx2 blobidest. Uuendatud on puhastuskoode draiverites amdgpu, nova core, qcom iris, q6v5, iwlwifi, amdxnda, adreno, r8152 ja mt792x. Tehtud on kohandamised firmware laadimise liideste jaoks. Tehtud on blobide nimede puhastamine ARM-kiipide dts-failides (seadmepuu).
Allikas: opennet.ru
