Pas dy muajsh zhvillimi, Linus Torvalds paraqiti lëshimi i kernelit Linux 6.14. Ndër ndryshimet më të dukshme janë: driveri ntsync me primitivët e sinkronizimit Windows NT, konfiguroi balancimin e operacioneve të leximit në Btrfs RAID1, mbështetje për reflink në XFS në modalitetin realtime, mundësia e të dhënave të hyrjes/ dalje pa e ruajtur në cache, grupi i cgroup dmem për kufizimin e memories GPU, angazhimi io_uring në FUSE, delegimi i atributeve në NFS, mbështetje për shkrimin atomik në Device mapper, përshpejtimi i linkeve simbolike, menaxhimi i mundësisë për të ekzekutuar skripte, mbështetje për çipat Qualcomm Snapdragon 8 Elite, driver për NPU AMD.
Në versionin e ri janë përfshirë 12115 rregullime nga 1984 zhvillues, madhësia e patch-it është 39 MB (ndryshimet prekin 10170 skeduj, janë shtuar 531586 radhë kodi, janë fshirë 235999 radhë). Në botimin e kaluar pati 14172 rregullime nga 2086 zhvillues, madhësia e patch-it ishte 46 MB. Rreth 41% e të gjitha ndryshimeve në 6.14 lidhen me driverët e pajisjeve, rreth 13% e ndryshimeve kanë të bëjnë me përditësimin e kodit specifik për arkitekturën harduerike, 14% lidhen me grigjën e rrjetit, 7% me sistemet e skedarëve dhe 4% me sistemet e brendshme të kernelit.
- Sistemi i disqeve, hyrja/ dalje dhe sistemet e skedarëve
- In the Btrfs file system ka dalë mbështetje për metoda të reja të balancimit të operacioneve të leximit mes disqeve që janë pjesë e grumbullit RAID1. Përveç shpërndarjes aktuale të ngarkesës në bazë të identifikuesve të proceseve (pid), në versionin e ri janë propozuar tri modalitete të reja të balancimit: «rotation» (shpërndarje e barabartë e ngarkesës në të gjitha disqet, modaliteti aktivizohet sipas parazgjedhjes); «latency» (shpërndarja duke marrë parasysh vonesat, mund të jetë e dobishme në raste dështimesh apo punësimi të paqëndrueshëm të disqeve); devid (menaxhim manual). Për të ndryshuar modalitetin e balancimit është shtuar interfaci /sys/fs/btrfs//read_policy. Ndër ndryshimet e tjera në Btrfs - implementim ioctl FS_IOC_READ_VERITY_METADATA.
- Shtuar modaliteti i hyrjes/ dalje pa e ruajtur në cache, në të cilin të dhënat fshihen nga cache i faqeve menjëherë pas përfundimit të operacioneve të leximit apo shkrimit. Ky ndryshim mund të jetë i dobishëm kur përdoren pajisje ruajtjeje shumë të shpejta, për të cilat ruajtja e operacioneve në memorie është e tepërt. Për këto pajisje, modaliteti i ri lejon përjashtimin e harxhimit të tepërt të memories nga cache i faqeve pa përdorur një API të komplikuar për hyrjen e drejtpërdrejtë (Direct I/O).
- NĂ« fsnotify, mekanizmi pĂ«r ndjekjen e ndryshimeve nĂ« sistemin e skedarĂ«ve, filtrimi i pakove dhe pĂ«rditĂ«simet me "njĂ« klik". ngjarje e re FS_PRE_ACCESS, e gjeneruar nĂ« fazĂ«n pĂ«rpara se tĂ« aksesoni pĂ«rmbajtjen e skedarit. Ngjarja pĂ«rpunoset nĂ« mĂ«nyrĂ« sinkrone, do thotĂ« qĂ« bĂ«rthama dĂ«rgon ngjarjen dhe pret tĂ« marrĂ« pĂ«rgjigje. NĂ«se pĂ«rgjigja Ă«shtĂ« e marrĂ« â operacioni realizohet, dhe nĂ«se ka dĂ«shtim â thirrja sistemike kthen nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit kodin e gabimit. Me anĂ« tĂ« FS_PRE_ACCESS, procesi nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit, pĂ«r shembull, mund tĂ« organizojĂ« mbushjen e skedarit ndĂ«rsa tĂ« dhĂ«nat janĂ« tĂ« gatshme nĂ« magazinĂ«n e ngadalshme.
- Nënsiat FUSE, që lejon krijimin e implementimeve të sistemeve të skedarëve në hapësirën e përdoruesit, është shtuar mbështetje shkëmbimi i të dhënave ndërmjet bërthamës dhe trajtuesit në hapësirën e përdoruesit duke përdorur mekanizmin e hyrjes/ daljeve io_uring. Ndryshimi lejon të rritet performanca e FUSE duke reduktuar kalimet e kontekstit ndërmjet bërthamës dhe hapësirës së përdoruesit.
- Në sistemin e skedarëve XFS është shtuar mundësia përdorimi i mapimit të kundërt (rmap, reverse-mapping) në modin e punës me vonesa të parashikueshme ("realtime device"). Mapimi i kundërt lejon të përcaktohet për cilin skedar ruhen blloqet e caktuara në pajisjen e magazinimit. Me anë të rmap në XFS për modin realtime është realizuar mbështetje për operacionin reflink, që lejon krijimin e kopjeve të skedarëve përmes klonimit të metadata-s së skedarit dhe krijimin e një lidhjeje në të dhënat ekzistuese pa i kopjuar ato në të vërtetë.
- Në VFS është zbatuar ruajtjen e madhësive të lidhjeve simbolike, e cila ka lejuar përshpejtimin e operacionit readlink me 1.5% (në testin me /initrd.img në ext4). Ruajtja është aktivizuar në FS ext4 dhe tmpfs.
- Në realizimin e NFSv4.2 është shtuar mbështetje për delegimin e atributeve të skedarëve, që lejon menaxhimin e atributeve të tilla të skedarëve si koha e modifikimit (mtime), nga ana e klientit NFS, pa nevojën për të ridërguar ndryshimet në server. Në NFS është përmirësuar gjithashtu mbështetja për protokollin "LOCALIO", që lejon përcaktimin nëse klienti dhe serveri NFS ndodhen në të njëjtin host, për të aktivizuar optimizimet përkatëse, si përdorimi nga klienti i hyrjes direkte (Direct I/O).
- Rritur performancën e operacioneve të leximit në sistemet e skedarëve NETFS, CIFS dhe AFS (Sistemi i Skedarëve Andrew).
- Në Squashfs është aktivizuar rezhimi i ngarkesës direkte të blloqeve në cache-n e faqeve (SQUASHFS_FILE_DIRECT), i cili lejon ta kalosh pa një cache të veçantë read_page. Ndryshimi ka lejuar të reduktohet memoria e përdorur gjatë punës me Squashfs.
- Në thirrjen sistemike statx() është implementuar flagu STATX_DIO_READ_ALIGN, për të përcaktuar përputhjen e nevojshme për operacionet e leximit nga skedari.
- NĂ« sistemin e files Bcachefs pĂ«rditĂ«suar dhe i stabilizuar formati i strukturave diskore. Ădo ndryshim tjetĂ«r mbi formatin do tĂ« klasifikohet si opsional dhe do tĂ« realizohet nĂ« formĂ«n e shtesave opsionale. ShpejtĂ«sia e kontrollit tĂ« integritetit tĂ« FS Ă«shtĂ« pĂ«rmirĂ«suar ndjeshĂ«m. PĂ«r mĂ« tepĂ«r, nĂ« Bcachefs Ă«shtĂ« pĂ«rmirĂ«suar funksionimi nĂ« modalitetin vetĂ«m-pĂ«r-lexim; janĂ« eliminuar problemet qĂ« çojnĂ« nĂ« qasjen nĂ« memorie pas lirohet (use after free); janĂ« zgjidhur problemet me referentĂ«t reflink nĂ« fsck; Ă«shtĂ« korrigjuar trajtimi i rivendosjes sĂ« transaksionit.
- Kthehet moduli md-linear, i cili është destinuar për të bashkuar pajisjet bllokuese. Ky modul ishte shpallur më parë i vjetruar dhe ishte hequr nga bërthama 6.8, por siç duket ishte i kërkuar dhe për këtë arsye tani është rikthyer.
- Sistemët e skedarëve F2FS dhe SQUASHFS janë kthyer në përdorimin e folios të faqeve të memories (folio të faqeve).
- Në drejtuesin null_blk është implementuar atributi "rotational", i cili vendoset përmes configfs dhe lejon simulimin e punës me pajisje bazuar në disqe rotativë për të lehtësuar testimin e funksioneve të bërthamës.
- Në sistemin Device mapper dhe në modulët dm-mirror, dm-io, dm-table, dm-linear, dm-stripe dhe dm-raid1 është implementuar përkrahja e shkrimit atomik.
- Memorie dhe shërbime sistemike
- Përfunduar integrimi në bërthamë të drejtuesit ntsync, implementues i pajisjes simbolike \/dev\ntsync dhe një grup primitvësh për sinkronizim, të përdorur në bërthamën Windows NT. Implementimi i këtyre primitvëve në nivelin e bërthamës lejon një rritje të ndjeshme të performancës së lojërave Windows, të cilat ekzekutohen përmes Wine. Rritja e performancës arrihet duke eliminuar kostot e tepruara që lidhen me përdorimin e RPC në hapësirën e përdoruesit. Krijimi i një drejtuesi të veçantë për bërthamën Linux justifikohet nga vështirësitë në realizimin korrek të API-së së sinkronizimit NT mbi primitvët ekzistues në bërthamë.
- Shtuar një kontrollues të ri cgroup DMEM për menaxhimin e përllogaritjeve të kujtesës së pajisjeve si GPU. DMEM lejon krijimin e cgroup të veçanta për detyra të ndryshme që punojnë me GPU, që t'i japin mundësinë për të operuar pa ndikuar njëra-tjetrën. Kjo mundësi e re zgjidh problemin e mbylljes së detyrave me GPU kur memorie e disponueshme përfundon, falë përllogaritjes së memories së reflektuar nga GPU dhe memories së përdorur nga drejtuesit e CPU në cgroup të veçanta.
- Janë bërë optimizime për shkallëzimin e operacionit të pastrimit (flush) të caches TLB (Translation Lookaside Buffer), i përdorur për të përshpejtuar konvertimin e adresave virtuale në ato fizike. Optimizmat e shtuar përfshijnë vonimin e përditësimit të disa strukturave të dhënash gjatë ndërrimit të konteksteve, duke rritur kështu performancën gjatë kalimit në disa teste.
- Rritur performanca e mekanizmit MGLRU (Multi-Generational LRU), e cila përdoret për të përcaktuar se cilat faqe memorjeje përdoren dhe cilat mund të zëvendësohen në seksionin e shkarkimit.
- ĂshtĂ« vazhduar kalimin e ndryshimeve nga dega Rust-for-Linux, qĂ« lidhet me pĂ«rdorimin e gjuhĂ«s Rust si njĂ« gjuhĂ« e dytĂ« pĂ«r zhvillimin e drejtuesve dhe moduleve tĂ« kernelit (mbĂ«shtetje pĂ«r Rust nuk aktivizohet automatikisht dhe nuk i shton Rust si njĂ« varĂ«si tĂ« domosdoshme pĂ«r ndĂ«rtimin e kernelit). ĂshtĂ« ofruar mundĂ«sia e pĂ«rdorimit nĂ« kodin e kernelit tĂ« makros "derive(CoercePointee)" qĂ« lejon pĂ«rdorimin e treguesve inteligjentĂ« me objekte tĂ« trait-eve. NĂ« pĂ«rbĂ«rje tĂ« kernelit are packages with proprietary NVIDIA drivers. For systems with NVIDIA graphics chips, free "Nouveau" drivers continue to be offered by default, while proprietary drivers are available as an option for quick installation after the installation is completed; kornizave Rust pĂ«r PCI, platforma, Open Firmware, pajisjeve simbolike dhe disa funksioneve tĂ« hyrjes/daljeve. Greg Kroah-Hartman, i cili Ă«shtĂ« pĂ«rgjegjĂ«s pĂ«r mbĂ«shtetje tĂ« degĂ«s stabile tĂ« kernelit Linux, e karakterizoi gjendjen aktuale si "gati pĂ«r tĂ« shkruar njĂ« drejtues real nĂ« Rust".
- Në skenarët e ndërtimit suggested kodi i ri për gjenerimin e versioneve të simboleve të këndimit për modulet e ngarkueshme, i cili tani përdor informacionin nga regjistrat e këndimit në formatin DWARF, në vend që të analizojë drejtpërdrejt kodin burimor. Ky ndryshim lejon zbatimin e versionimit të simboleve të këndimit për modulet e shkruara në gjuhën Rust. Implementimi i vjetër gjithashtu është lënë në kernel, dhe zgjedhja e gjeneratorit bëhet në nivelin e opsioneve të ndërtimit.
- Për arkitekturën PowerPC është implementuar mbështetje për modin e përjashtjes së ngadaltë të detyrave (PREEMPT_LAZY, lazy preemption), i cili përputhet me modin e plotë të përjashtjes («full preemption») për detyrat realtime (RR/FIFO/DEADLINE), por vonon përjashtimin e detyrave normale (SCHED_NORMAL) deri në kufirin e tikës.
- Në nën-sistemin e profilizimit të performancës perf është shtuar mbështetje për numëruesit e konsumit të energjisë për procesorët AMD. Shtuar mundësia e funksionimit në sisteme që kanë deri në 2048 bërthama CPU.
- U ofrua mundësia për të përdorur parametrin sysctl pid_max me hapësirat e emrave të identifikatorëve të proceseve (ID namespace). Parametri pid_max është i destinuar për të kufizuar vlerën maksimale të identifikatorëve të proceseve (PID) dhe tani mund të përdoret për të kufizuar numrin maksimal të mundshëm të proceseve të nisura në hapësirën e emrave të dhënë. Trajtimi i parametrave bëhet në mënyrë hierarkike, dmth kufizimet në hapësirat e jashtme të emrave shtrihen në hapësirat e brendshme.
- Për përdorim në nisjen e procesit të thirrjes së sistemit execveat në sistemin e skedarëve /proc tani do të shfaqet emri i skedarit të nisur, jo numri i descriptorit të skedarit.
- Në kodin burimor të bërthamës (në katalogun samples) është shtuar një mjet mountinfo, që demonstrojnë përdorimin e thirrjeve të sistemit statmount() dhe listmount().
- Në nën-sistemin BPF u propozuan funksione të reja bpf_local_irq_save() dhe bpf_local_irq_restore() për çaktivizimin e përkohshëm të ndërprerjeve në CPU-në lokale. Funksionet mund të përdoren për të zbatuar struktura, përpunimi i të cilave nuk ndalet nga ndërprerjet.
- Në thirrjen e sistemit madvise() me përdorimin e flagjeve MADV_DONTNEED dhe MADV_FREE është siguruar çlirimi i tableve të faqeve të memories të lidhura me gamën e adresave që po lirohen, pasi në disa situata faqet e zbrazëta të memories mund të konsumojnë një sasi të konsiderueshme memories.
- Për arkitekturën OpenRISC është realizuar mbështetje për mekanizmin e sekuencave të ri-nisjesh (rseq, sekuenca të ri-nisjesh), i destinuar për kryerjen e shpejtë atomike të operacioneve, të cilat në rast të ndërprerjes nga një thread tjetër pastrohen dhe përpilohet një përpjekje e re për ekzekutimin.
- ĂshtĂ« bĂ«rĂ« njĂ« reorganizim i kodit me implementimin e algoritmave CRC32 dhe CRC-T10DIF, i cili nuk pĂ«rplaset mĂ« me nĂ«n-sistemin crypto dhe thirret drejtpĂ«rdrejt nga interfaci i bibliotekĂ«s. Ndryshimi ka mundĂ«suar thjeshtimin e kodit dhe rritjen e efikasitetit tĂ« tij.
- Në sistemin e hyrjes/daljes asinkrone io_uring është shtuar ndërfaqe për të transmetuar metadata shtesë mbi integritetin gjatë kryerjes së operacioneve të leximit dhe shkruajtjes.
- Virtualizimi dhe siguria
- Në thirrjen e sistemit execveat është shtuar flag AT_EXECVE_CHECK, i cili lejon të kryejë një kontroll permisitë e ekzekutimit të skedarëve pa nisjen e tyre faktike, por me marrë parasysh politikat e sigurisë, të drejtat e qasjes dhe modulet aktive LSM. Për përdorim së bashku me AT_EXECVE_CHECK janë propozuar flamujt securebit SECBIT_EXEC_RESTRICT_FILE dhe SECBIT_EXEC_DENY_INTERACTIVE, të cilët mund të përdoren për të kufizuar ekzekutimin e skedarëve me skripte në gjuhët e programimit interpretuese. Flamuri SECBIT_EXEC_RESTRICT_FILE përshkruan kompilatorët dhe interpretorët që të përdorin opsionin AT_EXECVE_CHECK për të verifikuar lejueshmërinë e ekzekutimit, ndërsa flamuri SECBIT_EXEC_DENY_INTERACTIVE ndalon përpunimin e komandeve interaktive. Ideja kryesore e ndryshimit është mundësia e të aplikuarit politikave të sigurisë jo vetëm për skedarët tradicionalë ekzekutues, por edhe për skedarët tekstualë me skripte që mund të ngarkohen përmes ekzekutimit të interpretorit (p.sh., ndalimi i ekzekutimit mund të realizohet jo vetëm gjatë nisjes "./script.sh", por gjithashtu gjatë ekzekutimit në formën "sh script.sh").
- Në sistemet x86 është implementuar mbështetje për numrat e mbrojtur të kohës për sistemet mysafire, të cilat nuk lejojnë ndryshimin e orëve sistemike të sistemit mysafir nga mjedisi i hostit. Kjo mundësi është realizuar mbi mekanizmin AMD SEV (Virtualizimi i Koduar i Sigurt), i përdorur në sistemet e virtualizimit për të mbrojtur makinat virtuale nga ndërhyrja e hipervizorit ose administratori i sistemit host.
- Në sistemin e kontrollit të aksesit mandat SELinux është shtuar mbështetje rregullat xperm, të cilat lejojnë lidhjen e politikave SELinux me thirrjet e caktuara ioctl() ose mesazhet netlink.
- Për të autentikuar modulët e bërthamës me nënshkrim digjital, algoritmi i SHA1 është përdorur si parazgjedhje the LZ4 algorithm has been used algoritmi SHA512.
- Në drejtuesit për sistemet mysafire të VirtualBox është përfshirë mbështetje për arkitekturën ARM64.
- Në hiperprizorin KVM ka vazhduar puna duke përdorur mekanizmin Intel TDX (Zgjerimet e Domain-it të Besuar) për enkriptimin e memories së sistemeve mysafire.
- Në virtio_blk është shtuar mbështetje për modin e rikuperimit të gabimeve.
- Sistemi rrjetor
- Në implementimin e protokolit RxRPC ka dalë mundësia e përdorimit të kuadrove të mëdha UDP për rritjen e kapacitetit.
- Për TCP është shtuar mbështetje për algoritmin RACK-TLP për të përcaktuar humbjen e paketave.
- Shtuar një parametr i ri sysctl tcp_tw_reuse_delay, veprues në lidhje me hapësirën e emrave (network namespace) dhe që lejon përcaktimin e vonesës që e bën sistemin të mundësojë përsëritjen e numrit të portit rrjetës pasi të mbyllet TCP-soketi.
- Shtuar mundësi për të zgjedhur ofruesin e kohës së saktë (PTP) për formimin e markave të kohës në nivelet PHY dhe MAC.
- PĂ«r IPsec Ă«shtĂ« implementuar mbĂ«shtetje pĂ«r mekanizmin e agregimit dhe fragmentimit tĂ« paketave IP tĂ« inkapsuluara â IP-TFS/AGGFRAG (IP Traffic Flow Security/Aggregation and Fragmentation Mode pĂ«r Inkapsulimin e Ngarkesave tĂ« SigurisĂ«).
- Në sistemin e soketeve rrjetë është shtuar mbështetje transmetimi i informacionit mbi prioritetin (SO_PRIORITY) në formën e mesazheve të kontrollit (cmsg). Për soketet rrjetë është shtuar opsioni SO_RCVPRIORITY, i cili përfshin në funksionet recvmsg() transmetimin e informacionit mbi prioritetin e soketëve.
- Pajisje
- Shtuar në drivere amdxdna për akseleratorët NPU (Njësia e Procesimit Neural) të integruar në CPU-të AMD, të bazuar në arkitekturën XDNA, të destinuara për të përshpejtuar operacionet e lidhura me mësimin makinerik. NPU e bazuar në arkitekturën XDNA është e disponueshme në seritë 7040 dhe 8040 të procesorëve AMD Ryzen, akseleratorëve AMD Alveo V70 dhe SoC AMD Versal.
- Në driverin i915 janë shtuar identifikuesit e GPU-ve të rinj, është realizuar procesori i dështimeve të inicializimit HDMI, është përmirësuar besueshmëria e rindizjes së motorëve GPU në sistemet Haswell dhe më të vjetra.
- Ka vazhduar puna mbi drajverin drm (Menaxheri i Shfaqjes Direkte) Xe për GPU të bazuar në arkitekturën Intel Xe, e cila përdoret në kartat grafike të familjes Intel Arc dhe grafikën e integruar, duke filluar nga procesorët Tiger Lake.
- Në drejtorin Nouveau është shtuar mundësia për të transmetuar buferët me logjet GSP-RM përmes debugfs.
- NĂ« drajverin AMDGPU Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r mekanizmin DRM panic, i cili tregon njĂ« ngjashmĂ«ri me "ekranin e kaltĂ«r tĂ« vdekjes" nĂ« rast dĂ«shtimesh. ĂshtĂ« vazhduar pĂ«rgatitja pĂ«r mbĂ«shtetje tĂ« serisĂ« sĂ« ardhshme tĂ« kartave grafike Radeon RX 9000 tĂ« bazuara nĂ« arkitekturĂ«n RDNA4. ĂshtĂ« pĂ«rmirĂ«suar mbĂ«shtetje pĂ«r DCN 3.5, GG 9.5, IH 4.4, PSP 13.x, SMU 13.x, VCN 5.x, JPEG 5.x, GC 12.x, DC FAMS, RAS dhe ISP.
- Në drajverin DRM msm (GPU Qualcomm Adreno) është shtuar mbështetje për platformën Qualcomm SM6150 (QCS615).
- Në drejtorin DRM panfrost është shtuar mbështetje për SoC MediaTek MT8188 me GPU Mali-G57.
- Në drejtorin DRM vc4 është shtuar mbështetje për SoC Broadcom BCM2712 (Raspberry Pi 5).
- Në drajverin vfio nvgrace-gpu është shtuar mbështetje çipave NVIDIA Grace Blackwell 200.
- NĂ« pĂ«rbĂ«rje Ă«shtĂ« aktivizuar drajver pĂ«r kontrollorĂ«t Intel THC (Kontrolluesi i SkuadrĂ«s sĂ« Prekjes), i pĂ«rdorur pĂ«r ndĂ«rveprimin me ekranet me prekje dhe touchpad nĂ« disa laptopĂ«. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r pajisjet Wacom me ndĂ«rfaqe PCI. Shtuar mbĂ«shtetje pĂ«r kontrollorĂ«t e lojrave QH Electronics.
- Shtuar mbĂ«shtetje platformat ARM, SoC dhe pajisjet: Qualcomm Snapdragon 8 Elite (SM8750), Qualcomm Snapdragon AR2 (SAR2130P), Qualcomm IQ6/IQ8, Snapdragon 425 (MSM8917), Samsung Exynos 9810, Blaize BLZP1600, Microchip SAMA7D65, Renesas R-Car V4H ES3.0, Renesas RZ/G3E. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r SoC SpacemiT K1 tĂ« bazuar nĂ« arkitekturĂ«n RISC-V.
- Në sistemin e zërit ALSA për MIDI 2.0 janë zgjeruar API rawmidi dhe sequencer. Në API për transferimin e operacioneve të kompresimit në anën e kartës së zërit është shtuar mbështetje për ASRC (Konvertimi Asinkron i Shkallës së Mostrimit).
- është shtuar mbështetje për sistemet e zërit të pajisjeve Allwinner suinv F1C100s, Awinc AW88083, Realtek ALC5682I-VE, TAS2781, Focusrite Scarlett 4th Gen 16i16, 18i16 dhe 18i20. Shtuar përkrahje për kufjet pa tel SteelSeries Arctis 9.
Burimi: linux.org.ru
