Pas dy muajsh zhvillimi, Linus Torvalds lëshimi i kernelit . Ndër ndryshimet më të dukshme janë: një ndërfaqe e re për futjen/dukurimin asinkron të input/output io_uring, mundësia e përdorimit të NVDIMM si RAM, mbështetje për memorie virtuale të ndarë në Nouveau, mbështetje për monitorim në shkallë të madhe të sistemeve të skedarëve shumë të mëdhenj përmes fanotify, mundësia për të konfiguruar nivelet e kompresimit Zstd në Btrfs, një përpunues i ri cpuidle TEO, implementimi i thirrjeve sistemike për zgjidhjen e problemit të vitit 2038, mundësia për ngarkimin nga pajisje device-mapper pa initramfs, moduli LSM SafeSetID, mbështetje për patch-a të kombinuar live.
:
- Sistemi i disqeve, hyrja/ dalje dhe sistemet e skedarëve
- ĂshtĂ« realizuar njĂ« ndĂ«rfaqe e re pĂ«r futjen/dukurimin asinkron tĂ« input/output â , e cila Ă«shtĂ« e shquar pĂ«r mbĂ«shtetje tĂ« polling-ut tĂ« input/output dhe mundĂ«sinĂ« e funksionimit si me buffering ashtu edhe pa buffering. KujtojmĂ« se mekanizmi i ofruar mĂ« parĂ« pĂ«r futjen/dukurimin asinkron "aio" nuk mbĂ«shteste futjen/dukurimin e buffers, mund tĂ« punonte vetĂ«m nĂ« modin O_DIRECT (pa buffering dhe nĂ«pĂ«rmjet memorjes), kishte probleme me bllokimin pĂ«r shkak tĂ« pritjes sĂ« disponueshmĂ«risĂ« sĂ« metadata dhe tregonte njĂ« ngarkesĂ« tĂ« madhe pĂ«r shkak tĂ« kopjimit tĂ« tĂ« dhĂ«nave nĂ« memorje.
Në kuadër të API
io_uring, zhvilluesit u përpoqën të eliminojnë disavantazhet e ndërfaqes së vjetër aio. Sipas io_uring është shumë afër dhe ndjeshëm e tejkalon libaio kur funksionojnë me polling të aktivizuar. Për përdorimin e io_uring në aplikacione përfundimtare që punojnë në hapësirën e përdoruesit, është përgatitur një bibliotekë , e cila ofron një paketë të lartë mbi ndërfaqen e bërthamës; - Në mekanizmin e ndjekjes së ngjarjeve në FS fanotify() mbështetje për ndjekjen e situatave të ndryshimit të superblokut dhe strukturës (ngjarjet e krijimit, fshirjes dhe zhvendosjes së katalogëve). Mundësitë e paraqitura ndihmojnë në zgjidhjen e problemeve të shkallëzueshmërisë që lindin gjatë krijimit të ndjekjeve rekursive të ndryshimeve në sisteme shumë të mëdhenj të skedarëve përmes mekanizmit inotify (ndryshimet e dirent më parë mund të ndiqeshin vetëm përmes inotify, por
efikasiteti nĂ« kushte ndjekjeje rekursive tĂ« katalogĂ«ve tĂ« mĂ«dhenj mbetet pĂ«r t'u pĂ«rmirĂ«suar). Tani njĂ« ndjekje e tillĂ« mund tĂ« realizohet nĂ« mĂ«nyrĂ« efikase pĂ«rmes fanotify; - NĂ« sistemin e skedarĂ«ve Btrfs mundĂ«sia pĂ«r tĂ« konfiguruar nivelin e kompresimit pĂ«r algoritmin zstd, i cili mund tĂ« konsiderohet si njĂ« kompromis optimal midis lz4, qĂ« Ă«shtĂ« i shpejtĂ« por jo efikas, dhe xz, qĂ« Ă«shtĂ« i ngadaltĂ« por compresson mirĂ«. Duke ndjekur analogjinĂ« me atĂ« siç ishte e mundur tĂ« vendosej niveli i kompresimit gjatĂ« pĂ«rdorimit tĂ« zlib pĂ«r zstd, Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r opsionin e montimit "-o compress=zstd:level". GjatĂ« testimit, niveli i parĂ« minimal siguroi kompresim tĂ« tĂ« dhĂ«nave me 2.658 herĂ« me shpejtĂ«si kompresimi 438.47 MB/s, shpejtĂ«si çkompresimi 910.51 MB/s dhe pĂ«rdorim memorjeje 780 MB, ndĂ«rsa niveli maksimal 15 â me 3.126 herĂ«, por me shpejtĂ«si kompresimi 37.30 MB/s, çkompresimi 878.84 MB/s dhe pĂ«rdorim memorjeje 2547 MB;
- mundësia për ngarkim nga sistemi i skedareve, i vendosur në pajisjen device-mapper, pa përdorimin e initramfs. Duke filluar nga versioni aktual i bërthamës, pajisja device-mapper mund të përdoret drejtpërdrejt gjatë procesit të ngarkimit, për shembull, si një ndarje me sistemin e skedarëve rrënjësor. Konfigurimi i ndarjes bëhet me anë të parametrave të ngarkimit "dm-mod.create". Ndër modulët e lejuar për ngarkim të device-mapper janë: "crypt", "delay", "linear", "snapshot-origin" dhe "verity";
- Në sistemin e skedarëve të orientuar drejt kujtesës Flash F2FS është shtuar vlagu F2FS_NOCOW_FL, i cili lejon çaktivizimin e modit copy-on-write për një skedar të caktuar;
- Sistemi i skedarëve , i cili është një variant i ext2, i përshtatur për të punuar me depo objekte OSD (Object-based Storage Device). Po ashtu është çaktivizuar mbështetja për protokollin SCSI për pajisje të ngjashme depo objekte;
- ĂshtĂ« realizuar njĂ« ndĂ«rfaqe e re pĂ«r futjen/dukurimin asinkron tĂ« input/output â , e cila Ă«shtĂ« e shquar pĂ«r mbĂ«shtetje tĂ« polling-ut tĂ« input/output dhe mundĂ«sinĂ« e funksionimit si me buffering ashtu edhe pa buffering. KujtojmĂ« se mekanizmi i ofruar mĂ« parĂ« pĂ«r futjen/dukurimin asinkron "aio" nuk mbĂ«shteste futjen/dukurimin e buffers, mund tĂ« punonte vetĂ«m nĂ« modin O_DIRECT (pa buffering dhe nĂ«pĂ«rmjet memorjes), kishte probleme me bllokimin pĂ«r shkak tĂ« pritjes sĂ« disponueshmĂ«risĂ« sĂ« metadata dhe tregonte njĂ« ngarkesĂ« tĂ« madhe pĂ«r shkak tĂ« kopjimit tĂ« tĂ« dhĂ«nave nĂ« memorje.
- Virtualizimi dhe siguria
- Në prctl() është shtuar opsioni PR_SPEC_DISABLE_NOEXEC për menaxhimin e ekzekutimit spekulativ të instruktimeve për procesin e zgjedhur. Opsioni i ri lejon çaktivizimin selektiv të ekzekutimit spekulativ për proceset që potencialisht mund të sulmohen nëpërmjet sulmimeve të tipit Spectre. Bllokimi është në fuqi deri në thirrjen e parë exec();
- ĂshtĂ« realizuar moduli LSM , i cili lejon shĂ«rbimet sistemore tĂ« menaxhojnĂ« sigurt pĂ«rdoruesit pa rritjen e privilegjeve (CAP_SETUID) dhe pa marrĂ« fuqitĂ« e pĂ«rdoruesit root. Caktimi i privilegjeve bĂ«het pĂ«rmes pĂ«rcaktimit nĂ« securityfs tĂ« rregullave nĂ« bazĂ« tĂ« njĂ« liste tĂ« bardhĂ« tĂ« lidhjeve tĂ« lejuara (nĂ« formĂ«n "UID1:UID2");
- Shtesat e ndryshimeve të nivelit të ulët të nevojshme për organizimin e ngarkesës së moduleve të sigurisë (LSM). Paraqitet parametri i ngarkesës së bërthamës "lsm", i cili lejon menaxhimin e moduleve që ngarkohen dhe renditjes së tyre;
- Në nën-sistemin e auditimit është shtuar mbështetje për hapësirat emrave të skedarëve;
- kapacitetet e pluginit GCC structleak, i cili lejon bllokimin e mundësive të rrjedhjes së përmbajtjes së memories. U sigurua inicializimi i çdo variabli që përdoret në kod përmes referencës në grumbull;
- Sistemi rrjetor
- Për soketët një opsion i ri "SO_BINDTOIFINDEX", i ngjashëm me
"SO_BINDTODEVICE", por që pranon si argument numrin indekse të ndërfaqes rrjetit në vend të emrit të ndërfaqes; - Në grumbullin mac80211 është shtuar mundësia e caktimit të disa BSSID (adresecave MAC) një pajisjeje. Në kuadër të projektit për optimizimin e performancës WiFi, në grumbullin mac80211 është shtuar llogaritja e shpërndarjes së kohës së ajrit dhe mundësia për të shpërndarë kohën e ajrit midis disa stacioneve (në operimin në mënyrën e qendrës së aksesit, duke alokuar më pak kohë për transmetimin e stacioneve të ngadalta pa kabllo, në vend të shpërndarjes së barabartë të kohës ndërmjet të gjitha stacioneve);
- Shtua mekanizmi "" që ofron njoftime kur ndodhin probleme me ndërfaqen rrjetore;
- Për soketët një opsion i ri "SO_BINDTOIFINDEX", i ngjashëm me
- Memorie dhe shërbime sistemike
- dërgimi i sigurt i sinjalit, duke marrë parasysh mundësinë e riciklimit të PID. Për shembull, gjatë thirrjes së kill, mund të ndodhte një situatë ku menjëherë pas dërgimit të sinjalit, PID-i i synuar mund të ishte liruar për shkak të përfundimit të procesit dhe të ishte zënë nga një proces tjetër, duke rezultuar kështu që sinjali dërgohej një procesi tjetër. Për të përjashtuar situata të tilla, është shtuar një thirrje e re sistemike pidfd_send_signal, e cila përdor përshkrues dosjesh nga /proc/pid për të siguruar lidhje të qëndrueshme me procesin. Edhe nëse PID rikthehet gjatë përpunimit të thirrjes sistemike, përshkruesi i dosjeve nuk do të ndryshojë dhe mund të përdoret në siguri për të dërguar sinjalin në proces;
- mundësinë e përdorimit të pajisjeve të memories së përhershme (persistent-memory, për shembull ) si RAM. Deri në këtë moment, pajisjet e tilla janë mbështetur në bërthamë si njësitë e ruajtjes, por tani mund të përdoren gjithashtu si memorie operative shtesë. Kjo mundësi është realizuar në përgjigje të kërkesave të përdoruesve, të gatshëm për të toleruar vonesa në performancë dhe që duan të përdorin API-në standarde të menaxhimit të memories së bërthamës Linux në vend të sistemeve ekzistuese të shpërndarjes së memories në hapësirën e përdoruesit, të cilat punojnë mbi mmap për skedarin dax;
- ĂshtĂ« shtuar njĂ« trajtues i ri pĂ«r pushimin e CPU (cpuidle, i cili vendos kur mund tĂ« kalojĂ« CPU nĂ« modet e thella tĂ« kursimit tĂ« energjisĂ«, aq mĂ« i thellĂ« Ă«shtĂ« rethi â aq mĂ« shumĂ« kursim, por gjithashtu kĂ«rkon mĂ« shumĂ« kohĂ« pĂ«r t'u rikthyer nga ky mod) â TEO (Tim Events Oriented Governor). Deri tani janĂ« ofruar dy trajtues cpuidle â 'menu' dhe 'ladder', tĂ« cilat ndryshojnĂ« nĂ« heuristikĂ«. NĂ« trajtuesin 'menu' ka probleme tĂ« njohura me marrjen e vendimeve heuristike, pĂ«r t'i eliminuar ato Ă«shtĂ« vendosur tĂ« pĂ«rgatitet njĂ« trajtues i ri. TEO pozicionohet si njĂ« alternativĂ« ndaj trajtuesit 'menu', duke lejuar arritjen e performancĂ«s mĂ« tĂ« lartĂ« me tĂ« njĂ«jtin nivel konsumi energjie.
Aktivizoni trajtuesin e ri duke përdorur parametrin e ngarkesës 'cpuidle.governor=teo'; - Në kuadër të punës për eliminimin , e shkaktuar nga mbushja e tipit 32-bit time_t, janë përfshirë thirrje sistemesh që ofrojnë për arkitekturë 32-bit numërues të kohës 64-bit. Si rezultat, struktura 64-bit time_t mund të përdoret tani në të gjitha arkitekturat. Ndryshime të ngjashme janë realizuar gjithashtu në nën-sistemin rrjetor për opsionet e soketeve të rrjetit;
- Në sistemin e aplikimit të nxehtë të patch-ave për bërthamën (live patching) aftësia «Atomic Replace» për aplikimin atomik të serisë së ndryshimeve në një funksion. Ajo mundësi lejon shpërndarjen e patch-eve të përmbledhura që përfshijnë menjëherë disa ndryshime, në vend të një procesi mjaft të komplikuar për ruajtjen të ngacmimit të përkohshëm të patch-eve sipas një rendi të caktuar. Nëse më parë çdo ndryshim i ardhshëm duhet të mbështetet në gjendjen e funksionit pas ndryshimit të kaluar, tani është e mundur të shpërndahen menjëherë disa ndryshime, të lidhura me një gjendje fillestare (dmth. mbikëqyrësit mund të mbështesin një patch të përmbledhur në raport me bërthamën bazë në vend të një zinxhiri patch-eve të varura nga njëri-tjetri);
- e vjetruar mbështetje e formatit të skedarëve ekzekutivë a.out dhe
kod për formimin e skedarëve core në formatin a.out, i cili është në një gjendje të braktisur. Formati a.out nuk aplikohet prej kohësh në sistemet me Linux, dhe gjenerimi i skedarëve a.out nuk mbështetet më nga mjetet moderne në konfigurimet për Linux si parazgjedhje. Për më tepër, ngarkuesi për skedarët a.out mund të realizohet tërësisht në hapësirën e përdoruesit; - Në mekanizmin e verifikimit të programeve BPF është shtuar mundësia e identifikimit dhe heqjes së kodit të pavendosur. Pjesë të bërthamës përfshijnë gjithashtu patch-e me mbështetje për spinlock për nën-sistemin BPF, që ofrojnë mundësi shtesë për menaxhimin e ekzekutimeve paralele të programeve BPF;
- Pajisje
- Në drejtuesin Nouveau mbështetje për menaxhimin heterogjen të memories, që ofron mundësinë e aksesit të CPU dhe GPU në zona të përbashkëta të memories të sinkronizuara. Sistemi i memories virtuale të ndarë (SVM, shared virtual memory) është realizuar mbi bazën e nën-sistemit HMM (Heterogeneous memory management), që lejon përdorimin e pajisjeve me blloqe të veta të menaxhimit të memories (MMU, memory management unit), të cilat mund të kenë akses në memorien kryesore. Duke përdorur HMM, mund të organizohet një hapësirë adresimi të përbashkët midis GPU dhe CPU, ku GPU mund të ketë akses në memorien kryesore të procesit. Mbështetja SVM aktualisht është aktive vetëm për GPU të familjes Pascal, megjithëse mbështetje është ofruar edhe për GPU Volta dhe Turing. Për më tepër, në Nouveau ioctl i ri për menaxhimin e migrimit të zonave të memories së proceseve në memorien e GPU;
- Në drejtuesin DRM të Intel për GPU Skylake dhe më të reja (gen9+) me thjesht aktivizohet mënyra fastboot, duke përjashtuar ndërrimet e panevojshme të modit gjatë ngarkimit. identifikuesit e pajisjeve bazuar në mikroarkitekturën Coffeelake dhe Ice Lake. Për çipat Coffeelake mbështetje GVT (). Për GPU virtuale mbështetje për VFIO EDID. Për panelët LCD MIPI/DSI mbështetje për elementet ACPI/PMIC. modes të reja TV 1080p30/50/60 TV;
- Në drejtuesin amdgpu u shtua mbështetje për GPU Vega10/20 BACO. U realizuan mjetet e kontrollit të energjisë për Vega 10/20 dhe tabelat e menaxhimit të ventilatorëve të Vega 10. U shtuan identifikues të rinj PCI për pajisjet GPU Picasso. ndërfaqja e menaxhimit të varësive të planifikuara për të përjashtuar bllokimin e ndërsjellë;
- drejtuesi DRM/KMS për përshpejtuesit e operacioneve të ekranit (Mali D71);
- U shtua mbështetje për panelat e ekranit Toppoly TPG110, Sitronix ST7701, PDA 91-00156-A0, LeMaker BL035-RGB-002 3.5 dhe Kingdisplay kd097d04;
- U shtua mbështetje për kodekët e zërit Rockchip RK3328, Cirrus Logic CS4341 dhe CS35L36, MediaTek MT6358, Qualcomm WCD9335 dhe Ingenic JZ4725B, si dhe platforma audio Mediatek MT8183;
- U shtua mbështetje për kontrollorët NAND Flash STMicroelectronics FMC2, Amlogic Meson;
- U shtua mbështetje për përshpejtuesit për sistemet e inteligjencës artificiale Habana;
- U shtua mbështetje për kontrollorët Ethernet gigabit NXP ENETC dhe ndërfaqet e pa tel MediaTek MT7603E (PCIe) dhe MT76x8.
Në të njëjtën kohë, Fondi Latinoamerikan i Software-it të Lirë
njĂ« variant â , i pastruar nga elementet e softuerĂ«ve dhe drejtuesit qĂ« pĂ«rmbajnĂ« komponente ose pjesĂ« kodi tĂ« pa lira, tĂ« cilat janĂ« tĂ« kufizuara nga prodhuesi. NĂ« lĂ«shimin e ri u ndal ngarkimi i blobĂ«ve nĂ« drejtuesit mt7603 dhe goya. U pĂ«rditĂ«sua kodi i pastrimit tĂ« blobĂ«ve nĂ« drejtuesit dhe nĂ«n-sistemet wilc1000, iwlwifi, soc-acpi-intel, brcmfmac, mwifiex, btmrvl, btmtk dhe touchscreen_dmi. U ndal pastrimi i blobĂ«ve nĂ« ngarkuesin e firmuerĂ«ve lantiq xrx200 pĂ«r shkak tĂ« heqjes sĂ« tij nga thelbi.
Burimi: opennet.ru
