Llançament del nucli Linux 5.2

Després de dos mesos de desenvolupament, Linus Torvalds introduït llançament del nucli Linux 5.2. Entre els canvis més notables: el mode operatiu Ext4 no distingeix entre majúscules i minúscules, trucades de sistema separades per muntar el sistema de fitxers, controladors per a GPU Mali 4xx/ 6xx/7xx, la capacitat de gestionar els canvis en els valors sysctl en programes BPF, mapeador de dispositius mòdul dm-dust, protecció contra atacs MDS, suport per Sound Open Firmware per DSP, optimització del rendiment BFQ, apropant el subsistema PSI (Pressure Stall Information) a la possibilitat d'utilitzar-lo a Android.

La nova versió inclou 15100 correccions de 1882 desenvolupadors,
mida del pedaç: 62 MB (els canvis van afectar 30889 fitxers, es van afegir 625094 línies de codi i s'han suprimit 531864 línies). Al voltant del 45% de tots els presentats a 5.2
els canvis estan relacionats amb els controladors de dispositiu, aproximadament el 21% dels canvis
actitud cap a l'actualització de codi específic de les arquitectures de maquinari, 12%
relacionats amb la pila de xarxa, un 3% amb sistemes de fitxers i un 3% amb interns
subsistemes del nucli. El 12.4% de tots els canvis van ser preparats per Intel, el 6.3% per Red Hat, el 5.4% per Google, el 4.0% per AMD, el 3.1% per SUSE, el 3% per IBM, el 2.7% per Huawei, el 2.7% per Linaro, el 2.2% per ARM , 1.6 % - Oracle.

El principal innovacions:

  • Subsistema de disc, E/S i sistemes de fitxers
    • Afegit per a Ext4 donar suport funcionen sense distingir les majúscules i minúscules dels noms dels fitxers, que només s'activa en relació amb directoris buits individuals mitjançant el nou atribut "+F" (EXT4_CASEFOLD_FL). Quan aquest atribut s'estableix en un directori, totes les operacions amb fitxers i subdirectoris dins es realitzaran sense tenir en compte el cas dels caràcters, inclòs el cas s'ignorarà en cercar i obrir fitxers (per exemple, els fitxers Test.txt, test.txt i test.TXT en aquests directoris es consideraran iguals). Per defecte, el sistema de fitxers continua sent sensible a majúscules i minúscules, amb l'excepció dels directoris amb l'atribut “chattr +F”;
    • S'han unificat les funcions per processar caràcters UTF-8 en noms de fitxers, que s'utilitzen quan es realitzen operacions de normalització i comparació de cadenes;
    • XFS afegeix infraestructura per al control de l'estat del sistema de fitxers i un nou ioctl per consultar l'estat de salut. S'ha implementat una funció experimental per comprovar els comptadors de superilles en línia.
    • S'ha afegit un nou mòdul mapeador de dispositius "dm-pols", que permet simular l'aparició de blocs dolents al suport o errors en llegir des del disc. El mòdul permet simplificar la depuració i prova d'aplicacions i diversos sistemes d'emmagatzematge davant possibles errors;
    • Portat a terme Optimitzacions de rendiment importants per al planificador d'E/S BFQ. En condicions d'alta càrrega d'E/S, optimitzacions realitzades permetre Redueix el temps d'operacions com ara llançar aplicacions fins a un 80%.
    • S'han afegit una sèrie de trucades al sistema per muntar sistemes de fitxers: fsopen(), arbre_obri(), fspick(), fsmount(), fsconfig() и move_mount(). Aquestes trucades al sistema us permeten processar per separat diferents etapes de muntatge (processar el superbloc, obtenir informació sobre el sistema de fitxers, muntar, adjuntar al punt de muntatge), que anteriorment es feien mitjançant la crida al sistema mount() general. Les trucades separades ofereixen la possibilitat de realitzar escenaris de muntatge més complexos i realitzar operacions separades, com ara reconfigurar el superbloc, habilitar opcions, canviar el punt de muntatge i passar a un espai de noms diferent. A més, el processament separat us permet determinar amb precisió els motius de la sortida dels codis d'error i establir diverses fonts per a sistemes de fitxers multicapa, com ara superposicions;
    • S'ha afegit una nova operació IORING_OP_SYNC_FILE_RANGE a la interfície per a l'io_uring d'E/S asíncrona, que realitza accions equivalents a una trucada al sistema rang_de_fitxers de sincronització(), i també va implementar la possibilitat de registrar eventfd amb io_uring i rebre notificacions sobre la finalització de les operacions;
    • Per al sistema de fitxers CIFS, s'ha afegit el FIEMAP ioctl, proporcionant un mapa d'extensió eficient, així com suport per als modes SEEK_DATA i SEEK_HOLE;
    • Al subsistema FUSE proposat API per gestionar la memòria cau de dades;
    • Btrfs ha optimitzat la implementació de qgroups i ha millorat la velocitat d'execució de fsync per a fitxers amb diversos enllaços durs. S'ha millorat el codi de verificació de la integritat de les dades, que ara té en compte possibles danys a la informació de la memòria RAM abans d'esborrar les dades al disc;
    • CEPH va afegir suport per exportar instantànies mitjançant NFS;
    • S'ha millorat la implementació del muntatge de NFSv4 en mode "soft" (si es produeix un error en accedir al servidor en mode "soft", una crida a retorna immediatament un codi d'error i en mode "hard" no es dóna control fins al FS. la disponibilitat o el temps d'espera es restaura). La nova versió proporciona una gestió més precisa del temps d'espera, una recuperació més ràpida de l'error i una nova opció de muntatge "més suau" que us permet canviar el codi d'error (ETIMEDOUT) que es retorna quan es produeix un temps d'espera;
    • L'API nfsdcld, dissenyada per fer un seguiment de l'estat dels clients NFS, permet al servidor NFS fer un seguiment correcte de l'estat del client quan es reinicia. Per tant, el dimoni nfsdcld ara pot actuar com a controlador nfsdcltrack;
    • Per a AFS afegit emulació de bloquejos d'interval de bytes als fitxers (Bloqueig de rang de bytes);
  • Virtualització i seguretat
    • S'ha treballat per eliminar llocs del nucli que permeten l'execució de codi des d'àrees de memòria reflectides escrivibles, la qual cosa permet bloquejar possibles forats que es podrien explotar durant un atac;
    • S'ha afegit un nou paràmetre de línia d'ordres del nucli "mitigations=", que proporciona una forma simplificada de controlar l'habilitació de determinades tècniques per protegir-se de les vulnerabilitats associades a l'execució especulativa d'instruccions a la CPU. Passar "mitigations=off" desactiva tots els mètodes existents, i el mode predeterminat "mitigations=auto" activa la protecció però no afecta l'ús de Hyper Threading. El mode "mitigations=auto,nosmt" també desactiva Hyper Threading si el mètode de protecció ho requereix.
    • Afegit suport per a la signatura digital electrònica segons GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3), desenvolupat per Vitaly Chikunov de Basalt SPO. S'ha afegit suport per a AES128-CCM a la implementació nativa de TLS. S'ha afegit suport per als algorismes AEAD al mòdul crypto_simd;
    • A Kconfig afegit una secció separada d'"enduriment del nucli" amb opcions per millorar la protecció del nucli. Actualment, la nova secció només conté la configuració per habilitar els connectors de millora de la comprovació de GCC;
    • El codi del nucli és gairebé lliurat a partir d'instruccions de cas sense trencament a switch (sense retorn o interrupció després de cada bloc de cas). Queda per solucionar 32 dels 2311 casos d'aquest ús de l'interruptor, després dels quals serà possible utilitzar el mode "-Wimplicit-fallthrough" quan es construeix el nucli;
    • Per a l'arquitectura PowerPC, s'ha implementat suport per a mecanismes de maquinari per limitar els camins d'accés no desitjats al nucli a les dades de l'espai d'usuari;
    • S'ha afegit un codi de bloqueig atacs Classe MDS (Microarchitectural Data Sampling) en processadors Intel. Podeu comprovar si un sistema és vulnerable a vulnerabilitats mitjançant la variable SysFS "/sys/devices/system/cpu/vulnerabilities/mds". Disponible dos modes de protecció: complet, que requereix un microcodi actualitzat, i bypass, que no garanteix completament la neteja dels buffers de la CPU quan el control es transfereix a l'espai de l'usuari o al sistema convidat. Per controlar els modes de protecció, s'ha afegit el paràmetre "mds=" al nucli, que pot prendre els valors "full", "full,nosmt" (+ desactiva Hyper-Threads) i "off";
    • Als sistemes x86-64, s'ha afegit la protecció de "página de guarda de la pila" per a IRQ, mecanismes de depuració i controladors d'excepcions, l'essència dels quals és la substitució de pàgines de memòria al límit amb la pila, l'accés que condueix a la generació d'un excepció (error de pàgina);
    • S'ha afegit la configuració de sysctl vm.unprivileged_userfaultfd, que controla la capacitat dels processos sense privilegis d'utilitzar la crida al sistema userfaultfd();
  • Subsistema de xarxa
    • Afegit Compatibilitat de passarel·la IPv6 per a rutes IPv4. Per exemple, ara podeu especificar regles d'encaminament com "ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0";
    • Per a ICMPv6, les trucades ioctl icmp_echo_ignore_anycast i icmp_echo_ignore_multicast s'implementen per ignorar ICMP ECHO per anycast i
      adreces multicast. Afegit la capacitat de limitar la intensitat del processament de paquets ICMPv6;

    • Per al protocol de malla BATMAN (Better Approach To Mobile Adhoc Networking), que permet la creació de xarxes descentralitzades en les quals cada node està connectat a través de nodes veïns, afegit suport per a la difusió de multicast a unicast, així com la capacitat de controlar mitjançant sysfs;
    • En ethtool afegit un nou paràmetre Fast Link Down, que us permet reduir el temps que triga a rebre informació sobre un esdeveniment d'enllaç per 1000BaseT (en condicions normals el retard és de fins a 750 ms);
    • Va aparèixer oportunitat enllaçar túnels Foo-Over-UDP a una adreça específica, interfície de xarxa o sòcol (anteriorment l'enllaç només es feia amb una màscara comuna);
    • A la pila sense fil assegurat possibilitat d'implementar controladors
      OWE (Opportunistic Wireless Encryption) a l'espai d'usuari;

    • A Netfilter, s'ha afegit suport per a la família d'adreces inet a les cadenes nat (per exemple, ara podeu utilitzar una regla de traducció per processar ipv4 i ipv6, sense separar les regles per a ipv4 i ipv6);
    • A netlink afegit el règim estricte per a una verificació estricta de la correcció de tots els missatges i atributs, en què no es permet superar la mida esperada dels atributs i es prohibeix afegir dades addicionals al final dels missatges;
  • Serveis de memòria i sistema
    • El senyalador CLONE_PIDFD s'ha afegit a la crida del sistema clone(), quan s'especifica, el descriptor de fitxer "pidfd" identificat amb el procés fill creat es retorna al procés pare. Aquest descriptor de fitxer, per exemple, es pot utilitzar per enviar senyals sense por de trobar-se en una condició de carrera (immediatament després d'enviar el senyal, el PID objectiu es pot alliberar a causa de la terminació del procés i ocupat per un altre procés);
    • Per a la segona versió de cgroups, s'ha afegit la funcionalitat del controlador del congelador, amb la qual podeu deixar de treballar en un cgroup i alliberar temporalment alguns recursos (CPU, E/S i fins i tot memòria) per realitzar altres tasques. La gestió es fa mitjançant els fitxers de control cgroup.freeze i cgroup.events a l'arbre cgroup. L'entrada 1 de cgroup.freeze congela els processos del cgroup actual i de tots els grups secundaris. Com que la congelació triga un temps, es proporciona un fitxer cgroup.events addicional a través del qual podeu esbrinar la finalització de l'operació;
    • Assegurat exportació d'atributs de memòria connectats a cada node en sysfs, que permet determinar des de l'espai d'usuari la naturalesa del processament dels bancs de memòria en sistemes amb memòria heterogènia;
    • S'ha millorat el subsistema PSI (Pressure Stall Information), que permet analitzar informació sobre el temps d'espera per rebre diversos recursos (CPU, memòria, E/S) per a determinades tasques o conjunts de processos en un grup c. Amb PSI, els gestors d'espai d'usuari poden estimar amb més precisió el nivell de càrrega del sistema i els patrons de desacceleració en comparació amb la mitjana de càrrega. La nova versió ofereix suport per establir llindars de sensibilitat i la possibilitat d'utilitzar la trucada poll() per rebre una notificació que els llindars establerts s'han activat durant un període de temps determinat. Aquesta característica permet a Android controlar l'escassetat de memòria des d'una etapa inicial, identificar l'origen dels problemes i finalitzar aplicacions sense importància sense causar problemes que siguin perceptibles per l'usuari. Durant les proves d'estrès, les eines de monitorització del consum de memòria basades en PSI van demostrar 10 vegades menys falsos positius en comparació amb les estadístiques de vmpressure;
    • S'ha optimitzat el codi per comprovar programes BPF, que permet comprovar fins a 20 vegades més ràpid per a programes grans. L'optimització va permetre augmentar el límit de la mida dels programes BPF de 4096 a un milió d'instruccions;
    • Per als programes BPF concedit la possibilitat d'accedir a dades globals, que permet definir variables i constants globals als programes;
    • Afegit API, que permet controlar els canvis en els paràmetres sysctl dels programes BPF;
    • Per a l'arquitectura MIPS32, s'ha implementat un compilador JIT per a la màquina virtual eBPF;
    • Per a l'arquitectura PowerPC de 32 bits, s'ha afegit suport per a l'eina de depuració KASan (desinfectador d'adreces del nucli), que ajuda a identificar errors quan es treballa amb memòria;
    • Als sistemes x86-64, s'ha eliminat la restricció de col·locar abocaments d'estat durant una fallada del nucli (crash-dump) a les àrees de memòria superiors a 896 MB;
    • Per a l'arquitectura s390, s'implementa el suport per a l'aleatorització de l'espai d'adreces del nucli (KASLR) i la capacitat de verificar signatures digitals quan es carreguen el nucli mitjançant kexec_file_load() ;
    • Per a l'arquitectura PA-RISC, s'ha afegit suport per al depurador del nucli (KGDB), marques de salt i ksondes;
  • Оборудование
    • Conductor inclòs Lima per a la GPU Mali 400/450, utilitzada en molts xips antics basats en l'arquitectura ARM. Per a les GPU de Mali més noves, s'ha afegit el controlador Panfrost, que admet xips basats en microarquitectures Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) i Bifrost (Mali G3x, G5x, G7x);
    • S'ha afegit suport per a dispositius d'àudio que utilitzen firmware obert So Open Firmware (SOF). Malgrat la disponibilitat de controladors oberts, el codi del microprogramari per als xips de so encara es va mantenir tancat i es va subministrar en forma binària. El projecte Sound Open Firmware va ser desenvolupat per Intel per crear microprogramari obert per a xips DSP relacionats amb el processament d'àudio (Google més tard també es va unir al desenvolupament). Actualment, el projecte ja ha preparat el descobriment de firmware per a xips de so de les plataformes Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake i IceLake;
    • El controlador Intel DRM (i915) afegeix suport per a xips
      Elkhartlake (Gen11). S'han afegit ID PCI per als xips Comet Lake (Gen9). S'ha estabilitzat el suport per als xips Icelake, per als quals també s'han afegit identificadors de dispositiu PCI addicionals.
      Encès
      mode de canvi asíncron entre dos buffers a la memòria de vídeo (async flip) quan es realitzen operacions d'escriptura mitjançant mmio, que va augmentar significativament el rendiment d'algunes aplicacions 3D (per exemple, el rendiment a la prova 3DMark Ice Storm va augmentar entre un 300 i un 400%). Suport tecnològic afegit HDCP2.2 (Protecció de contingut digital d'amplada de banda alta) per xifrar senyals de vídeo transmesos mitjançant HDMI;

    • El controlador amdgpu per a la GPU Vega20 afegit suport per a RAS (Reliability, Availability, Serviceability) i suport experimental per al subsistema SMU 11, que va substituir la tecnologia Powerplay. Per a GPU Vega12 afegit suport per al mode BACO (Bus Active, Chip Off). S'ha afegit suport inicial per a XGMI, un bus d'alta velocitat (PCIe 4.0) per a la interconnexió de GPU. S'han afegit identificadors que falten per a targetes basades en la GPU Polaris10 al controlador amdkfd;
    • El controlador Nouveau ha afegit suport per a plaques basades en el chipset NVIDIA Turing 117 (TU117, utilitzat a la GeForce GTX 1650). EN
      kconfig afegit configuració per desactivar les funcions obsoletes que ja no s'utilitzen en les versions actuals de libdrm;

    • S'ha afegit suport per a objectes de sincronització de la "línia de temps" a l'API DRM i al controlador amdgpu, la qual cosa us permet prescindir del bloqueig clàssic.
    • El controlador de vboxvideo per a la GPU virtual VirtualBox s'ha mogut de la branca de posada en escena a l'estructura principal;
    • S'ha afegit un controlador de velocitat per al xip GFX SoC ASPEED;
    • S'ha afegit suport per a ARM SoC i Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, ,Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi) ) plaques RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510,
      ST Micro (stm32mp157a, stm32mp157c), NXP (
      Eckelmann ci4x10 (i.MX6DL),

      i.MX8MM EVK (i.MX8MM),

      ZII i.MX7 RPU2 (i.MX7),

      ZII SPB4 (VF610),

      Zii Ultra (i.MX8M),

      TQ TQMa7S (i.MX7Solo),

      TQ TQMa7D (i.MX7Dual),

      Kobo Aura (i.MX50),

      Menlosystems M53 (i.MX53)), NVIDIA Jetson Nano (Tegra T210).

Paral·lelament, la Fundació Llatinoamericana de Programari Lliure format
вариант nucli completament lliure 5.2 - Linux-libre 5.2-gnu, eliminada dels elements de microprogramari i controladors que contenen components o seccions de codi no lliures, l'abast dels quals està limitat pel fabricant. La nova versió inclou la càrrega de fitxers
So Open Firmware. La càrrega de blobs als controladors està desactivada
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp i ucsi_ccg. S'ha actualitzat el codi de neteja de blob als controladors i subsistemes ixp4xx, imx-sdma, amdgpu, nouveau i goya, així com a la documentació del microcodi. S'ha aturat la neteja de taques al controlador r8822be a causa de la seva eliminació.

Font: opennet.ru

Afegeix comentari