PÄc divu mÄneÅ”u izstrÄdes Linuss Torvalds ieviesa kodola izlaiÅ”ana Linux 5.8. Starp ievÄrojamÄkajÄm izmaiÅÄm: KCSAN sacensÄ«bu stÄvokļa detektors, universÄls mehÄnisms paziÅojumu nogÄdÄÅ”anai lietotÄja telpÄ, aparatÅ«ras atbalsts iekļautajai Å”ifrÄÅ”anai, uzlaboti droŔības mehÄnismi ARM64, atbalsts Krievijas Baikal-T1 procesoram, iespÄja atseviŔķi uzstÄdÄ«t procfs instances. , Shadow droŔības mehÄnismu ievieÅ”ana ARM64 Call Stack un BTI.
Kodols 5.8 kļuva par lielÄko visu kodolu izmaiÅu skaita ziÅÄ visÄ projekta pastÄvÄÅ”anas laikÄ. TurklÄt izmaiÅas nav saistÄ«tas ar vienu apakÅ”sistÄmu, bet aptver dažÄdas kodola daļas un galvenokÄrt ir saistÄ«tas ar iekÅ”Äjo pÄrstrÄdi un tÄ«rÄ«Å”anu. LielÄkÄs izmaiÅas ir vÄrojamas autovadÄ«tÄjos. JaunajÄ versijÄ tika iekļauti 17606 2081 labojumi no 20 izstrÄdÄtÄja, kas skÄra aptuveni 65% no visiem kodola kodu repozitorijÄ esoÅ”ajiem failiem. IelÄpa izmÄrs ir 16180 MB (izmaiÅas skÄra 1043240 489854 failus, tika pievienotas 5.7 15033 39 koda rindiÅas, dzÄstas 37 5.8 rindiÅas). SalÄ«dzinÄjumam, 16 filiÄlei bija 11 3 labojumi un ielÄpa lielums 4 MB. Aptuveni XNUMX% no visÄm XNUMX ieviestajÄm izmaiÅÄm ir saistÄ«tas ar ierÄ«Äu draiveriem, aptuveni XNUMX% izmaiÅu ir saistÄ«tas ar aparatÅ«ras arhitektÅ«rÄm raksturÄ«gÄ koda atjauninÄÅ”anu, XNUMX% ir saistÄ«tas ar tÄ«kla steku, XNUMX% ir saistÄ«tas ar failu sistÄmÄm un XNUMX% ir saistÄ«ti ar iekÅ”ÄjÄm kodola apakÅ”sistÄmÄm.
Tiek nodroÅ”inÄta to kodola moduļu ielÄde, kuriem ir sadaļas ar kodu, kurÄ vienlaikus tiek iestatÄ«ti biti, kas ļauj izpildÄ«t un rakstÄ«t. IzmaiÅas tika ieviestas kÄ daļa no lielÄka projekta, lai atbrÄ«votu kodolu no atmiÅas lapu izmantoÅ”anas, kas ļauj vienlaikus izpildÄ«t un rakstÄ«t.
Tagad ir iespÄjams izveidot atseviŔķas procfs instances, ļaujot izmantot vairÄkus procfs pievienoÅ”anas punktus, kas ir savienoti ar dažÄdÄm opcijÄm, bet atspoguļo vienu un to paÅ”u procesa identifikatora nosaukumvietu (pid namespace). IepriekÅ” visi procfs pievienoÅ”anas punkti atspoguļoja tikai vienu iekÅ”Äjo attÄlojumu, un visas pievienoÅ”anas parametru izmaiÅas ietekmÄja visus pÄrÄjos pievienoÅ”anas punktus, kas saistÄ«ti ar to paÅ”u procesa ID nosaukumvietu. Starp jomÄm, kurÄs var bÅ«t pieprasÄ«ta montÄža ar dažÄdÄm iespÄjÄm, ir vieglas izolÄcijas ievieÅ”ana iegultajÄm sistÄmÄm ar iespÄju slÄpt noteikta veida procesus un informÄcijas mezglus procfs.
Atbalsts mehÄnismam ir ieviests ARM64 platformai Shadow-Call Stack, ko nodroÅ”ina kompilators Clang, lai aizsargÄtu pret funkcijas atgrieÅ”anas adreses pÄrrakstÄ«Å”anu steka bufera pÄrpildes gadÄ«jumÄ. AizsardzÄ«bas bÅ«tÄ«ba ir saglabÄt atgrieÅ”anas adresi atseviÅ”Ä·Ä āÄnuā kaudzÄ pÄc vadÄ«bas nodoÅ”anas funkcijai un Ŕīs adreses izgÅ«Å”anas pirms funkcijas izieÅ”anas.
ARM64 platformai ir pievienots instrukciju atbalsts ARMv8.5-BTI (Atzaru mÄrÄ·a indikators), lai aizsargÄtu to instrukciju kopu izpildi, kurÄm nevajadzÄtu bÅ«t sazarotÄm. PÄreju uz patvaļīgÄm koda sadaļÄm bloÄ·ÄÅ”ana tiek ieviesta, lai novÄrstu sÄ«krÄ«ku izveidi ekspluatÄcijÄs, kurÄs tiek izmantotas uz atdevi orientÄtas programmÄÅ”anas metodes (ROP ā uz atgrieÅ”anos orientÄta programmÄÅ”ana; uzbrucÄjs nemÄÄ£ina ievietot savu kodu atmiÅÄ, bet darbojas ar jau esoÅ”ajÄm daļÄm). maŔīnas instrukcijas, kas beidzas ar atgrieÅ”anas vadÄ«bas instrukciju, no kuras tiek veidota zvanu Ä·Äde, lai iegÅ«tu vÄlamo funkcionalitÄti).
Pievienots aparatÅ«ras atbalsts blokierÄ«Äu iekļautajai Å”ifrÄÅ”anai (IekļautÄ Å”ifrÄÅ”ana). Inlinep Å”ifrÄÅ”anas ierÄ«ces parasti ir iebÅ«vÄtas diskdzinÄ«, taÄu tÄs loÄ£iski atrodas starp sistÄmas atmiÅu un disku, pÄrredzami Å”ifrÄjot un atÅ”ifrÄjot I/O, pamatojoties uz kodola norÄdÄ«tajÄm atslÄgÄm un Å”ifrÄÅ”anas algoritmu.
Pievienota kodola komandrindas opcija "initrdmem", lai ļautu norÄdÄ«t initrd fiziskÄs atmiÅas adresi, ievietojot sÄkotnÄjo sÄknÄÅ”anas attÄlu RAM.
Pievienota jauna iespÄja: CAP_PERFMON, lai piekļūtu perfektai apakÅ”sistÄmai un veiktu veiktspÄjas uzraudzÄ«bu. CAP_BPF, kas ļauj veikt noteiktas BPF darbÄ«bas (piemÄram, BPF programmu ielÄdi), kurÄm iepriekÅ” bija nepiecieÅ”amas CAP_SYS_ADMIN tiesÄ«bas (CAP_SYS_ADMIN tiesÄ«bas tagad ir sadalÄ«tas CAP_BPF, CAP_PERFMON un CAP_NET_ADMIN kombinÄcijÄ).
Pievienoja jauna virtio-mem ierÄ«ce, kas ļauj hot-plug un hot-plug atmiÅu viesu sistÄmÄm.
Ieviests kartÄÅ”anas darbÄ«bu atsaukÅ”ana mapÄ /dev/mem, ja ierÄ«ces draiveris izmanto pÄrklÄjoÅ”us atmiÅas apgabalus.
Pievienota neaizsargÄtÄ«bas aizsardzÄ«ba CROSSTalk/SRBDS, kas ļauj atjaunot dažu instrukciju izpildes rezultÄtus, kas izpildÄ«ti citÄ CPU kodolÄ.
AtmiÅas un sistÄmas pakalpojumi
DokumentÄ, kas nosaka koda formatÄÅ”anas noteikumus, pieÅemts ieteikumi iekļaujoÅ”as terminoloÄ£ijas lietoÅ”anai. IzstrÄdÄtÄjiem nav ieteicams atseviŔķi lietot kombinÄcijas "master / slave" un "melnais saraksts / baltais saraksts", kÄ arÄ« vÄrdu "slave". Ieteikumi attiecas tikai uz jauniem Å”o terminu lietojumiem. KodolÄ jau esoÅ”o norÄdÄ«to vÄrdu pieminÄÅ”ana paliks neskarta. JaunajÄ kodÄ atzÄ«mÄto terminu izmantoÅ”ana ir atļauta, ja nepiecieÅ”ams, lai atbalstÄ«tu lietotÄja telpÄ pieejamo API un ABI, kÄ arÄ« atjauninot kodu, lai atbalstÄ«tu esoÅ”o aparatÅ«ru vai protokolus, kuru specifikÄcijÄs ir nepiecieÅ”ams izmantot noteiktus terminus.
Iekļauts atkļūdoÅ”anas rÄ«ks KCSAN (Kernel Concurrency Sanitizer), kas paredzÄts dinamiskai noteikÅ”anai sacensÄ«bu apstÄkļi kodola iekÅ”pusÄ. KCSAN izmantoÅ”ana tiek atbalstÄ«ta, veidojot GCC un Clang, un kompilÄÅ”anas laikÄ ir nepiecieÅ”amas Ä«paÅ”as modifikÄcijas, lai izsekotu piekļuvei atmiÅai (tiek izmantoti pÄrtraukuma punkti, kas tiek aktivizÄti, kad atmiÅa tiek lasÄ«ta vai modificÄta). KCSAN izstrÄdes uzmanÄ«bas centrÄ bija viltus pozitÄ«vu profilaksi, mÄrogojamÄ«ba un lietoÅ”anas vienkÄrŔība.
Pievienots universÄls mehÄnisms paziÅojumu piegÄde no kodola uz lietotÄja vietu. MehÄnisms ir balstÄ«ts uz standarta caurules draiveri un ļauj efektÄ«vi izplatÄ«t paziÅojumus no kodola pa kanÄliem, kas atvÄrti lietotÄja telpÄ. PaziÅojumu saÅemÅ”anas punkti ir caurules, kas tiek atvÄrtas Ä«paÅ”Ä režīmÄ un ļauj no kodola saÅemtos ziÅojumus uzkrÄt gredzena buferÄ«. LasÄ«Å”ana tiek veikta, izmantojot parasto read() funkciju. KanÄla Ä«paÅ”nieks nosaka, kuri kodola avoti ir jÄuzrauga, un var definÄt filtru, lai ignorÄtu noteikta veida ziÅojumus un notikumus. No notikumiem paÅ”laik tiek atbalstÄ«tas tikai darbÄ«bas ar atslÄgÄm, piemÄram, atslÄgu pievienoÅ”ana/noÅemÅ”ana un to atribÅ«tu maiÅa. Å os notikumus plÄnots izmantot GNOME.
NepÄrtraukta pidfd funkcionalitÄtes attÄ«stÄ«ba, lai palÄ«dzÄtu risinÄt PID atkÄrtotas izmantoÅ”anas situÄcijas (pidfd ir saistÄ«ts ar konkrÄtu procesu un nemainÄs, savukÄrt PID var tikt saistÄ«ts ar citu procesu pÄc tam, kad beidzas paÅ”reizÄjais ar Å”o PID saistÄ«tais process). JaunajÄ versijÄ ir pievienots atbalsts pidfd izmantoÅ”anai, lai pievienotu procesu nosaukumvietÄm (ļaujot norÄdÄ«t pidfd, izpildot setns sistÄmas izsaukumu). Izmantojot pidfd, ar vienu zvanu var kontrolÄt procesa piesaisti vairÄku veidu nosaukumvietÄm, ievÄrojami samazinot nepiecieÅ”amo sistÄmas izsaukumu skaitu un Ä«stenojot pielikumu atomu režīmÄ (ja neizdodas pievienot kÄdai no nosaukumvietÄm, pÄrÄjÄs netiks savienotas) .
Pievienots jauns sistÄmas izsaukums faccessat2(), kas atŔķiras no faccessat () papildu arguments ar karodziÅiem, kas atbilst POSIX ieteikumiem (iepriekÅ” Å”ie karodziÅi tika emulÄti C bibliotÄkÄ, un jaunais faccessat2 ļauj tos ieviest kodolÄ).
C grupÄ pievienots iestatÄ«jums memory.swap.high, ko var izmantot, lai palÄninÄtu uzdevumus, kas aizÅem pÄrÄk daudz mijmaiÅas vietas.
Uz asinhrono I/O interfeisu io_uring pievienots atbalsts tee() sistÄmas izsaukumam.
Pievienots mehÄnisms "BPF iterators, kas paredzÄts kodola struktÅ«ru satura izvadÄ«Å”anai lietotÄja telpÄ.
Ar nosacÄ«jumu iespÄja izmantot zvana buferi datu apmaiÅai starp BPF programmÄm.
MehÄnismÄ padata, kas paredzÄts, lai organizÄtu paralÄlu uzdevumu izpildi kodolÄ, pievienots atbalsts vairÄku pavedienu uzdevumiem ar slodzes lÄ«dzsvaroÅ”anu.
Pstore mehÄnismÄ, kas ļauj saglabÄt atkļūdoÅ”anas informÄciju par avÄrijas cÄloni atmiÅas apgabalos, kas netiek zaudÄti starp atsÄknÄÅ”anu, piebilda aizmugursistÄma informÄcijas saglabÄÅ”anai, lai bloÄ·Ätu ierÄ«ces.
No PREEMPT_RT kodola filiÄles pÄrplÄnots vietÄjo slÄdzeÅu ievieÅ”ana.
Pievienots jauna bufera pieŔķirÅ”anas API (AF_XDP), kuras mÄrÄ·is ir vienkÄrÅ”ot tÄ«kla draiveru rakstÄ«Å”anu ar XDP (eXpress Data Path) atbalstu.
RISC-V arhitektūrai ir ieviests atbalsts kodola komponentu atkļūdoŔanai, izmantojot KGDB.
Pirms 4.8. izlaiduma tika paaugstinÄtas prasÄ«bas GCC versijai, ko var izmantot kodola izveidei. VienÄ no nÄkamajiem laidieniem ir plÄnots pacelt latiÅu lÄ«dz GCC 4.9.
Diska apakÅ”sistÄma, I/O un failu sistÄmas
IerÄ«Äu kartÄtÄjs piebilda jauns dm-ebs (emulÄt bloka izmÄru) apdarinÄtÄjs, ko var izmantot, lai emulÄtu mazÄku loÄ£isko bloku izmÄru (piemÄram, lai emulÄtu 512 baitu sektorus 4K sektora izmÄra diskos).
F2FS failu sistÄma tagad atbalsta saspieÅ”anu, izmantojot LZO-RLE algoritmu.
dm-kriptÄ pievienots Å”ifrÄtu atslÄgu atbalsts.
Btrfs ir uzlabojis lasÄ«Å”anas darbÄ«bu apstrÄdi tieÅ”Ä I/O režīmÄ. UzstÄdot paÄtrinÄta dzÄsto apakÅ”sadaļu un direktoriju pÄrbaude, kas palikuÅ”i bez vecÄka.
CIFS ir pievienots parametrs ānodeleteā, kas ļauj veikt normÄlu atļauju pÄrbaudi serverÄ«, bet aizliedz klientam dzÄst failus vai direktorijus.
Ext4 ir uzlabojusi kļūdu apstrÄdi ENOSPC izmantojot daudzpavedienu. xattr ir pievienojis atbalstu gnu.* nosaukumvietai, ko izmanto GNU Hurd.
AttiecÄ«bÄ uz Ext4 un XFS ir iespÄjots atbalsts DAX darbÄ«bÄm (tieÅ”a piekļuve failu sistÄmai, apejot lapas keÅ”atmiÅu, neizmantojot blokierÄ«ces lÄ«meni) attiecÄ«bÄ uz atseviŔķiem failiem un direktorijiem.
SistÄmas zvanÄ statx() pievienots karogs STATX_ATTR_DAX, kas, ja norÄdÄ«ts, izgÅ«st informÄciju, izmantojot DAX dzinÄju.
EXFAT pievienots atbalsts sÄknÄÅ”anas apgabala pÄrbaudei.
FAT uzlabota proaktÄ«va FS elementu ielÄde. PÄrbaudot lÄnu 2 TB USB disku, testa pabeigÅ”anas laiks tika samazinÄts no 383 lÄ«dz 51 sekundei.
TÄ«kla apakÅ”sistÄma
TÄ«kla tiltu darbÄ«bas kontroles kodÄ pievienots protokola atbalsts MRP (Media Redundancy Protocol), kas nodroÅ”ina kļūdu toleranci, savienojot vairÄkus Ethernet slÄdžus.
Uz satiksmes kontroles sistÄmu (Tc) pievienots jauna āvÄrtuā darbÄ«ba, kas ļauj definÄt laika intervÄlus noteiktu pakeÅ”u apstrÄdei un izmeÅ”anai.
Kodolam un ethtool utilÄ«tai ir pievienots atbalsts pievienotÄ tÄ«kla kabeļa pÄrbaudei un tÄ«kla ierÄ«Äu paÅ”diagnostikai.
MPLS (Multiprotocol Label Switching) algoritma atbalsts ir pievienots IPv6 stekam pakeÅ”u marÅ”rutÄÅ”anai, izmantojot vairÄku protokolu etiÄ·eÅ”u maiÅu (MPLS iepriekÅ” tika atbalstÄ«ts IPv4).
Pievienots atbalsts IKE (Internet Key Exchange) un IPSec pakeÅ”u pÄrsÅ«tÄ«Å”anai, izmantojot TCP (RFC 8229), lai apietu iespÄjamo UDP bloÄ·ÄÅ”anu.
Pievienoja tÄ«kla bloka ierÄ«ce rnbd, kas ļauj organizÄt attÄlo piekļuvi blokierÄ«cei, izmantojot RDMA transportu (InfiniBand, RoCE, iWARP) un RTRS protokolu.
TCP kaudzÄ pievienots atbalsts diapazona saspieÅ”anai selektÄ«vÄs apstiprinÄjuma (SACK) atbildÄs.
IPv6 Ä«stenota TCP-LD atbalsts (RFC 6069, Ilgi savienojuma traucÄjumi).
ŠŠ±Š¾ŃŃŠ“Š¾Š²Š°Š½ŠøŠµ
Intel videokartes i915 DRM draiveris pÄc noklusÄjuma ietver atbalstu Intel Tiger Lake (GEN12) mikroshÄmÄm, kurÄm Ä«stenota iespÄja izmantot SAGV (System Agent Geyserville) sistÄmu, lai dinamiski pielÄgotu frekvenci un spriegumu atkarÄ«bÄ no enerÄ£ijas patÄriÅa vai veiktspÄjas prasÄ«bÄm.
Amdgpu draiveris ir pievienojis atbalstu FP16 pikseļu formÄtam un iespÄju strÄdÄt ar Å”ifrÄtiem buferiem video atmiÅÄ (TMZ, Trusted Memory Zone).
Pievienots atbalsts jaudas sensoriem AMD Zen un Zen2 procesoriem, kÄ arÄ« temperatÅ«ras sensoriem AMD Ryzen 4000 Renoir. AMD Zen un Zen2 tiek nodroÅ”inÄts atbalsts enerÄ£ijas patÄriÅa informÄcijas izgÅ«Å”anai, izmantojot interfeisu RAPL (Running Average Power Limit).
Nouveau draiverim ir pievienots NVIDIA modifikatora formÄta atbalsts. AttiecÄ«bÄ uz gv100 ir ieviesta iespÄja izmantot interlaced skenÄÅ”anas režīmus. Pievienota vGPU definÄ«cija.
MSM (Qualcomm) draiverim ir pievienots atbalsts Adreno A405, A640 un A650 GPU.
Pievienots iekÅ”ÄjÄ sistÄma DRM (Direct Rendering Manager) resursu pÄrvaldÄ«bai.
Pievienots atbalsts Xiaomi Redmi Note 7 un Samsung Galaxy S2 viedtÄlruÅiem, kÄ arÄ« Elm/Hana Chromebook klÄpjdatoriem.
Pievienots atbalsts ARM platÄm un platformÄm Renesas "RZ/G1H", Realtek RTD1195, Realtek RTD1395/RTD1619, Rockchips RK3326, AMLogic S905D, S905X3, S922XH, Olimex A20-OLinuMMC50,,- Check PointeMMCXNUMX, LIME
, Beacon i.MX8m-Mini, Qualcomm SDM660/SDM630, Xnano X5 TV Box, Stinger96, Beaglebone-AI.
Pievienots atbalsts MIPS procesoram Loongson-2K (saÄ«sinÄti Loongson64). CPU Loongson 3 ir pievienots atbalsts virtualizÄcijai, izmantojot KVM hipervizoru.
Pievienots
atbalsts Krievijas Baikal-T1 procesoram un uz tÄ balstÄ«tajai sistÄmai mikroshÄmÄ BE-T1000. Baikal-T1 procesors satur divus P5600 MIPS 32 r5 superskalÄrus kodolus, kas darbojas ar frekvenci 1.2 GHz. MikroshÄmÄ ir L2 keÅ”atmiÅa (1 MB), DDR3-1600 ECC atmiÅas kontrolieris, 1 10Gb Ethernet ports, 2 1Gb Ethernet porti, PCIe Gen.3 x4 kontrolleris, 2 SATA 3.0 porti, USB 2.0, GPIO, UART, SPI, I2C. Procesors nodroÅ”ina aparatÅ«ras atbalstu virtualizÄcijai, SIMD instrukcijas un integrÄtu aparatÅ«ras kriptogrÄfijas paÄtrinÄtÄju, kas atbalsta GOST 28147-89. MikroshÄma ir izstrÄdÄta, izmantojot MIPS32 P5600 Warrior procesora kodolu, kas licencÄts no Imagination Technologies.
TajÄ paÅ”Ä laikÄ LatÄ«Åamerikas BrÄ«vÄs programmatÅ«ras fonds veidojas
iespÄja pilnÄ«gi bezmaksas kodols 5.8 SÄkot no Linux bezmaksas 5.8-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. Jaunais laidiens atspÄjo blob ielÄdi draiveros Atom ISP Video, MediaTek 7663 USB/7915 PCIe, Realtek 8723DE WiFi, Renesas PCI xHCI, HabanaLabs Gaudi, uzlabotÄ asinhronÄ iztverÅ”anas Ätruma pÄrveidotÄja, maksimÄli integrÄtÄ MAX98390 skaļruÅa MAX38060 ZZL2, Micro86AimpmimiZL6656, MicroXNUMX Aimpmimi XNUMX. un IXNUMXC EEPROM Slave. AtjauninÄts lÄse tÄ«rÄ«Å”anas kods Adreno GPU, HabanaLabs Goya, xXNUMX skÄrienekrÄna, vtXNUMX un btbcm draiveros un apakÅ”sistÄmÄs.