Pēc diviem mēnešiem izstrādes Linuss Torvalds prezentēja Linux 5.13 kodola izlaidumu. Starp ievērojamākajām izmaiņām ir EROFS failu sistēma, sākotnējā Apple M1 mikroshēmu atbalsta pievienošana, 'misc' cgroup kontrolieris, atbalsta pārtraukšana /dev/kmem, jauno Intel un AMD GPU atbalsts, tiešā funkciju izsaukšana no BPF programmām, kodola steka randomizācija katram sistēmas izsaukumam, iespēja būvēt Clang ar CFI (Control Flow Integrity) aizsardzību, Landlock LSM modulis papildu procesu ierobežošanai, virtio balstīts virtuālais skaņas ierīce, multi-shot režīms io_uring.
Jaunajā versijā ir 17189 labojumu no 2150 izstrādātājiem (visvairāk vēsturē), un ielāpu lielums ir 60 MB (izmaiņas attiecās uz 12996 failiem, pievienotas 794705 koda rindas, izdzēstas 399590 rindas). Apmēram 47% no visām izmaiņām 5.13 ir saistītas ar ierīču draiveriem, aptuveni 14% izmaiņas ir saistītas ar aparatūras arhitektūru specifiska koda atjauninājumiem, 13% saistīti ar tīkla steku, 5% — ar failu sistēmām un 4% — ar kodola iekšējām apakšsistēmām.
Galvenās jauninājumi:
- Disku apakšsistēma, I/O un failu sistēmas
- Pievienots EROFS (Enhanced Read-Only File System) failu sistēmas atbalsts, ko piedāvājusi kompānija Huawei izmantošanai tikai lasāmajos nodalījumos. Jaunā failu sistēma atbalsta datu glabāšanu saspiestā veidā un salīdzinājumā ar Ext4 rāda līdzīgas veiktspējas sekmes secīgas lasīšanas operācijās, bet vairākas reizes apsteidz Ext4 nejaušās piekļuves operācijās. Piemēram, pie 4 saspiešanas līmeņa un testējot uz serveri cietā diska EROFS failu sistēma apsteidza Ext4 nejaušās lasīšanas operācijās vairāk nekā sešas reizes, bet, izmantojot Android viedtālruni ar Flash, gandrīz trīs reizes. Kā citās tikai lasāmās failu sistēmās, EROFS struktūra ir būtiski vienkāršota, atsijāšanai realizējot dažas metadatu jomas, piemēram, brīvo bloku bitu karti.
- SMB3 failu sistēmai ir ieviesta 'rasize' montēšanas opcija, ar kuru var noteikt iepriekšējās lasīšanas (readahead) loga izmēru, lai palielinātu veiktspēju dažām slodzes veidiem.
- ext4 failu sistēmā nodrošināta katalogu elementu pārrakstīšana, dzēšot failus. ext4 arī atļauj vienlaicīgu režīmu bez simbolu reģistra ņemšanas vērā un šifrēšanu.
- FSo exFAT ir pievienota atbalsts ioctl komandas FITRIM (discard), lai informētu glabātuvi par neizmantotajām blokiem FSm.
- FSo XFS ir pievienota iespēja izņemt vietu no pēdējās sadales grupas FSm, kas kļuva par pirmo posmu esošo daļu samazināšanas funkcijas īstenošanā ar FSu XFS.
- Ievadīts jauns sistēmas izsaukums quotactl_path, kas atšķiras no quotactl, jo tas ļauj pārvaldīt kvotas nevis caur speciāla ierīču faila, bet norādot ceļu uz FSm montēšanas punktu.
- Fanotify mehānismā paplašinātas iespējas, kas pieejamas nepiederošiem lietotājiem. Piemēram, līdzīgi kā inotify, bez SYS_CAP_ADMIN tiesībām tagad var uzraudzīt OPEN, ACCESS, MODIFY un CLOSE notikumus failiem un katalogiem.
- Atmiņa un sistēmas pakalpojumi
- Pievienots jauns cgroup kontrolieris - „Misc” (CONFIG_CGROUP_MISC), kas paredzēts skalaru resursu ierobežošanai un uzraudzībai, ko var kontrolēt, izmantojot vienkāršu skaitītāju un ierobežot, nosakot maksimāli pieļaujamās vērtības. Jauna cgroup kontroliera piemērai minēta adresācijas telpas identifikatoru pārvaldība, ko izmanto AMD SEV (Secure Encrypted Virtualization) mehānismā.
- Asinhronā ievadi/izejas io_uring saskarnē POLL pieprasījumiem ieviests „multi-shot” režīms, kurā POLL netiek dzēsts pēc notikuma ģenerēšanas, bet paliek aktīvs un var ģenerēt vairākus notikumus.
- No reāllaika kodola zara pārnests kods, kas nodrošina programmatūras ģenerēto traucējumu apstrādi kodola pavedienos, ļaujot tos aizvietot ar augstāka prioritāte procesiem.
- Pievienota iekšējā bibliotēka netfs, kurā pārvietotas tipiskas funkcijas, kas tiek izmantotas tīkla failu sistēmās.
- PowerPC arhitektūrai ieviesta atbalsta laika telpas (time namespaces) lietojumprogrammu atbalsts, kas ļauj izmantot savu laiku konteinerā.
- RISC-V arhitektūrai ieviesta atbalsta kexec, crash dump, kprobe un kodola palaišana vietā (execute-in-place, izpilde no avota nesēja, nevis kopējot uz RAM).
- BPF izsekošanas programmās parādījās iespēja izmantot uzdevuma vietējo datu glabātuvi (task-local storage), nodrošinot augstāku veiktspēju, piesaistot datus konkrētam BPF apstrādātājam.
- Ieviesta jauna mehānisms tiešai funkciju izsaukšanai no BPF programmām, kas jau tiek izmantots TCP pārslodzes algoritmu īstenojumā. Lai nodrošinātu drošību, izsauktajām funkcijām jābūt skaidri noteiktām baltajā sarakstā.
- Funkciju izsekošanas sistēmā ftrace pievienota opcija func-no-repeats, kas ļauj atspoguļot atkārtojošos secīgos funkciju izsaukumus skaitītāja veidā.
- Sistēmiskajam izsaukumam userfaultfd(), kas paredzēts lapu kļūdu apstrādei (pieeja nepiešķirtām atmiņas lapām) lietotāja telpā, pievienota iespēja pārvaldīt daļējas kļūdas, kad atmiņas lapa ir klāt, bet nav ieraksta atmiņas lapu tabulā.
- Atbalsts īpašajam failam /dev/kmem, kas ļāva piekļūt visam kodola adreses laukumam, ir pārtraukts. Šis fails ir atzīts par novecojušu un izsauc drošības problēmas.
- Intel mikroshēmām ieviests jauns dzinējs, kas pārvalda dzesēšanu, ļaujot samazināt procesora frekvenci, ja draud pārkaršana. Atšķirībā no esošā TCC (Thermal Control Circuit) aktivizācijas mehānisma, jaunais dzinējs manipulē ar relatīviem rādītājiem, t.i., var samazināt frekvenci jau augstas temperatūras sākuma posmā, negaidot kritiskā sliekšņa pārsniegšanu.
- Virtualizācija un drošība
- Iekļauts LSM modulis Landlock, kas nodrošina lietojumprogrammu izolācijas mehānismu. Tas ierobežo grupas procesu mijiedarbību ar ārējo vidi un ir izstrādāts, ņemot vērā tādus izolācijas mehānismus kā XNU Sandbox, FreeBSD Capsicum un OpenBSD Pledge/Unveil. Pieejas nodrošināšanas loģika tiek noteikta ar BPF programmu, taču, atšķirībā no seccomp-bpf, Landlock netraucē sistēmiskos izsaukumus un to argumentus, bet ļauj ierobežot kodola objektu izmantošanu, piemēram, failu hierarhijām. Ar Landlock jebkurš process, tostarp bez privilēģijām, var droši izolēt sevi un novērst izolācijas apietšanu gadījumā, ja tiek atklāti ievainojamības vai ļaunprātīgas izmaiņas lietojumprogrammā. Landlock ļauj procesam izveidot aizsargātas izolētās vides, kas tiek realizētas kā papildu slānis virs esošajām sistēmiskajām piekļuves kontroles mehānismiem. Piemēram, programma var aizliegt piekļuvi failiem ārpus darba direktorija.
- Pievienota iespēja rasties nejaušiem nobīdes kodolā, apstrādājot sistēmas izsaukumus, lai apgrūtinātu uzbrukumus uz kaudzi. Ieteiktās aizsardzības būtība ir izvēlēties nejaušu kaudzes nobīdi katra sistēmas izsaukuma laikā, kas apgrūtina kaudzes izkārtojuma noteikšanu atmiņā, pat saņemot informāciju par adresēm, jo, veicot nākamo sistēmas izsaukumu, kaudzes bāzes adrese tiks mainīta. Lai aktivizētu nejaušību, ieteikti kodola komandrindas parametri „randomize_kstack_offset=on/off” un iestatījums CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT. Izmaksas tiek novērtētas aptuveni 1% veiktspējas zaudējumu.
- Pievienota atbalsts kodola kompilēšanai ar Clang kompilatoru, iekļaujot CFI (Control Flow Integrity) aizsardzības mehānismu, kas pirms katra netieša funkciju izsaukuma veic pārbaudi, lai identificētu dažas nenoteiktas uzvedības formas, kas var potenciāli izraisīt normālā izpildes secības pārtraukumu (control flow) rezultātā, mainot atmiņā glabātos funkciju rādītājus. Lai aktivizētu CFI, ieteikts parametrs CONFIG_CFI_CLANG.
- Kodola piedāvātajā atslēgu glabāšanas pakalpojumā (key ring) tagad uzticamo atslēgu mehānisms (Trusted Keys) aptver ne tikai TPM moduļu atslēgas, bet arī TEE (Trusted Execution Environment) vidi. Lai pārvaldītu uzticamo atslēgu avotu, ieteikts ielādes parametrs „trusted.source”. Turklāt pievienota iespēja apstrādāt uzticamās atslēgas ASN.1 formātā.
- Pievienots params iepriekšējai nolaišanas atzīmēto sertifikātu saraksta ielādēšanai kodola ielādēšanas laikā. Atrisināta problēma (CVE-2020-26541) ar UEFI Secure Boot sertifikātu melnā saraksta ignorēšanu, kas tika piegādāti EFI_CERT_X509_GUID formātā, ļaujot sistēmu ielādēt ar atzīmētu sertifikātu.
- Kodola kriptosistēmā pievienots atbalsts ECDSA digitālo parakstu pārbaudei, balstoties uz eliptiskām līknēm.
- Iespējota SELinux politiku verifikācija, izmantojot IMA (Integrity Measurement Architecture) apakšsistēmu, kas nodrošina hashes bāzes saglabāšanu datu integritātes pārbaudei.
- Tīkla subsistēma
- Atbalsts WiMAX tehnoloģijai ir noņemts, jo tā vairs netiek izmantota publiskajos tīklos, un kā vienīgais draiveris, ko var izmantot ar WiMAX, paliek novecojis Intel 2400m draiveris. Tīkla konfiguratorā NetworkManager atbalsts WiMAX tika pārtraukts 2015. gadā. Pašreiz WiMAX praktiski pilnībā ir aizvietots ar tādām tehnoloģijām kā LTE, HSPA+ un Wi-Fi 802.11n.
- Pievienots draiveris MANA (Microsoft Azure Network Adapter) tīkla adapterim.
- Draiverī ath11k ir pievienots atbalsts Qualcomm QCN9074 bezvadu moduļiem ar atbalstu 802.11ax.
- Draiverī iwlwifi ir ieviesta pasīvā kanālu skenēšanas iespēja 6GHz frekvenču diapazonā. Ukrainai pievienots atbalsts IEEE 802.11ax ieslēgšanai/izsleigšanai, pamatojoties uz BIOS parametriem.
- Izdota optimizācija XDP (eXpress Data Path) apakšsistēmai, kas ļauj manipulēt ar tīkla pakotnēm to apstrādes stadijā pirms to pārvaldīšanas caur Linux kodola tīkla steku. Veiktie testi rāda XDP veiktspējas pieaugumu par 4-8%. Virtio ierīcēm programmatūras apstrādes AF_XDP veiktspējas pieaugums var sasniegt 33%.
- ICMP ir ieviests paplašināto PROBE ziņojumu atbalsts, kas noteikts RFC 8335.
- Integration into the MPTCP (MultiPath TCP) kernel continues, an extension of the TCP protocol to enable TCP connections to deliver packets simultaneously over multiple routes through different network interfaces bound to different IP adresēm. Jaunajā izlaidumā ir pievienots sockopt atbalsts standartizētu TCP opciju noteikšanai. Ieviešama iespēja atjaunot atsevišķus apakšplūdus.
- Netfilter ir pievienots atbalsts resursu pārvaldībai, izmantojot centralizētu cgroups v2 hierarhiju.
- Ethtool ir ieviests interfeiss IEEE MIB statistikas lasīšanai ar mlx5 un bnxt atbalstu. Tīkla draiveriem ir atļauts iegūt nejaušus datus no SFP EEPROM, manipulējot nevis ar pāru pārvietošanu + lielumu, bet ar atmiņas lapām.
- Aprīkojums
- Ieviesta sākotnējā ARM mikroshēmas Apple M1 atbalsta versija, kas aptver pārtraukumu kontrolieri, taimeri, UART, SMP, I/O organizēšanas funkcijas un MMIO. GPU apgriešana joprojām nav pabeigta, un izejas organizēšanai ir nodrošināts atbalsts framebuffer un konsoles pieejai caur sērijas portu.
- Turpināta kodeka tīrīšana no vecajiem draiveriem, noņemti "gasket" (Google ASIC), "sysace", "umem" un vairāki vecie draiveri sērijas portiem.
- Pēc 13 gadu uzturēšanās staging nozarē draiveris "comedi" ir stabilizēts un pārvietots uz galveno sastāvu datu vākšanas iekārtu atbalsta nodrošināšanai.
- Pievienots GUD (Generic USB Display) draiveris ar pamata draivera realizāciju, kas paredzēta ekrāniem un TV adapteriem, kas pieslēgti caur USB interfeisu. Draiveris nodrošina DRM īpašības (Direct Rendering Manager) attēla pagriešanai, spilgtuma regulēšanai, piekļuvei EDID, video režīmu iestatīšanai un TV pieslēgšanai, ko var izmantot, lai izveidotu draiverus konkrētiem ierīcēm.
- Pievienots skaņas draiveris «virtio» ar virtuālas skaņas ierīces realizāciju, ko var izmantot viesu sistēmās skaņas atskaņošanai un ierakstīšanai, neizjaucot piekļuvi skaņas kartei un bez emulācijas.
- Draiverī amdgpu pievienota sākotnējā Aldebaran GPU (gfx90a) atbalsta funkcionalitāte. Iekļauts sākotnējais FreeSync tehnoloģijas atbalsts HDMI (iepriekš bija pieejams DisplayPort), kas ļauj pielāgot informācijas atsvaidzināšanas biežumu ekrānā. Iekļauts ASSR (Alternate Scrambler Seed Reset) atbalsts. Pievienots ioctl, lai pieprasītu iespējas, kas saistītas ar video kodēšanu un dekodēšanu. Pievienots CONFIG_DRM_AMD_SECURE_DISPLAY režīms, lai atklātu izmaiņas displejos, kas parāda kritisku informāciju. Pievienots ASPM enerģijas taupīšanas mehānisma atbalsts.
- Draiverī i915 Intel grafiskajām kartēmiekļauts Intel Alderlake-S čipu atbalsts. Pievienots eDP MSO (Embedded DisplayPort Multi-SST Operation) atbalsts.
- Pievienots spēļu kontrolleru Luna (Amazon) atbalsts, kā arī Hycon HY46XX, ILITEK Lego Series un MStar MSG2638 skārienekrānu atbalsts.
Tajā pašā laikā Dienvidamerikas Brīvā programmatūras fonds izveidoja pilnīgi brīvu 5.11 versijas Linux-kodolu — Linux-libre 5.11-gnu, kas attīrīts no iekšējām programmām un draiveriem, kuros ir nebrīvas komponentes vai koda daļas, kuru izplatību ierobežo ražotājs. Jaunajā laidienā veikta draivera comedi attīrīšana. Pārtraukta draiveru cyclades, isicom tty un i2400m wimax attīrīšana, kas tika dzēsti no kodola. Atjaunināts bloķēšanas attīrīšanas kods draiveros un subsistēmās amdgpu, i915 csr, r8152 usb, mhi bus, x86 skārienekrānos un qualcomm arm64.
Avots: opennet.lv
