L'aumento della cifra della versione principale a 5 non implica cambiamenti significativi o problemi di compatibilità. Serve semplicemente a mantenere la pace mentale del nostro caro Linus Torvalds. Di seguito è riportato un elenco di alcune modifiche e novità.
Nucleo centrale:
- Il pianificatore di processi CFS su processori asimmetrici come ARM funziona in modo diverso: in primo luogo, carica i core a bassa potenza ed efficienti dal punto di vista energetico.
- Attraverso l'API di tracciamento degli eventi dei file fanotify, è possibile ricevere notifiche sull'apertura di un file per l'esecuzione.
- È stato integrato il controllore cpuset, che permette di limitare i gruppi di processi nell'uso della CPU e dei nodi NUMA.
- È stata aggiunta la compatibilità con i seguenti dispositivi ARM: Qualcomm QCS404, Allwinner T3, NXP/Freescale i.MX7ULP, NXP LS1028A, i.MX8, RDA Micro RDA8810PL, Rockchip Gru Scarlet, Allwinner Emlid Neutis N5 e molti altri.
- Miglioramenti nel sottosistema ARM: hot-plug della memoria, protezione contro Meltdown e Spectre, indirizzamento della memoria a 52 bit, ecc.
- Supporto per l'istruzione WBNOINVD per x86-64.
Sottosistema della memoria:
- Per lo strumento KASAN su piattaforme ARM64 è disponibile la sostituzione delle etichette di controllo con un basso consumo di memoria.
- La frammentazione della memoria è stata drasticamente ridotta (fino al 90%), migliorando così il funzionamento del meccanismo Transparent HugePage.
- La velocità di mremap(2) su ampie aree di memoria è aumentata fino a 20 volte.
- Nel meccanismo KSM, jhash2 è stato sostituito da xxhash, il che ha aumentato la velocità di KSM su sistemi a 64 bit di 5 volte.
- Miglioramenti in ZRam e OOM.
Dispositivi a blocchi e file system:
- Il meccanismo blk-mq con un sistema a più livelli di code di richieste è diventato la norma per i dispositivi a blocchi. Tutto il codice non-mq è stato rimosso.
- Miglioramenti nel supporto NVMe, in particolare per il funzionamento dei dispositivi attraverso la rete.
- Per Btrfs è stato implementato un supporto completo per i file di swap, oltre alla modifica dell'ID FS senza riscrivere i metadati.
- In F2FS è stata aggiunta una chiamata ioctl per un controllo posticipato del file system tramite fsck.
- È stata integrata BinderFS, un pseudo-file system per l'interazione tra processi. Consente di eseguire più istanze di Android in un'unica ambiente.
- Una serie di miglioramenti in CIFS: cache DFS, attributi estesi, protocollo smb3.1.1.
- ZRam funziona in modo ottimale con i dispositivi di swap non utilizzati, risparmiando memoria.
Sicurezza e virtualizzazione:
- È stata aggiunta la funzione hash Streebog (GOST 34.11-2012), sviluppata dal FSB della Federazione Russa.
- Supporto per l'algoritmo di crittografia Adiantum, sviluppato da Google per dispositivi a bassa potenza.
- Includono gli algoritmi XChaCha12, XChaCha20 e NHPoly1305.
- La gestione delle chiamate seccomp può ora essere spostata nello spazio utente.
- Per i sistemi ospiti KVM è stata implementata la supporto per le estensioni Intel Processor Trace con un impatto minimo sulle prestazioni.
- Miglioramenti nel sottosistema KVM/Hyper-V.
- Il driver virtio-gpu ha ricevuto il supporto per la simulazione EDID per i monitor virtuali.
- Nel driver virtio_blk è stata implementata la chiamata discard.
- Funzionalità di sicurezza per la memoria NV sono state implementate in base alle specifiche Intel DSM 1.8.
Driver di dispositivo:
- Modifiche all'API DRM per il completo supporto della sincronizzazione adattiva (parte dello standard DisplayPort) e delle frequenze di aggiornamento variabili (parte dello standard HDMI).
- Incorporato lo standard Display Stream Compression per la compressione senza perdita di video stream destinati a schermi ad alta risoluzione.
- Il driver AMDGPU ora supporta FreeSync 2 HDR e il reset della GPU per CI, VI, SOC15.
- Il driver video Intel ha aggiunto il supporto per i chip Amber Lake, i formati YCBCR 4:2:0 e YCBCR 4:4:4.
- Il driver Nouveau ha incluso il supporto per le modalità video delle schede grafiche delle famiglie Turing TU104/TU106.
- I driver per touchscreen Raspberry Pi, pannelli CDTech, Banana Pi, DLC1010GIG e altri sono stati integrati.
- Il driver HDA supporta il pulsante 'jack', gli indicatori LED, e i dispositivi Tegra186 e Tegra194.
- Il sottosistema di input ha imparato a lavorare con lo scrolling ad alta precisione su alcuni mouse Microsoft e Logitech.
- Numerosi cambiamenti nei driver per webcam, tuner TV, USB, IIO e altro.
Sottosistema di rete:
- Nel stack UDP è stata implementata la supporto per il meccanismo zero-copy per la trasmissione dei dati tramite socket senza buffering intermedio.
- È stato aggiunto anche il meccanismo Generic Receive Offload.
- Migliorata la performance di ricerca nelle politiche xfrm in presenza di un grande numero di esse.
- Nel driver VLAN è stata aggiunta la possibilità di scaricare tunnel.
- Una serie di miglioramenti nel supporto Infiniband e nelle reti wireless.
Fonte: linux.org.ru
