L'aumento della cifra della versione principale a 5 non implica grandi cambiamenti o problemi di compatibilità. Serve semplicemente a garantire un po' di serenità al nostro caro Linus Torvalds. Di seguito - un elenco di alcune modifiche e innovazioni.
Nucleo:
- Il pianificatore di processi CFS su processori asimmetrici come ARM funziona in modo diverso: prioritizza innanzitutto i core a bassa potenza e ad alta efficienza energetica.
- Attraverso l'API di monitoraggio degli eventi dei file fanotify, è possibile ricevere notifiche sull'apertura di file per l'esecuzione.
- Integrato il controller cpuset, che consente di limitare i gruppi di processi nell'uso della CPU e dei nodi NUMA.
- Aggiunta la supporto per 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-plugging 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 l'inserimento di tag di verifica a basso consumo di memoria.
- La frammentazione della memoria è stata drasticamente ridotta (fino al 90%), risultando in un miglior funzionamento del meccanismo Transparent HugePage.
- La velocità di mremap(2) su grandi aree di memoria è aumentata fino a 20 volte.
- Nel meccanismo KSM, jhash2 è stato sostituito da xxhash, il che ha portato a un incremento della velocità di funzionamento di KSM di 5 volte sui sistemi a 64 bit.
- Miglioramenti in ZRam e OOM.
Dispositivi a blocchi e file system:
- Il meccanismo blk-mq con un sistema di code a più livelli è diventato il principale per i dispositivi a blocchi. Tutto il codice non-mq è stato rimosso.
- Miglioramenti nel supporto NVMe, soprattutto per quanto riguarda il funzionamento dei dispositivi attraverso la rete.
- Per Btrfs è stato implementato il supporto completo per i file di swap e la modifica dell'FSID senza bisogno di riscrivere i metadati.
- In F2FS è stata aggiunta una chiamata ioctl per il controllo posticipato del FS tramite fsck.
- Integrato BinderFS - un pseudo-FS per la comunicazione interprocesso. Permette di eseguire più istanze di Android in un unico ambiente.
- Una serie di miglioramenti in CIFS: cache DFS, attributi estesi, protocollo smb3.1.1.
- ZRam funziona meglio con dispositivi swap non utilizzati, risparmiando memoria.
Sicurezza e virtualizzazione:
- Aggiunta la funzione hash Streebog (GOST 34.11-2012), sviluppata dal FSB russo.
- Supporto per l'algoritmo di crittografia Adiantum, sviluppato da Google per dispositivi a bassa potenza.
- Incorporati gli algoritmi XChaCha12, XChaCha20 e NHPoly1305.
- Il trattamento delle chiamate seccomp può ora essere spostato nello spazio utente.
- Per i sistemi guest KVM è stato implementato il supporto per le estensioni Intel Processor Trace con un minimo calo delle prestazioni.
- Miglioramenti nel sottosistema KVM/Hyper-V.
- Il driver virtio-gpu ha ricevuto supporto per la simulazione EDID per i monitor virtuali.
- Nel driver virtio_blk è stato implementato il richiamo discard.
- Sono state implementate funzioni di sicurezza per la memoria NV, basate sulle specifiche Intel DSM 1.8.
Driver dei dispositivi:
- Modifiche all'API DRM per un supporto completo della sincronizzazione adattativa (parte dello standard DisplayPort) e delle frequenze di aggiornamento variabili (parte dello standard HDMI).
- Incluso lo standard Display Stream Compression per la compressione senza perdita dei flussi video destinati a schermi ad alta risoluzione.
- Il driver AMDGPU ora supporta FreeSync 2 HDR e il ripristino della GPU per CI, VI, SOC15.
- Il driver video Intel ha ricevuto 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 per le schede grafiche della famiglia Turing TU104/TU106.
- Integrati driver per touchscreen Raspberry Pi, pannelli CDTech, Banana Pi, DLC1010GIG e altri.
- Nel driver HDA è disponibile il supporto per il pulsante "jack", indicatori LED, 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 delle webcam, dei tuner TV, USB, IIO, e altro.
Sottosistema di rete:
- Nello stack UDP è stato implementato il supporto per il meccanismo zero-copy per la trasmissione di dati tramite socket senza buffering intermedio.
- Inoltre è stato aggiunto il meccanismo Generic Receive Offload.
- Migliorata la performance della ricerca nelle politiche xfrm in caso di grande numero di esse.
- Nel driver VLAN è stata aggiunta la possibilità di scaricare i tunnel.
- Una serie di miglioramenti nel supporto di Infiniband e reti wireless.
Fonte: linux.org.ru
