Nucleu
După două luni de dezvoltare, Linus Torvalds a anunțat lansarea noii versiuni 5.10 a kernelului Linux , o versiune care vine cu statutul de ramură cu o perioadă lungă de suport, ale cărei actualizări vor fi lansate timp de cel puțin doi ani.
Printre modificările notabile ale acestei noi versiuni se numără suportul pentru mecanismul de protecție MemTag pentru sistemele ARM64, opțiunea de montare „nosymfollow”, optimizări semnificative Ext4, remedierea erorii XFS 2038, un nou apel de sistem process_madvise, suport îmbunătățit pentru AMD SEV prin criptarea registrelor CPU și posibilitatea de a întrerupe programele BPF.
Noua versiune a primit 17470 de corecții de la 2062 de dezvoltatori; dimensiunea corecției: 64 MB (modificările au afectat 15101 fișiere, au adăugat 891932 de linii de cod și au eliminat 619716 linii). Aproximativ 42% din toate modificările introduse în versiunea 5.10 sunt legate de driverele de dispozitiv , aproximativ 16% sunt legate de actualizarea codului specific arhitecturii hardware, 13% sunt legate de stiva de rețea, 3% sunt legate de sistemele de fișiere și 3% sunt legate de subsistemele interne ale kernelului.
Principalele caracteristici noi ale Linux 5.10
Printre principalele modificări, constatăm că pentru ext4 a fost adăugat modul fast_commit , care reduce semnificativ întârzierile în multe operațiuni cu fișierele datorită eliminării mai rapide a metadatelor pe disc la executarea unui apel fsync(). În circumstanțe normale, executarea funcției fsync() sincronizează un set redundant de metadate. În modul fast_commit, doar metadatele necesare pentru recuperarea sistemului de fișiere în caz de blocare sunt transferate în registry, ceea ce accelerează apelurile fsync() și îmbunătățește performanța operațiunilor care manipulează activ metadatele.
În timp ce Btrfs include optimizări importante de performanță legate de operațiile fsync (). Reducerea conținutului log mutex a dus la o creștere de 4% a performanței și la o reducere de 14% a latenței atunci când rulează benchmark-ul dbench cu 32 de clienți. Eliminarea confirmărilor suplimentare pentru linkuri și modificări de nume a mărit lățimea de bandă cu 6% și a redus latența cu 30%. Limitarea fsync-ului să aștepte numai pentru rescrieri a crescut performanța cu 10-40%.
În plus, Implementarea Btrfs a I / O directă (io direct) a fost mutată în cadrul iomap.
XFS adaugă modificări ale metadatelor inode pentru a rezolva problemele de depășire a limitei de stocare în tipul de date time_t pe 32 de biți în 2038. Modificări similare, care au mutat depășirea limitei de stocare a contorului de timp în anul 2468, au fost adăugate la codul pentru calcularea timpilor de cotă pe disc. Formatul XFS V4 este declarat învechit; utilizatorii sunt încurajați să facă upgrade la formatul V5, dar există suficient timp pentru upgrade, deoarece suportul V4 va continua până în 2030. XFS a redimensionat, de asemenea, intrarea inode btree, permițând mai multe verificări de redundanță și timpi de montare mai rapizi.
Pentru subsistemul FUSE implementat suportul operațiunilor DAX pentru a accesa direct sistemul de fișiere, ocolind memoria cache a paginii fără dispozitiv de blocare la nivel de aplicație care este utilizat pentru a evita dubla cache a organizării accesului comun la sistemele de oaspeți, directoare și fișiere. Virtiofs adaugă, de asemenea, suport pentru montarea separată a partițiilor cu diferite puncte de montare pe sistemul gazdă.
Sistemul de fișiere F2FS adaugă un nou mod de colectare a gunoiului ATGC (Age Threshold Garbage Collection) , suport îmbunătățit pentru dispozitivele NVMe zonate și decompresie mai rapidă a datelor comprimate.
În F2FS și Ext4, modul de lucru cu nume de fișiere care nu țin cont de majuscule/minuscule a fost reproiectat; s-a decis unificarea implementării numelor de fișiere care nu țin cont de majuscule/minuscule prin mutarea codului asociat într-o bibliotecă comună.
O altă modificare importantă este în interfața I/O asincronă io_uring, care adaugă posibilitatea de a crea inele restricționate ce pot fi partajate în siguranță cu un proces nede încredere. Această caracteristică permite aplicației de bază să restricționeze selectiv accesul doar la descriptorii săi individuali de fișiere pentru utilizarea de către aplicații terțe prin io_uring. În plus, indicatorul PIDFD_NONBLOCK a fost adăugat la apelul de sistem pidfd_open() pentru a crea un descriptor de fișier fără blocare (analog cu O_NONBLOCK pentru pidfd).