Lansarea kernelului Linux 6.13

După două luni de dezvoltare, Linus Torvalds a lansat kernelul. Linux 6.13. Printre cele mai notabile modificări: modul de preempțiune lentă în planificatorul de activități, suport pentru scrieri atomice în XFS și Ext4, mecanismul „timestamp-uri multigrain”, modul de interogare adaptivă în subsistemul de rețea, capacitatea de a construi cu optimizări AutoFDO, suport pentru mecanismul de protecție ARM65 Guarded Control Stack, izolarea mașinilor virtuale folosind extensia ARM CCA, stive separate în BPF, eliminarea ReiserFS, driverul virtual-cpufreq, net-shaper-ul API netlink, modul de montare tmpfs sensibil la majuscule/minuscule, suport pentru extensii POSIX în SMB3, driverul AMD Cache Optimizer.

Noua versiune include 14172 de corecții de la 2086 de dezvoltatori, dimensiunea patch-ului este de 46 MB (modificările au afectat 15375 de fișiere, au fost adăugate 598707 linii de cod, 406294 de linii au fost șterse). Ultima versiune a avut 14607 remedieri de la 2167 dezvoltatori, dimensiunea patch-ului a fost de 37 MB. Aproximativ 52% din toate modificările introduse în 6.13 sunt legate de driverele de dispozitiv, aproximativ 13% dintre modificări sunt legate de actualizarea codului specific arhitecturilor hardware, 11% sunt legate de stiva de rețea, 4% sunt legate de sistemele de fișiere și 3% sunt legate de subsistemele interne ale nucleului.

Inovații cheie în nucleul 6.13:

  • Subsistem de disc, I/O și sisteme de fișiere
    • S-a adăugat mecanismul „marcate temporale multigrain”, care vă permite să obțineți informații despre momentul modificării sau accesul la fișiere cu o precizie mai mare de o milisecundă, dar fără un impact negativ asupra performanței. Creșterea acurateței etichetelor duce la supraîncărcare suplimentară din cauza creșterii intensității scrierii metadatelor pe disc, astfel încât în ​​implementarea propusă nu sunt create etichete mai precise pentru toate fișierele, ci doar pentru cele pentru care procesele solicită astfel de etichete prin intermediul apel getattr().
    • S-a adăugat suport pentru scrierile atomice, în care datele mai mari decât dimensiunea sectorului sunt scrise atomic pe dispozitivele de stocare care oferă această capacitate. În prezent, scrierea atomică este implementată pentru XFS, Ext4 în modul O_DIRECT (Direct I/O) și md RAID 0/1/10.
    • Este propus un nou mecanism de numărare a referințelor de fișiere care oferă o creștere a performanței cu 3-5% a sarcinilor de lucru cu mai mult de 255 de fire.
    • Implementarea sistemului de fișiere ReiserFS, care a fost declarat învechit cu un an înainte, a fost eliminată.
    • S-a adăugat parametrul sysctl „fs.dentry-negative” pentru a seta politica în VFS pentru a curăța intrările „dentry” (reprezentarea internă a elementelor din director) după ștergerea fișierelor asociate cu acestea. Pentru unele tipuri de încărcare, este optim să lăsați astfel de înregistrări despre fișierele șterse, iar pentru altele, să le ștergeți, astfel încât nucleul oferă o alegere (în mod implicit, „dentriile” nu sunt șterse automat).
    • S-a adăugat indicatorul STATMOUNT_OPT_ARRAY la apelul de sistem statmount() pentru a returna o listă de opțiuni ale sistemului de fișiere ca o matrice de șiruri terminate cu valori nule care nu folosesc evadarea „\000”. S-a adăugat suport pentru returnarea subtipului FS (fs_subtype, pentru a determina dacă este utilizat FUSE), opțiuni de montare securizată și superbloc sursă (sb_source).
    • OverlayFS oferă posibilitatea de a specifica straturi prin descriptori de fișiere, mai degrabă decât numele căilor de fișiere.
    • S-a adăugat o opțiune de montare „casefold” la sistemul de fișiere tmpfs pentru operarea cu majuscule și minuscule și o opțiune „strict_encoding” pentru a bloca crearea fișierelor cu nume care conțin caractere UTF-8 invalide.
    • A fost propus un nou set de apeluri de sistem pentru a gestiona atributele extinse ale fișierului: setxattrat(), getxattrat(), listxattrat() și removexattrat(). Spre deosebire de apelurile de sistem setxattr(), getxattr(), listxattr() și removexattr(), noile opțiuni necesită specificarea unui descriptor de fișier al directorului în care să căutați o cale de fișier.
    • S-a adăugat operația ioctl BTRFS_IOC_SUBVOL_SYNC_WAIT la Btrfs, care include așteptarea finalizării curățării subvolumului, permițând executarea comenzii „btrfs subvolume sync” de către un utilizator neprivilegiat care nu are acces la SEARCH_TREE ioctl (utilă în aplicațiile de backup pentru subvolume) . S-a adăugat operația ioctl ENCODED_READ pentru citirea datelor codificate prin io_uring, de exemplu, pentru citirea extensiilor comprimate direct fără decomprimare. Au continuat lucrările privind trecerea la utilizarea foliilor de pagină. S-a redus apariția blocărilor concurente („concurență de blocare”) la căutarea backlink-urilor încorporate și la iterarea peste buffer-uri de extindere. Eficiență îmbunătățită de compresie a hărții de extindere.
    • În sistemul de fișiere EROFS (Extendable Read-Only File System), destinat utilizării pe partițiile accesibile în modul doar citire, este posibil să se utilizeze opțiunile SEEK_HOLE și SEEK_DATA în apelul de sistem lseek().
    • F2FS acceptă acum aliasingul dispozitivelor, ceea ce vă permite să rezervați temporar o zonă în F2FS pentru a utiliza o parte a unui dispozitiv bloc într-un alt FS. După finalizarea operațiunii externe, zona rezervată poate fi returnată către F2FS. De exemplu, puteți crea un FS folosind comanda „mkfs.f2fs -c /dev/vdc@vdc.file /dev/vdb”, după care conținutul dispozitivului /dev/vdc va fi rezervat și reflectat în fișierul vdc.file, iar secțiunea /dev/vdc poate fi utilizată pentru nevoile dvs., de exemplu, formatată pentru un alt FS. Pentru a returna conținutul rezervat, ștergeți pur și simplu fișierul vdc.
    • XFS include suport pentru cote pentru dispozitive în timp real. S-a adăugat suport pentru un director de metadate, care conține toate inodele de metadate.
    • Motorul FUSE include capacitatea de a modifica dinamic numărul maxim de pagini (FUSE_MAX_MAX_PAGES) folosind „sysctl fs.fuse.max_pages_limit”. Lucrarea implică foi de pagini de memorie.
    • SMB acceptă acum extensii POSIX pentru SMB3, care sunt necesare pentru stocarea tipurilor speciale de fișiere, cum ar fi FIFO-uri, fișiere de dispozitiv și link-uri simbolice. A fost adăugată posibilitatea de a monta o partiție cu o parolă alternativă pentru rotația parolei. A fost adăugată o nouă opțiune de montare, „cifs.upcall”, pentru definirea unui spațiu de nume. Fișierele de dispozitiv cu caractere și blocuri create în Windows Server NFS. Adăugat suport pentru legături simbolice în stil WSL (Windows Subsistem pentru Linux).
    • Sistemele de fișiere UBIFS, ADFS, BEFS, HFS, HFSPLUS, HPFS, JFS și ECRYPTFS au fost convertite pentru a utiliza noul API de montare a partițiilor.
    • Sistemele de fișiere și ECRYPTFS, UFS și NILFS2 au fost convertite pentru a utiliza paginile de pagini.
  • Servicii de memorie și sistem
    • Planificatorul implementează un model de preempțiune leneș pentru sarcini (PREEMPT_LAZY, preempțiune leneșă), care corespunde modelului de preempțiune completă pentru sarcini în timp real (RR/FIFO/DEADLINE), dar întârzie preempționarea sarcinilor obișnuite (SCHED_NORMAL) până la limita de bifare. Această latență are ca rezultat mai puține preempții ale suportului de blocare, aducând performanța mai aproape de configurațiile care utilizează modelul de preempțiune voluntară. Astfel, noul model vă permite să mențineți capacități complete de preempțiune pentru sarcini în timp real, dar minimizează degradarea performanței pentru sarcinile obișnuite. În plus, noul model simplifică logica operațiunilor de preempțiune a sarcinilor din nucleu prin eliminarea handlerelor localizate în alte componente ale nucleului (în afara planificatorului de sarcini) din procesul de planificare.
    • Când construiți cu compilatorul Clang, este posibil să utilizați optimizări

      Sursa: opennet.ru
Cumpărați găzduire de încredere pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără găzduire web fiabilă cu protecție DDoS, servere VPS VDS | ProHoster