Linux 6.13 arriba amb nou model de Lazy preemption, suport per a escriptura atòmica i molt més

Linux

Després de dos mesos de feina, Linus Torvalds ha donat a conèixer el llançament de la nova versió del Kernel de Linux 6.13, el qual comporta importants avenços i novetats. Entre les principals novetats que presenta es destaca un model de Lazy preemption, que es posiciona entre les maneres voluntary i full, la inclusió del suport per a escriptura atòmica en sistemes de fitxers com XFS i Ext4.

Altres canvis inclouen el controlador virtual-cpufreq, la nova API netlink net-shaper, i una manera de muntatge de tmpfs que ara distingeix entre majúscules i minúscules, juntament amb suport per a extensions POSIX a SMB3, i un controlador optimitzador de memòria cau d'AMD.

Aquesta nova versió ha comptat amb la contribució de 2086 desenvolupadors que van realitzar un total de 14,172 correccions, afectant 15,375 arxius i resultant en l'addició de 598,707 línies de codi, amb l'eliminació de 406,294 línies.

Principals novetats de Linux 6.13

El nucli 6.13, un dels canvis més importants és la introducció del mecanisme «fine-grained timestamps» que millora la precisió en l'obtenció de dades sobre modificacions o accessos a fitxers, aconseguint una precisió superior a un mil·lisegon sense afectar negativament el rendiment.

Una altra de les novetats que presenta el Kernel de Linux 6.13 és el soporti per a escriptures atòmiques, que garanteix que les dades més grans que la mida d'un sector s'escriguin de forma atòmica en dispositius que suporten aquesta funció. Actualment, aquesta funcionalitat està disponible en sistemes de fitxers com XFS, Ext4 en mode O_DIRECT, i en configuracions de RAID 0/1/10 amb md.

Pel que fa a altres sistemes de fitxers, Linux 6.13 marca l'eliminació definitiva de ReiserFS, EROFS ara admet les opcions SEEK_HOLE i SEEK_DATA a lseek(), mentre que F2FS ha afegit suport per a àlies de dispositiusi XFS ha incorporat suport per a quotes en dispositius de temps real i ha millorat la gestió de directoris de metadades. A més, SMB3 ara suporta extensions POSIX necessàries per emmagatzemar fitxers especials, com enllaços simbòlics i fitxers de dispositiu.

Als serveis de memòria i el sistema, s'ha introduït el nou model de preferència diferida (PREEMPT_LAZY). aquest model permet mantenir les capacitats de preemption completa per a les tasques en temps real, mentre que retarda la preferència de les tasques normals fins al límit del tick. A més, el model simplifica la lògica del programador de tasques en eliminar els controladors d'altres parts del nucli del procés de programació.

Pel que fa a les optimitzacions de compilació, s'ha integrat el suport per a optimitzacions AutoFDO en compilar amb Clang, que utilitzen perfils dexecució per ajustar el codi i millorar el rendiment, han demostrat reduir la latència en un 10%. També s'ha afegit un indicador nou a la crida al sistema madvise() amb el propòsit de millorar la gestió de la memòria del procés. L'indicador MADV_GUARD_INSTALL permet reemplaçar adreces de protecció de pàgines específiques, evitant excepcions d'accés (SIGSEGV) sense necessitat d'assignar àrees de memòria virtual noves.

IO_uring també ha rebut diverses millores, incloent la capacitat de canviar la mida dels buffers, enviar missatges en mode síncron entre buffers en anell i clonar parcialment els buffers. A més, s'ha implementat un sondeig d'E/S híbrid i l'API s'ha estès per registrar buffers circulars i àrees de memòria.

Quant a les millores en maquinari, s'ha afegit la capacitat de detectar split-locks en CPUs AMD, un fenomen que passa quan les dades no estan alineades correctament a la memòria i travessen dues línies de memòria cau, cosa que pot afectar greument el rendiment Per mitigar aquest problema, s'ha integrat el controlador AMD Cache Optimizer, que aprofita la tecnologia AMD 3D V -Cache per millorar el rendiment dels nuclis individuals de la CPU, ja sigui augmentant la mida de la memòria cau L3 disponible o incrementant la freqüència.

Per a arquitectures MIPS, s'ha afegit suport per a sistemes amb controladors d'interrupcions de múltiples clústers, cosa que proporciona un controlador d'interrupcions independent per a cada clúster de la CPU. També s'ha implementat una nova operació ioctl, PIDFD_GET_INFO, que permet obtenir informació sobre un procés usant el vostre identificador PIDFD, que roman constant fins i tot si el PID associat canvia quan el procés finalitza.

En ARM, s'inclouen avenços clau com a suport per executar Linux a màquines virtuals protegides mitjançant l'Arquitectura de Computació Confidencial Arm, així com compatibilitat amb piles d'ombres a l'espai d'usuari, millorant la seguretat. També s'implementa un nou mecanisme de comptatge referenciat per a arxius, aconseguint una major escalabilitat.

El programador de tasques ara suporta un mecanisme dexecució de proxy, resolent el problema dinversió de prioritat. Aquest mecanisme evita que tasques de baixa prioritat retinguin recursos necessaris per tasques d'alta prioritat (en temps real) i les bloquegin. A més, s'han separat els contextos de programació i d'execució dels processos.

D'altra banda, es destaca la migració de canvis relacionats amb l'ús de Rust en el desenvolupament de controladors i mòduls del nucli. el suport de Rust no està habilitat per defecte, s'han afegit enllaços i estructures de dades per permetre l'escriptura de controladors en aquest llenguatge, incloent suport per a esdeveniments de seguiment i el controlador Binder reescrit a Rust.

el subsistema BPF ha millorat amb la implementació d'una pila separada per als programes BPF, cosa que redueix el risc de desbordaments en processar grans cadenes de trucades. També s'ha afegit la capacitat d'enviar senyals a altres processos i utilitzar memòria compartida en mapes BPF, cosa que facilita la comunicació de càrrega entre els controladors del programador de tasques.

A més el seguiment d'excepcions ha estat millorat per generar errors de pàgina quan s'activen punts de seguiment a les trucades al sistema, cosa que permet llegir els paràmetres passats des de l'espai de l'usuari. També s'ha afegit el paràmetre transparent_hugepage_shmem per controlar l'ús de pàgines de memòria grans en sistemes de fitxers tmpfs i shmem.

A les xarxes, s'introdueix suport per a la suspensió de NAPI durant inactivitat, millorant el consum energètic, i una nova API de dispositius de xarxa que facilita la configuració avançada del maquinari de transmissió (TX). Així mateix, io_uring ha rebut diverses optimitzacions que perfeccionen el maneig d'operacions asíncrones d'entrada/sortida.

Finalment, s'ha implementat soporti en temps real per a l'arquitectura Loongarch i noves extensions per a l'arquitectura RISC-V, que permeten emmascarar capdavanters a l'espai d'usuari. Per millorar la compressió d'imatges del nucli, l'algorisme predeterminat s'ha canviat a lz4, substituint lz4c.

Interessat en poder conèixer més sobre això, pots consultar els detalls en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.