Vue lecture

Apple ferme la porte à la restauration de vieux iPhone et iPad

Quand iOS ne répond plus
Apple ferme la porte à la restauration de vieux iPhone et iPad

Apple a cessé de signer le firmware du modem associé à plusieurs vieilles versions d’iOS, empêchant ainsi la restauration logicielle d’anciens iPhone et iPad cellulaires. Les appareils en question restent utilisables, même si on doute que beaucoup soient encore en circulation aujourd’hui. On parle en effet de modèles sortis il y a une quinzaine d’années.

Le changement est plus limité qu’un arrêt classique de signature, une procédure de validation confiée aux serveurs d’Apple au moment de l’installation ou de la restauration. Quand on restaure un iPhone ou un iPad, l’appareil contacte le constructeur pour vérifier que la version du système d’exploitation et certains composants (comme le firmware du modem) sont bien autorisés pour installation. Si Apple ne signe plus cette version ou un composant logiciel, la restauration est bloquée. Il n’est plus possible non plus de procéder à une installation propre de ces OS.

Une liste qui ne rajeunira personne

Apple ne publie pas de liste officielle des version d’iOS signées ou non signées. Il est cependant possible d’obtenir cette information par des voies détournées, ce qui permet à MacRumors de fournir la liste des appareils et des systèmes d’exploitation concernés.

Il s’agit de l’iPhone 4 CDMA (vendu par Verizon en 2011), sur lequel il n’est plus possible de restaurer l’image système IPSW iOS 7.1.2 depuis un Mac. L’iPhone 4S est lui aussi privé de restauration avec les versions « over the air » (OTA) d’iOS 6.1.3 et 8.4.1, ainsi qu’avec les IPSW iOS 9.3.5 et 9.3.6. C’est également le cas de l’iPhone 5 (iOS 8.4.1 en OTA, iOS 10.3.3/iOS 10.3.4 en IPSW) et de l’iPhone 5c (iOS 10.3.3 IPSW).

Du côté des iPad, seuls les modèles cellulaires sont touchés. Cela concerne l’iPad 2 avec iOS 6.1.3/8.4.1 OTA, ainsi qu’iOS 9.3.5/9.3.6 IPSW ; l’iPad 3 (iOS 8.4.1 OTA et iOS 9.3.5/9.3.6 IPSW) ; l’iPad 4e génération (iOS 8.4.1 OTA, iOS 10.3.3/10.3.4 IPSW) ; l’iPad mini (iOS 8.4.1 OTA, iOS 9.3.5/9.3.6 IPSW). Apple n’a commencé à décliner iOS dans une version spécifique à l’iPad (iPadOS) qu’à partir de 2019 et iPadOS 13.

Une tuile pour les bidouilleurs

Puisque le changement porte sur le baseband, les iPad uniquement Wi-Fi ne sont pas concernés par ce retrait de signature : ils n’ont pas de modem cellulaire, donc pas de firmware baseband à valider.

IPSW, qui signifie simplement « iPhone Software », est l’image système utilisée pour restaurer ou mettre à jour un appareil depuis un Mac, un PC, iTunes, ou encore l’app Appareils Apple. On peut télécharger les différentes IPSW pour iPhone et iPad sur le site référence en la matière, IPSW.me, qui ne reflète cependant pas encore ces changements de signature.

Apple fournit aussi des mises à jour OTA signées qui s’installent directement sur l’appareil. Le constructeur pouvait encore signer certaines versions d’iOS quand elles servaient d’étape intermédiaire. C’était le cas d’iOS 8.4.1 qui permettait à certains terminaux à faire la transition vers iOS 9. Elle était aussi utilisée comme point de retour pour les restaurations. C’est une porte qui se referme pour les appareils cités.

Au vu de l’ancienneté de ces terminaux et de ces systèmes d’exploitation, l’arrêt de la signature ne sera pas un problème pour la vaste majorité des utilisateurs de produits Apple. Ce d’autant qu’encore une fois, ils restent fonctionnels. Mais il n’y aura aucune solution en cas de problème qui nécessiterait normalement une restauration ou une installation propre d’iOS.

Ce sera un souci pour les collectionneurs et les bidouilleurs qui veulent conserver ou restaurer de vieux appareils dans un état logiciel précis. Les développeurs qui testent encore d’anciennes versions pour s’assurer de la compatibilité de leurs applications seront aussi dans la panade, comme ceux qui se servent encore de ces iPhone et iPad comme machines de secours.

  •  

Apple ferme la porte à la restauration de vieux iPhone et iPad

Quand iOS ne répond plus
Apple ferme la porte à la restauration de vieux iPhone et iPad

Apple a cessé de signer le firmware du modem associé à plusieurs vieilles versions d’iOS, empêchant ainsi la restauration logicielle d’anciens iPhone et iPad cellulaires. Les appareils en question restent utilisables, même si on doute que beaucoup soient encore en circulation aujourd’hui. On parle en effet de modèles sortis il y a une quinzaine d’années.

Le changement est plus limité qu’un arrêt classique de signature, une procédure de validation confiée aux serveurs d’Apple au moment de l’installation ou de la restauration. Quand on restaure un iPhone ou un iPad, l’appareil contacte le constructeur pour vérifier que la version du système d’exploitation et certains composants (comme le firmware du modem) sont bien autorisés pour installation. Si Apple ne signe plus cette version ou un composant logiciel, la restauration est bloquée. Il n’est plus possible non plus de procéder à une installation propre de ces OS.

Une liste qui ne rajeunira personne

Apple ne publie pas de liste officielle des version d’iOS signées ou non signées. Il est cependant possible d’obtenir cette information par des voies détournées, ce qui permet à MacRumors de fournir la liste des appareils et des systèmes d’exploitation concernés.

Il s’agit de l’iPhone 4 CDMA (vendu par Verizon en 2011), sur lequel il n’est plus possible de restaurer l’image système IPSW iOS 7.1.2 depuis un Mac. L’iPhone 4S est lui aussi privé de restauration avec les versions « over the air » (OTA) d’iOS 6.1.3 et 8.4.1, ainsi qu’avec les IPSW iOS 9.3.5 et 9.3.6. C’est également le cas de l’iPhone 5 (iOS 8.4.1 en OTA, iOS 10.3.3/iOS 10.3.4 en IPSW) et de l’iPhone 5c (iOS 10.3.3 IPSW).

Du côté des iPad, seuls les modèles cellulaires sont touchés. Cela concerne l’iPad 2 avec iOS 6.1.3/8.4.1 OTA, ainsi qu’iOS 9.3.5/9.3.6 IPSW ; l’iPad 3 (iOS 8.4.1 OTA et iOS 9.3.5/9.3.6 IPSW) ; l’iPad 4e génération (iOS 8.4.1 OTA, iOS 10.3.3/10.3.4 IPSW) ; l’iPad mini (iOS 8.4.1 OTA, iOS 9.3.5/9.3.6 IPSW). Apple n’a commencé à décliner iOS dans une version spécifique à l’iPad (iPadOS) qu’à partir de 2019 et iPadOS 13.

Une tuile pour les bidouilleurs

Puisque le changement porte sur le baseband, les iPad uniquement Wi-Fi ne sont pas concernés par ce retrait de signature : ils n’ont pas de modem cellulaire, donc pas de firmware baseband à valider.

IPSW, qui signifie simplement « iPhone Software », est l’image système utilisée pour restaurer ou mettre à jour un appareil depuis un Mac, un PC, iTunes, ou encore l’app Appareils Apple. On peut télécharger les différentes IPSW pour iPhone et iPad sur le site référence en la matière, IPSW.me, qui ne reflète cependant pas encore ces changements de signature.

Apple fournit aussi des mises à jour OTA signées qui s’installent directement sur l’appareil. Le constructeur pouvait encore signer certaines versions d’iOS quand elles servaient d’étape intermédiaire. C’était le cas d’iOS 8.4.1 qui permettait à certains terminaux à faire la transition vers iOS 9. Elle était aussi utilisée comme point de retour pour les restaurations. C’est une porte qui se referme pour les appareils cités.

Au vu de l’ancienneté de ces terminaux et de ces systèmes d’exploitation, l’arrêt de la signature ne sera pas un problème pour la vaste majorité des utilisateurs de produits Apple. Ce d’autant qu’encore une fois, ils restent fonctionnels. Mais il n’y aura aucune solution en cas de problème qui nécessiterait normalement une restauration ou une installation propre d’iOS.

Ce sera un souci pour les collectionneurs et les bidouilleurs qui veulent conserver ou restaurer de vieux appareils dans un état logiciel précis. Les développeurs qui testent encore d’anciennes versions pour s’assurer de la compatibilité de leurs applications seront aussi dans la panade, comme ceux qui se servent encore de ces iPhone et iPad comme machines de secours.

  •  

macOS 27 donne un coup de fouet à sa virtualisation

Le macOS dans le macOS dans le macOS
macOS 27 donne un coup de fouet à sa virtualisation

Le prochain macOS, alias Golden Gate, fournira plusieurs améliorations à sa virtualisation. Parmi elles, le très demandé accès aux périphériques USB ou encore les images disque en calques.

macOS expose aujourd’hui deux couches de virtualisation. La couche basse, Hypervisor.framework, donne un accès quasi brut aux extensions de virtualisation matérielle du processeur (VT-x sur Intel, EL2 sur Apple Silicon) sans imposer de modèle de périphériques. Tout éditeur tiers peut choisir de construire une solution de virtualisation basée sur cet hyperviseur.

La couche haute, Virtualization.framework, fournit au contraire un ensemble complet et prêt à l’emploi de périphériques virtuels (disque, réseau, GPU paravirtualisé, etc.), pensé pour des applications qui veulent créer rapidement des VM macOS ou Linux sans réinventer tout le modèle matériel.

C’est sur cette seconde couche que les améliorations ont été annoncées durant une session technique de la dernière WWDC, même si ces informations étaient restées discrètes jusqu’ici. Les annonces autour de l’intelligence artificielle ont largement éclipsé le reste.

Enfin un accès aux périphériques USB

C’est la fonctionnalité la plus demandée par les utilisateurs de machines virtuelles. La prise en charge du stockage externe et d’autres périphériques USB connectés au Mac hôte fonctionne de façon simple : lorsqu’un périphérique compatible est branché pendant qu’une VM tourne, une icône apparaît dans la barre des menus pour autoriser l’affectation à la machine virtuelle. Si cette approbation est donnée, le périphérique devient accessible dans la VM presque immédiatement. Un fonctionnement que l’on retrouve dans de nombreux clients de virtualisation, comme Fusion et Workstation chez VMware ou VirtualBox chez Oracle, et que l’on nomme communément le « passthrough USB ».

Côté API, Apple expose cette fonctionnalité via le framework Accessory Access. Ce dernier permet de faire transiter directement des accessoires USB vers les machines virtuelles et donne à l’utilisateur un contrôle explicite sur les périphériques physiques transmis, comme des disques externes. L’entitlement associé est com.apple.developer.accessory-access.usb. Un entitlement est une paire clé-valeur signée numériquement qui accorde à une application une autorisation spécifique au-delà de ce que permet par défaut la sandbox de macOS ou iOS, comme l’explique Apple dans sa documentation.

Ce fonctionnement répond à un principe de moindre privilège très classique : par défaut, une application sandboxée (confinée) n’a accès qu’à son propre conteneur et ne peut pas, par exemple, lire des fichiers arbitraires sur le disque, ouvrir une connexion réseau brute ou accéder à des périphériques matériels.

Des images disque en calques

Voilà un autre changement important dans macOS 27. Jusqu’à présent, chaque VM reposait sur une image disque unique et autonome, au format brut (raw) ou ASIF (Apple Sparse Image Format, inauguré avec macOS 26). L’introduction de DiskImageKit change la donne car il permet de construire une pile d’images où les écritures vont dans une couche de superposition (overlay) sans modifier la couche de base. Il prend également en charge les images disque brutes.

Comme l’indique Apple, l’architecture distingue plusieurs types de couches : la couche de base peut être dans n’importe quel format pris en charge par DiskImageKit, tandis que les couches supérieures sont toujours au format ASIF et peuvent être soit des couches de cache, soit des couches de superposition. Une couche de cache fait ce qu’est toujours censé faire un cache : améliorer les performances. Dans le cas présent, elles peuvent être mises en place lorsque les couches sous-jacentes résident sur un support lent comme un système de fichiers réseau distant, en stockant une copie des données lues depuis les couches inférieures.

Concrètement, la couche de base contient un socle en lecture seule – comme le volume Système de macOS – qui peut être partagé entre plusieurs VM et stocké sur un support plus lent comme un disque dur. Au-dessus se greffe une couche de superposition en lecture-écriture qui stocke les fichiers additionnels et les modifications apportées aux données de la couche de base. On est clairement dans le fonctionnement général des instantanés (snapshots).

Ainsi, au lieu d’avoir plusieurs gros fichiers de 60 Go, on peut n’avoir qu’une seule base de 50 Go et autant de couches de superposition que nécessaire pour gérer les modifications, comme le pointe notamment MacGeneration. Un fonctionnement plus souple qui peut entrainer des gains conséquents sur le stockage. À noter que sur le site Eclectic Light, certains commentaires soulignent des carences dans l’implémentation actuelle. Par exemple, l’absence de mécanisme pour aplatir (« flatten ») les couches de superposition et les fusionner dans l’image de base.

Du provisionnage automatique pour les invités

Depuis que macOS fournit des capacités de virtualisation, la création du compte administrateur exige de passer manuellement par l’assistant de configuration à chaque nouvelle VM. Mais la nouvelle API VZMacGuestProvisioningOptions permet de définir des identifiants et d’activer des fonctions comme la connexion automatique et SSH dès le premier démarrage.

Le mécanisme technique consiste à construire un objet VZMacGuestProvisioningOptions, à l’attacher à un objet VZMacOSVirtualMachineStartOptions via sa propriété de « guest provisioning » (provisionnage d’invité), puis à démarrer la VM avec ces options. Au premier démarrage, ces paramètres sont automatiquement transmis à l’assistant de configuration, qui crée l’utilisateur avec les identifiants indiqués et active la connexion automatique et l’accès distant si demandé. D’après la documentation d’Apple, cela inclut le nom complet, le nom court, le mot de passe, l’activation ou non de la connexion automatique au démarrage, et l’activation de SSH. Cela ne fonctionne toutefois qu’au premier démarrage de la machine virtuelle.

Autres capacités

Plusieurs autres apports sont mentionnés dans la vidéo dédiée. Par exemple, il est possible désormais de configurer des topologies réseau complexes en intégrant le framework vmnet à Virtualization, pour définir précisément comment plusieurs machines virtuelles interagissent entre elles et avec l’hôte, avec également de la redirection de port.

On note aussi le framework Virtualization, qui permet d’implémenter ses propres périphériques Virtio (protocole standard de l’industrie pour la paravirtualisation), autorisant une communication personnalisée entre l’application hôte et les VM Linux. L’ajout devrait se montrer particulièrement utile pour les scénarios sensibles aux performances, nécessitant une communication à faible latence et fort débit, via la nouvelle classe VZCustomVirtioDevice. Ce point est abordé dans la dernière partie de la vidéo d’Apple.

Ces nouveautés requièrent la préversion de macOS 27 pour les tester. Le système n’est pour l’instant disponible qu’en bêta pour les développeurs (la troisième est sortie ce 6 juillet), mais la bêta publique est prévue pour ce mois-ci, probablement aux alentours du 20 juillet, en même temps que la bêta 4 pour les développeurs.

  •  

macOS 27 donne un coup de fouet à sa virtualisation

Le macOS dans le macOS dans le macOS
macOS 27 donne un coup de fouet à sa virtualisation

Le prochain macOS, alias Golden Gate, fournira plusieurs améliorations à sa virtualisation. Parmi elles, le très demandé accès aux périphériques USB ou encore les images disque en calques.

macOS expose aujourd’hui deux couches de virtualisation. La couche basse, Hypervisor.framework, donne un accès quasi brut aux extensions de virtualisation matérielle du processeur (VT-x sur Intel, EL2 sur Apple Silicon) sans imposer de modèle de périphériques. Tout éditeur tiers peut choisir de construire une solution de virtualisation basée sur cet hyperviseur.

La couche haute, Virtualization.framework, fournit au contraire un ensemble complet et prêt à l’emploi de périphériques virtuels (disque, réseau, GPU paravirtualisé, etc.), pensé pour des applications qui veulent créer rapidement des VM macOS ou Linux sans réinventer tout le modèle matériel.

C’est sur cette seconde couche que les améliorations ont été annoncées durant une session technique de la dernière WWDC, même si ces informations étaient restées discrètes jusqu’ici. Les annonces autour de l’intelligence artificielle ont largement éclipsé le reste.

Enfin un accès aux périphériques USB

C’est la fonctionnalité la plus demandée par les utilisateurs de machines virtuelles. La prise en charge du stockage externe et d’autres périphériques USB connectés au Mac hôte fonctionne de façon simple : lorsqu’un périphérique compatible est branché pendant qu’une VM tourne, une icône apparaît dans la barre des menus pour autoriser l’affectation à la machine virtuelle. Si cette approbation est donnée, le périphérique devient accessible dans la VM presque immédiatement. Un fonctionnement que l’on retrouve dans de nombreux clients de virtualisation, comme Fusion et Workstation chez VMware ou VirtualBox chez Oracle, et que l’on nomme communément le « passthrough USB ».

Côté API, Apple expose cette fonctionnalité via le framework Accessory Access. Ce dernier permet de faire transiter directement des accessoires USB vers les machines virtuelles et donne à l’utilisateur un contrôle explicite sur les périphériques physiques transmis, comme des disques externes. L’entitlement associé est com.apple.developer.accessory-access.usb. Un entitlement est une paire clé-valeur signée numériquement qui accorde à une application une autorisation spécifique au-delà de ce que permet par défaut la sandbox de macOS ou iOS, comme l’explique Apple dans sa documentation.

Ce fonctionnement répond à un principe de moindre privilège très classique : par défaut, une application sandboxée (confinée) n’a accès qu’à son propre conteneur et ne peut pas, par exemple, lire des fichiers arbitraires sur le disque, ouvrir une connexion réseau brute ou accéder à des périphériques matériels.

Des images disque en calques

Voilà un autre changement important dans macOS 27. Jusqu’à présent, chaque VM reposait sur une image disque unique et autonome, au format brut (raw) ou ASIF (Apple Sparse Image Format, inauguré avec macOS 26). L’introduction de DiskImageKit change la donne car il permet de construire une pile d’images où les écritures vont dans une couche de superposition (overlay) sans modifier la couche de base. Il prend également en charge les images disque brutes.

Comme l’indique Apple, l’architecture distingue plusieurs types de couches : la couche de base peut être dans n’importe quel format pris en charge par DiskImageKit, tandis que les couches supérieures sont toujours au format ASIF et peuvent être soit des couches de cache, soit des couches de superposition. Une couche de cache fait ce qu’est toujours censé faire un cache : améliorer les performances. Dans le cas présent, elles peuvent être mises en place lorsque les couches sous-jacentes résident sur un support lent comme un système de fichiers réseau distant, en stockant une copie des données lues depuis les couches inférieures.

Concrètement, la couche de base contient un socle en lecture seule – comme le volume Système de macOS – qui peut être partagé entre plusieurs VM et stocké sur un support plus lent comme un disque dur. Au-dessus se greffe une couche de superposition en lecture-écriture qui stocke les fichiers additionnels et les modifications apportées aux données de la couche de base. On est clairement dans le fonctionnement général des instantanés (snapshots).

Ainsi, au lieu d’avoir plusieurs gros fichiers de 60 Go, on peut n’avoir qu’une seule base de 50 Go et autant de couches de superposition que nécessaire pour gérer les modifications, comme le pointe notamment MacGeneration. Un fonctionnement plus souple qui peut entrainer des gains conséquents sur le stockage. À noter que sur le site Eclectic Light, certains commentaires soulignent des carences dans l’implémentation actuelle. Par exemple, l’absence de mécanisme pour aplatir (« flatten ») les couches de superposition et les fusionner dans l’image de base.

Du provisionnage automatique pour les invités

Depuis que macOS fournit des capacités de virtualisation, la création du compte administrateur exige de passer manuellement par l’assistant de configuration à chaque nouvelle VM. Mais la nouvelle API VZMacGuestProvisioningOptions permet de définir des identifiants et d’activer des fonctions comme la connexion automatique et SSH dès le premier démarrage.

Le mécanisme technique consiste à construire un objet VZMacGuestProvisioningOptions, à l’attacher à un objet VZMacOSVirtualMachineStartOptions via sa propriété de « guest provisioning » (provisionnage d’invité), puis à démarrer la VM avec ces options. Au premier démarrage, ces paramètres sont automatiquement transmis à l’assistant de configuration, qui crée l’utilisateur avec les identifiants indiqués et active la connexion automatique et l’accès distant si demandé. D’après la documentation d’Apple, cela inclut le nom complet, le nom court, le mot de passe, l’activation ou non de la connexion automatique au démarrage, et l’activation de SSH. Cela ne fonctionne toutefois qu’au premier démarrage de la machine virtuelle.

Autres capacités

Plusieurs autres apports sont mentionnés dans la vidéo dédiée. Par exemple, il est possible désormais de configurer des topologies réseau complexes en intégrant le framework vmnet à Virtualization, pour définir précisément comment plusieurs machines virtuelles interagissent entre elles et avec l’hôte, avec également de la redirection de port.

On note aussi le framework Virtualization, qui permet d’implémenter ses propres périphériques Virtio (protocole standard de l’industrie pour la paravirtualisation), autorisant une communication personnalisée entre l’application hôte et les VM Linux. L’ajout devrait se montrer particulièrement utile pour les scénarios sensibles aux performances, nécessitant une communication à faible latence et fort débit, via la nouvelle classe VZCustomVirtioDevice. Ce point est abordé dans la dernière partie de la vidéo d’Apple.

Ces nouveautés requièrent la préversion de macOS 27 pour les tester. Le système n’est pour l’instant disponible qu’en bêta pour les développeurs (la troisième est sortie ce 6 juillet), mais la bêta publique est prévue pour ce mois-ci, probablement aux alentours du 20 juillet, en même temps que la bêta 4 pour les développeurs.

  •  

Microsoft publie TypeScript 7.0 avec des hausses impressionnantes de performances

Ah oui quand même
Microsoft publie TypeScript 7.0 avec des hausses impressionnantes de performances

La nouvelle mouture de TypeScript est annoncée avec des performances largement revues à la hausse. L’essentiel des nouveautés se concentre sur ces gains, le langage n’apportant rien de vraiment neuf sur les types et la syntaxe.

Ce n’est pas tous les jours que l’on peut annoncer des hausses majeures de performances sur des technologies. Microsoft vient pourtant de lancer la version 7.0 de son langage open source TypeScript, un surensemble de JavaScript sous licence Apache 2.0. Depuis sa sortie, le langage a rencontré un grand succès.

Hop, une division par 10

La plus grosse nouveauté de TypeScript 7.0 est son compilateur. Ce dernier était lui-même compilé en TypeScript/JavaScript jusqu’ici, mais c’est fini : le nouveau est écrit en Go. Le code produit est strictement le même, mais avec une différence de taille : le temps de compilation est en moyenne divisé par 10. En fonction des cas, ce facteur alterne entre 8 et 12, le gain de temps étant dans tous les cas énorme.

Ce gain de performances rejaillit sous de nombreux aspects. La compilation complète bien sûr, en passant de plusieurs dizaines de secondes à quelques secondes, mais aussi une réaction beaucoup plus rapide de tsc –watch, l’accélération de l’analyse des types ou encore une consommation de mémoire vive revue à la baisse, le plus souvent entre 5 et 25 % selon les cas.

Source : Microsoft

Microsoft insiste également sur la solidité de cette version, car elle a bénéficié d’une année de tests. Ces derniers ont aussi bien lieu avec d’autres équipes de Microsoft (Loop, Office, PowerBI, Teams ou encore Xbox) qu’avec des entreprises tierces : Bloomberg, Canva, Figma, Google, Lattice, Linear, Miro, Notion, Sentry, Slack, Vanta, Vercel, VoidZero et autres. Les retours auraient été unanimes : des gains de temps conséquents et des économies de ressources.

La nouvelle version a en outre des conséquences positives sur Visual Studio Code. Dans un test, Microsoft a pu mesurer que le temps passé à ouvrir un fichier avec une erreur dans Visual Studio Code était réduit à 1,3 seconde, contre 17,5 auparavant, soit une division par 13. L’autocomplétion est aussi plus rapide, la fonction « Go to Definition » est presque instantanée, le renommage va plus vite, les diagnostics apparaissent plus rapidement, etc. Microsoft ajoute que plus les monorepos sont volumineux, plus la différence se sent. Une bonne part de ces améliorations vient d’une parallélisation beaucoup plus importante des instructions.

Une transition « transparente »

On aurait pu s’attendre à de nouvelles fonctions, des types et autres syntaxes, mais cette version 7.0 ne change pratiquement rien de ce côté. La plus grosse partie du travail s’étant concentrée sur les performances, TypeScript 7 reste donc compatible avec la version 6. La migration se veut la plus transparente possible, la nouvelle version n’étant livrée avec aucune API. Celle-ci arrivera avec TypeScript 7.1 mais, en attendant, Microsoft a fait le choix « de garantir que TypeScript puisse être exécuté parallèlement à TypeScript 6.0 pour les utilitaires nécessitant encore un certain accès programmatique au compilateur (comme typescript-eslint) ».

L’éditeur ajoute que dans le cadre de cette transition, un paquet de compatibilité a été publié. Il fournit un exécutable nommé pour que les développeurs puissent installer TypeScript 7.0 (qui publie son propre binaire) côte à côte, sans conflit de nommage. « Le nouveau package réexporte également l’API TypeScript 6.0, afin que vous puissiez l’utiliser pour TypeScript 7, tandis que d’autres outils peuvent continuer à s’appuyer sur la version 6.0 », précise Microsoft.

  •  

Microsoft publie TypeScript 7.0 avec des hausses impressionnantes de performances

Ah oui quand même
Microsoft publie TypeScript 7.0 avec des hausses impressionnantes de performances

La nouvelle mouture de TypeScript est annoncée avec des performances largement revues à la hausse. L’essentiel des nouveautés se concentre sur ces gains, le langage n’apportant rien de vraiment neuf sur les types et la syntaxe.

Ce n’est pas tous les jours que l’on peut annoncer des hausses majeures de performances sur des technologies. Microsoft vient pourtant de lancer la version 7.0 de son langage open source TypeScript, un surensemble de JavaScript sous licence Apache 2.0. Depuis sa sortie, le langage a rencontré un grand succès.

Hop, une division par 10

La plus grosse nouveauté de TypeScript 7.0 est son compilateur. Ce dernier était lui-même compilé en TypeScript/JavaScript jusqu’ici, mais c’est fini : le nouveau est écrit en Go. Le code produit est strictement le même, mais avec une différence de taille : le temps de compilation est en moyenne divisé par 10. En fonction des cas, ce facteur alterne entre 8 et 12, le gain de temps étant dans tous les cas énorme.

Ce gain de performances rejaillit sous de nombreux aspects. La compilation complète bien sûr, en passant de plusieurs dizaines de secondes à quelques secondes, mais aussi une réaction beaucoup plus rapide de tsc –watch, l’accélération de l’analyse des types ou encore une consommation de mémoire vive revue à la baisse, le plus souvent entre 5 et 25 % selon les cas.

Source : Microsoft

Microsoft insiste également sur la solidité de cette version, car elle a bénéficié d’une année de tests. Ces derniers ont aussi bien lieu avec d’autres équipes de Microsoft (Loop, Office, PowerBI, Teams ou encore Xbox) qu’avec des entreprises tierces : Bloomberg, Canva, Figma, Google, Lattice, Linear, Miro, Notion, Sentry, Slack, Vanta, Vercel, VoidZero et autres. Les retours auraient été unanimes : des gains de temps conséquents et des économies de ressources.

La nouvelle version a en outre des conséquences positives sur Visual Studio Code. Dans un test, Microsoft a pu mesurer que le temps passé à ouvrir un fichier avec une erreur dans Visual Studio Code était réduit à 1,3 seconde, contre 17,5 auparavant, soit une division par 13. L’autocomplétion est aussi plus rapide, la fonction « Go to Definition » est presque instantanée, le renommage va plus vite, les diagnostics apparaissent plus rapidement, etc. Microsoft ajoute que plus les monorepos sont volumineux, plus la différence se sent. Une bonne part de ces améliorations vient d’une parallélisation beaucoup plus importante des instructions.

Une transition « transparente »

On aurait pu s’attendre à de nouvelles fonctions, des types et autres syntaxes, mais cette version 7.0 ne change pratiquement rien de ce côté. La plus grosse partie du travail s’étant concentrée sur les performances, TypeScript 7 reste donc compatible avec la version 6. La migration se veut la plus transparente possible, la nouvelle version n’étant livrée avec aucune API. Celle-ci arrivera avec TypeScript 7.1 mais, en attendant, Microsoft a fait le choix « de garantir que TypeScript puisse être exécuté parallèlement à TypeScript 6.0 pour les utilitaires nécessitant encore un certain accès programmatique au compilateur (comme typescript-eslint) ».

L’éditeur ajoute que dans le cadre de cette transition, un paquet de compatibilité a été publié. Il fournit un exécutable nommé pour que les développeurs puissent installer TypeScript 7.0 (qui publie son propre binaire) côte à côte, sans conflit de nommage. « Le nouveau package réexporte également l’API TypeScript 6.0, afin que vous puissiez l’utiliser pour TypeScript 7, tandis que d’autres outils peuvent continuer à s’appuyer sur la version 6.0 », précise Microsoft.

  •  

Linux : la méfiance autour d’Ubuntu et de ses Snap reste vive

Maître en sa demeure
Linux : la méfiance autour d’Ubuntu et de ses Snap reste vive

L’équipe de développement de Tuxedo OS a annoncé qu’elle abandonnait Ubuntu pour Debian comme base pour sa propre distribution. Parmi les raisons citées, des difficultés à adapter le code vieillissant (LTS), une feuille de route IA jugée « opaque » et surtout l’omniprésence des paquets Snap. Ce n’est pas la première fois que le système de Canonical crispe la scène de l’open source.

Tuxedo est une société allemande commercialisant des ordinateurs. À l’instar de System76 avec Pop!_OS aux États-Unis, l’entreprise a fini par créer sa propre distribution, baptisée Tuxedo OS. Elle est basée sur la branche LTS (Long Term Support) d’Ubuntu, à laquelle elle apporte des personnalisations, notamment pour s’assurer que le matériel de ses ordinateurs est correctement pris en charge. Comme pour System76 toutefois, la distribution est librement téléchargeable depuis le site officiel.

Et voilà que dans un communiqué daté du 7 juillet, l’entreprise annonce qu’elle n’utilisera plus Ubuntu LTS. Plutôt que de passer sur la branche classique de la distribution de Canonical, Tuxedo prend un virage plus radical : elle se basera désormais sur Debian Testing, avec une bêta prévue pour « bientôt ». Les raisons données et le choix dans la bascule ont provoqué de nouveaux débats.

Les raisons de Tuxedo

Dans son billet officiel, l’éditeur évoque son modèle hybride : base Ubuntu LTS stable et composants comme le noyau, les navigateurs, la pile graphique et KDE Plasma mis à jour en continu. Or, cette approche devient intenable à mesure qu’une version LTS vieillit : le rétroportage de logiciels modernes devient de plus en plus difficile, les dépendances plus récentes étant souvent indisponibles ou fournies uniquement dans des versions obsolètes. Tuxedo OS suit un modèle de publication hybride qui combine, selon l’entreprise, les points forts des versions continues et des versions ponctuelles.

La société allemande cite cependant trois autres facteurs, propres à la stratégie de Canonical. D’une part, la difficulté croissante à tenir le système de paquets Snap à l’écart du système, Canonical distribuant de plus en plus d’applications au format Snap exclusivement, tout en reléguant progressivement les paquets DEB traditionnels au second plan.

D’autre part, la feuille de route IA annoncée par Mark Shuttleworth lors du dernier Ubuntu Summit, dont la mise en œuvre concrète reste insuffisamment transparente. Enfin, des mises à jour de sécurité qui, selon Tuxedo, mettent parfois plus de temps que nécessaire à atteindre les utilisateurs.

L’entreprise a donc fait le choix de Debian dans sa branche Testing en continu. Ce qui veut dire qu’à la sortie de la version stable de Debian 14, Tuxedo OS restera sur la branche testing, Debian ayant une approche conservatrice des paquets. Outre la modernisation inhérente aux paquets plus récents, cette bascule permet à Tuxedo OS de récupérer des fonctions qui lui faisaient défaut selon elle, notamment le système de fichiers Btrfs – qui sera utilisé par défaut – et Snapper. L’un et l’autre permettront la création automatique d’instantanés (snapshots) et la restauration simplifiée du système. Ces fonctions ne seront disponibles qu’avec Btrfs.

Tuxedo indique dans son billet que le passage de la version actuelle à la prochaine basée sur Debian ne sera pas possible « pour des raisons techniques ». Elle précise cependant qu’un guide complet de migration sera fourni « bien avant la publication finale » du nouveau système, pour expliquer notamment comment transférer les données personnelles. En revanche, un chemin de migration existera vers Kubuntu 26.04. Lui aussi sera publié plus tard.

Les paquets Snap encore dans la ligne de mire

Hors de la stratégie propre à Canonical sur les versions LTS, les critiques de Tuxedo tournent essentiellement sur les paquets Snap et la feuille de route sur l’IA. Même si Mark Shuttleworth, CEO de Canonical, n’a pas été « assez clair » sur cette feuille lors de la conférence Ubuntu Summit, plusieurs points ont été éclaircis depuis. On sait par exemple que Canonical utilisera des modèles locaux pour renforcer certaines capacités « implicites », comme l’amélioration de l’image de la webcam ou la normalisation du son pour le microphone. L’accessibilité sera également aux premières loges, avec notamment une reconnaissance vocale pour tous les champs de saisie présents à l’écran.


Il reste 62% de l'article à découvrir.
Vous devez être abonné•e pour lire la suite de cet article.
Déjà abonné•e ? Générez une clé RSS dans votre profil.

  •  

☕️ Vivaldi 8.1 corrige une longue liste de bugs



Six semaines après la sortie de Vivaldi 8.0 et de sa nouvelle interface, l’équipe livre une version de maintenance, estampillée 8.1, qui intervient principalement pour corriger les erreurs de jeunesse et optimiser le fonctionnement du navigateur. « Cette année est considérée comme une année à moustiques, nous avons donc amené notre spray », plaisante Jon von Tetzchner, CEO et cofondateur de Vivaldi, dans un billet d’annonce.

Outre sa promesse de design unifié au sein des différents éléments de l’interface, Vivaldi 8.0 introduisait en effet de nombreuses petites nouveautés au niveau de la gestion des onglets et de la capacité à masquer automatiquement des éléments non utilisés.

Vivaldi passe en version 8.1, avec déploiement automatique de la mise à jour – capture d’écran Next

Ces fonctionnalités, prometteuses pour les internautes qui aiment pouvoir paramétrer de façon très poussée leur navigateur, ont toutefois entraîné leur lot de dysfonctionnements, comme en témoigne les copieuses notes de version publiées par l’éditeur.

Vivaldi 8.1 passe pour l’occasion sur la branche 150 de Chromium, ce qui se traduit par la disparition des derniers éléments permettant aux extensions basées sur le Manifest V2 de fonctionner.

L’éditeur en profite pour rappeler aux éventuels déçus qu’il embarque son propre outil de blocage des publicités et des outils de suivi comportemental. « Il n’est pas nécessaire d’installer une extension tierce pour accélérer le chargement des pages web et protéger vos appareils contre l’espionnage malveillant », fait valoir Jon von Tetzchner.

Sous Linux, Vivaldi 8.1 profite également d’une version patchée de FFmpeg pour assurer la prise en charge des codecs propriétaires de type H.264 ou AAC.

  •  

☕️ Vivaldi 8.1 corrige une longue liste de bugs



Six semaines après la sortie de Vivaldi 8.0 et de sa nouvelle interface, l’équipe livre une version de maintenance, estampillée 8.1, qui intervient principalement pour corriger les erreurs de jeunesse et optimiser le fonctionnement du navigateur. « Cette année est considérée comme une année à moustiques, nous avons donc amené notre spray », plaisante Jon von Tetzchner, CEO et cofondateur de Vivaldi, dans un billet d’annonce.

Outre sa promesse de design unifié au sein des différents éléments de l’interface, Vivaldi 8.0 introduisait en effet de nombreuses petites nouveautés au niveau de la gestion des onglets et de la capacité à masquer automatiquement des éléments non utilisés.

Vivaldi passe en version 8.1, avec déploiement automatique de la mise à jour – capture d’écran Next

Ces fonctionnalités, prometteuses pour les internautes qui aiment pouvoir paramétrer de façon très poussée leur navigateur, ont toutefois entraîné leur lot de dysfonctionnements, comme en témoigne les copieuses notes de version publiées par l’éditeur.

Vivaldi 8.1 passe pour l’occasion sur la branche 150 de Chromium, ce qui se traduit par la disparition des derniers éléments permettant aux extensions basées sur le Manifest V2 de fonctionner.

L’éditeur en profite pour rappeler aux éventuels déçus qu’il embarque son propre outil de blocage des publicités et des outils de suivi comportemental. « Il n’est pas nécessaire d’installer une extension tierce pour accélérer le chargement des pages web et protéger vos appareils contre l’espionnage malveillant », fait valoir Jon von Tetzchner.

Sous Linux, Vivaldi 8.1 profite également d’une version patchée de FFmpeg pour assurer la prise en charge des codecs propriétaires de type H.264 ou AAC.

  •  

☕️ DuckDuckGo bloque la pub YouTube



DuckDuckGo se paie un gros coup de pub… en les supprimant de YouTube. La dernière version du navigateur web embarque en effet une nouvelle option permettant de bloquer les réclames sur la plateforme vidéo de Google. Qui doit regarder tout ça d’un œil mauvais.

Depuis 2023, Google mène la lutte contre les bloqueurs de pub. Le mastodonte du web utilise tout l’arsenal possible et imaginable pour forcer les utilisateurs excédés par la réclame à souscrire à un abonnement payant. Mais la vie trouve toujours un chemin : des bidouilles font régulièrement surface pour supprimer les pubs, que Google se fait fort de bloquer.

On verra combien de temps DuckDuckGo tiendra, mais la dernière version du navigateur désactive la publicité sur YouTube, au début d’une vidéo comme au milieu. Cela fonctionne sur Windows, macOS et iOS, avec un réglage activé par défaut. Sur Android, il faut l’activer à la main, mais l’option sera également proposée par défaut dans quelque temps.

DuckDuckGo proposait déjà une option pour regarder des vidéos sans pause publicitaire, via le Duck Player, un lecteur embarqué dans le navigateur. Ce dernier n’a pas disparu, il est simplement complémentaire : en plus de supprimer les pubs, le Player empêche le traçage de YouTube. Les vidéos regardées dans le lecteur Duck n’alimentent donc pas les recommandations de la plateforme.

La nouvelle fonction de blocage des pubs conserve « l’expérience » YouTube dans sa totalité, modulo la publicité. Il est possible d’utiliser les deux fonctionnalités simultanément.

DuckDuckGo bloque les publicités YouTube grâce à des listes de filtres communautaires issues d’uBlock Origin. Elles sont régulièrement mises à jour par la communauté. Le service du navigateur peut aussi ajouter ses propres règles pour éviter les bugs et améliorer la compatibilité. Comme avec beaucoup de bloqueurs de pub, cela peut rallonger un peu le temps de chargement des vidéos, mais la lecture se fait ensuite sans être embêté par la réclame.

  •  

☕️ DuckDuckGo bloque la pub YouTube



DuckDuckGo se paie un gros coup de pub… en les supprimant de YouTube. La dernière version du navigateur web embarque en effet une nouvelle option permettant de bloquer les réclames sur la plateforme vidéo de Google. Qui doit regarder tout ça d’un œil mauvais.

Depuis 2023, Google mène la lutte contre les bloqueurs de pub. Le mastodonte du web utilise tout l’arsenal possible et imaginable pour forcer les utilisateurs excédés par la réclame à souscrire à un abonnement payant. Mais la vie trouve toujours un chemin : des bidouilles font régulièrement surface pour supprimer les pubs, que Google se fait fort de bloquer.

On verra combien de temps DuckDuckGo tiendra, mais la dernière version du navigateur désactive la publicité sur YouTube, au début d’une vidéo comme au milieu. Cela fonctionne sur Windows, macOS et iOS, avec un réglage activé par défaut. Sur Android, il faut l’activer à la main, mais l’option sera également proposée par défaut dans quelque temps.

DuckDuckGo proposait déjà une option pour regarder des vidéos sans pause publicitaire, via le Duck Player, un lecteur embarqué dans le navigateur. Ce dernier n’a pas disparu, il est simplement complémentaire : en plus de supprimer les pubs, le Player empêche le traçage de YouTube. Les vidéos regardées dans le lecteur Duck n’alimentent donc pas les recommandations de la plateforme.

La nouvelle fonction de blocage des pubs conserve « l’expérience » YouTube dans sa totalité, modulo la publicité. Il est possible d’utiliser les deux fonctionnalités simultanément.

DuckDuckGo bloque les publicités YouTube grâce à des listes de filtres communautaires issues d’uBlock Origin. Elles sont régulièrement mises à jour par la communauté. Le service du navigateur peut aussi ajouter ses propres règles pour éviter les bugs et améliorer la compatibilité. Comme avec beaucoup de bloqueurs de pub, cela peut rallonger un peu le temps de chargement des vidéos, mais la lecture se fait ensuite sans être embêté par la réclame.

  •  
❌