Pas dy muajsh zhvillimi, Linus Torvalds prezantoi publikimin e kernelit Linux 6.13. Ndër ndryshimet më të dukshme janë: modaliteti i zhvendosjes së vonuar në planifikuesin e detyrave, mbështetja për shkrim atomik në XFS dhe Ext4, mekanizmi «multigrain timestamps», modaliteti adaptiv i aktivizimit të polling në nënsistemin e rrjetit, mundësia e kompilimit me optimizime AutoFDO, mbështetja për mekanizmin e mbrojtjes ARM65 Guarded Control Stack, izolimi i makinave virtuale me ndihmën e zgjerimit ARM CCA, stekët e ndarë në BPF, heqja e ReiserFS, drejtuesi virtual-cpufreq, netlink API net-shaper, modaliteti i montimit tmpfs me dallim të shkronjave të mëdha dhe të vogla, mbështetja për zgjerimet POSIX në SMB3, si dhe drejtuesi AMD Cache Optimizer.
Në versionin e ri janë përfshirë 14172 rregullime nga 2086 zhvillues, ndërsa madhësia e patch-it është 46 MB (ndryshimet prekën 15375 skedarë, u shtuan 598707 rreshta kodi dhe u hoqën 406294 rreshta). Në publikimin e mëparshëm kishte 14607 rregullime nga 2167 zhvillues, me madhësi patch-i 37 MB. Rreth 52% e të gjitha ndryshimeve të paraqitura në 6.13 lidhen me drejtuesit e pajisjeve, afërsisht 13% kanë të bëjnë me përditësimin e kodit specifik për arkitekturat harduerike, 11% lidhen me stack-un e rrjetit, 4% me sistemet e skedarëve dhe 3% me nënsistemet e brendshme të kernelit.
Risitë kryesore në kernelin 6.13:
- Sistemi i disqeve, hyrja/ dalje dhe sistemet e skedarëve
- ĂshtĂ« shtuar mekanizmi «multigrain timestamps», i cili lejon marrjen e informacionit pĂ«r kohĂ«n e ndryshimit ose tĂ« aksesit nĂ« skedarĂ« me saktĂ«si mĂ« tĂ« lartĂ« se njĂ« milisekondĂ«, por pa ndikim negativ nĂ« performancĂ«. Rritja e saktĂ«sisĂ« sĂ« shenjave kohore sjell ngarkesĂ« shtesĂ« pĂ«r shkak tĂ« rritjes sĂ« intensitetit tĂ« shkrimit tĂ« metadata-ve nĂ« disk, ndaj nĂ« zbatimin e propozuar shenjat mĂ« tĂ« sakta nuk krijohen pĂ«r tĂ« gjithĂ« skedarĂ«t, por vetĂ«m pĂ«r ata pĂ«r tĂ« cilĂ«t proceset kĂ«rkojnĂ« shenja tĂ« tilla pĂ«rmes thirrjes getattr().
- ĂshtĂ« shtuar mbĂ«shtetja pĂ«r operacionet atomike tĂ« shkrimit, ku shkrimi i tĂ« dhĂ«nave me madhĂ«si mĂ« tĂ« madhe se madhĂ«sia e sektorit kryhet nĂ« mĂ«nyrĂ« atomike nĂ« pajisjet e ruajtjes qĂ« e ofrojnĂ« kĂ«tĂ« mundĂ«si. Aktualisht, shkrimi atomik Ă«shtĂ« zbatuar pĂ«r XFS, Ext4 nĂ« modalitetin O_DIRECT (Direct I/O) dhe md RAID 0/1/10.
- ĂshtĂ« propozuar njĂ« mekanizĂ«m i ri pĂ«r numĂ«rimin e referencave pĂ«r skedarĂ«t, i cili siguron njĂ« rritje performance prej 3-5% nĂ« ngarkesa pune me mĂ« shumĂ« se 255 rrjedha.
- ĂshtĂ« hequr implementimi i sistemit tĂ« skedarĂ«ve ReiserFS, i cili u shpall i vjetĂ«ruar njĂ« vit mĂ« parĂ«.
- ĂshtĂ« shtuar parametri sysctl «fs.dentry-negative» pĂ«r tĂ« pĂ«rcaktuar nĂ« VFS politikĂ«n e pastrimit tĂ« hyrjeve «dentry» (pĂ«rfaqĂ«simi i brendshĂ«m i elementeve tĂ« direktorive) pas fshirjes sĂ« skedarĂ«ve tĂ« lidhur me to. PĂ«r disa lloje ngarkesash Ă«shtĂ« mĂ« efikase qĂ« kĂ«to hyrje tĂ« skedarĂ«ve tĂ« fshirĂ« tĂ« ruhen, ndĂ«rsa pĂ«r tĂ« tjera tĂ« hiqen, prandaj nĂ« kernel Ă«shtĂ« ofruar mundĂ«sia e zgjedhjes (si parazgjedhje, «dentry» nuk fshihen automatikisht).
- NĂ« thirrjen e sistemit statmount() Ă«shtĂ« shtuar flamuri STATMOUNT_OPT_ARRAY pĂ«r kthimin e listĂ«s sĂ« opsioneve tĂ« sistemit tĂ« skedarĂ«ve nĂ« formĂ«n e njĂ« vargu me stringje tĂ« pĂ«rfunduara me simbolin zero dhe pa pĂ«rdorur escapimin «\000». ĂshtĂ« shtuar mbĂ«shtetja pĂ«r kthimin e nĂ«ntipit tĂ« FS (fs_subtype, pĂ«r tĂ« pĂ«rcaktuar pĂ«rdorimin e FUSE), tĂ« opsioneve tĂ« montimit tĂ« sigurt dhe tĂ« superbllokut burimor (sb_source).
- Në OverlayFS është ofruar mundësia e specifikimit të shtresave përmes deskriptorëve të skedarëve, dhe jo përmes emrave të shtigjeve të skedarëve.
- Në sistemin e skedarëve tmpfs është shtuar opsioni i montimit «casefold» për punë pa dallim të regjistrit të shkronjave dhe opsioni «strict_encoding» për të bllokuar krijimin e skedarëve me emra që përmbajnë simbole UTF-8 të pavlefshme.
- ĂshtĂ« propozuar njĂ« grup i ri thirrjesh sistemi pĂ«r menaxhimin e atributeve tĂ« zgjeruara tĂ« skedarĂ«ve: setxattrat(), getxattrat(), listxattrat() dhe removexattrat(). Ndryshe nga thirrjet e sistemit setxattr(), getxattr(), listxattr() dhe removexattr(), variantet e reja kĂ«rkojnĂ« specifikimin e deskriptorit tĂ« skedarit tĂ« direktorise, ndaj tĂ« cilit kryhet kĂ«rkimi i shtegut tĂ« skedarit.
- NĂ« Btrfs Ă«shtĂ« shtuar operacioni ioctl BTRFS_IOC_SUBVOL_SYNC_WAIT, i cili pret pĂ«rfundimin e pastrimit tĂ« nĂ«nvĂ«llimeve, duke bĂ«rĂ« tĂ« mundur ekzekutimin e komandĂ«s «btrfs subvolume sync» nga njĂ« pĂ«rdorues pa privilegje, i cili nuk ka qasje nĂ« ioctl SEARCH_TREE (i dobishĂ«m nĂ« aplikacionet e rezervimit qĂ« pastrojnĂ« nĂ«nvĂ«llimet). ĂshtĂ« shtuar edhe operacioni ioctl ENCODED_READ pĂ«r leximin e tĂ« dhĂ«nave tĂ« koduara pĂ«rmes io_uring, pĂ«r shembull pĂ«r tĂ« lexuar drejtpĂ«rdrejt extents e kompresuara pa dekompresim. Ka vazhduar puna pĂ«r kalimin nĂ« pĂ«rdorimin e page folios. ĂshtĂ« zvogĂ«luar shfaqja e bllokimeve konkurruese («lock contention») gjatĂ« kĂ«rkimit tĂ« referencave tĂ« kundĂ«rta tĂ« integruara dhe gjatĂ« iterimit tĂ« bufferĂ«ve tĂ« extents. ĂshtĂ« rritur efikasiteti i kompresimit tĂ« hartĂ«s sĂ« extents.
- Në sistemin e skedarëve EROFS (Extendable Read-Only File System), i projektuar për përdorim në ndarje të disponueshme vetëm në regjim leximi, është zbatuar mundësia e përdorimit të opsioneve SEEK_HOLE dhe SEEK_DATA në thirrjen e sistemit lseek().
- Në F2FS është shtuar mbështetja për pasqyrimin e pajisjeve («device aliasing»), që lejon rezervimin e përkohshëm të një zone në F2FS për përdorimin e një pjese të pajisjes bllok nga një FS tjetër. Pas përfundimit të operacionit të jashtëm, zona e rezervuar mund të rikthehet në F2FS. Për shembull, mund të krijoni një FS me komandën «mkfs.f2fs -c /dev/vdc@vdc.file /dev/vdb», pas së cilës përmbajtja e pajisjes /dev/vdc do të rezervohet dhe pasqyrohet në skedarin vdc.file, ndërsa ndarja /dev/vdc mund të përdoret për nevoja të tjera, për shembull të formatohet për një FS tjetër. Për ta rikthyer përmbajtjen e rezervuar, mjafton të fshihet skedari vdc.file.
- NĂ« XFS Ă«shtĂ« aktivizuar mbĂ«shtetja pĂ«r kuotat nĂ« pajisjet realtime. ĂshtĂ« shtuar mbĂ«shtetja pĂ«r drejtorinĂ« e metadatave (metadata directory), ku vendosen tĂ« gjitha inode-t me metadata.
- Në mekanizmin FUSE është aktivizuar mundësia e ndryshimit dinamik të numrit maksimal të faqeve (FUSE_MAX_MAX_PAGES), duke përdorur «sysctl fs.fuse.max_pages_limit». Në funksionim përdoren page folios të memories.
- NĂ« SMB Ă«shtĂ« zbatuar mbĂ«shtetja pĂ«r zgjerimet POSIX pĂ«r SMB3, tĂ« nevojshme pĂ«r ruajtjen e llojeve tĂ« veçanta tĂ« skedarĂ«ve, si fifo, skedarĂ«t e pajisjeve dhe lidhjet simbolike. ĂshtĂ« shtuar mundĂ«sia e montimit tĂ« njĂ« ndarjeje me njĂ« fjalĂ«kalim alternativ, qĂ« pĂ«rdoret gjatĂ« rotacionit tĂ« fjalĂ«kalimeve. ĂshtĂ« shtuar opsioni i ri i montimit «cifs.upcall» pĂ«r pĂ«rcaktimin e namespace. ĂshtĂ« siguruar njohja e skedarĂ«ve tĂ« pajisjeve karakter dhe bllok, tĂ« krijuar nĂ« Windows NFS Server. ĂshtĂ« shtuar mbĂ«shtetja pĂ«r lidhjet simbolike nĂ« stilin WSL (Windows Subsystem for Linux).
- Sistemet e skedarëve UBIFS, ADFS, BEFS, HFS, HFSPLUS, HPFS, JFS dhe ECRYPTFS janë kaluar në përdorimin e API-së së re për montimin e ndarjeve.
- Sistemet e skedarëve ECRYPTFS, UFS dhe NILFS2 janë kaluar në përdorimin e page folios të memories.
- Memorie dhe shërbime sistemike
- Në planifikues është zbatuar modeli i parandalimit dembel të detyrave (PREEMPT_LAZY, lazy preemption), i cili për detyrat realtime (RR/FIFO/DEADLINE) përputhet me modelin e parandalimit të plotë («full preemption»), por e shtyn parandalimin e detyrave të zakonshme (SCHED_NORMAL) deri në kufirin e tikut. Kjo vonesë ul numrin e rasteve kur ndërpriten mbajtësit e bllokimeve, duke e afruar performancën me konfigurimet që përdorin modelin e parandalimit vullnetar (voluntary preemption). Kështu, modeli i ri ruan mundësitë e parandalimit të plotë për detyrat realtime, ndërsa minimizon rënien e performancës për detyrat e zakonshme. Për më tepër, modeli i ri thjeshton logjikën e operacioneve të parandalimit të detyrave në kernel, duke përjashtuar nga procesi i planifikimit trajtuesit që ndodhen në komponentë të tjerë të kernelit (jashtë planifikuesit të detyrave).
- Gjatë ndërtimit me kompiluesin Clang është ofruar mundësia e përdorimit të optimizimeve
Burimi: opennet.ru
