Outils développeurActualité

Kakehashi : expérience utile, maintenance arrêtée

Sur cette page
  1. Le dépôt actuel change la conclusion
  2. Même jeu d’instructions, autre contrat système
  3. Compatibilité ne signifie pas isolation

La principale nouveauté figure en tête du dépôt : son mainteneur indique ne plus pouvoir entretenir Kakehashi. Le projet doit être évalué comme une expérience privée de ce suivi.

Kakehashi adapte chargement Mach-O, bibliothèques et appels BSD à Linux aarch64. Le code partage le jeu ARM64 ; accès aux fichiers hôtes et arrêt de maintenance restent des questions distinctes.
Kakehashi adapte chargement Mach-O, bibliothèques et appels BSD à Linux aarch64. Le code partage le jeu ARM64 ; accès aux fichiers hôtes et arrêt de maintenance restent des questions distinctes. Graphique : PeopleAreGeek. Source des données.
Agrandir l’image

Le dépôt actuel change la conclusion

Le README contient désormais des exemples Apple git et clang, en plus de 7-Zip et curl. Il exclut encore une pile macOS complète et codesign fonctionnel. L’exécution exige Linux aarch64 et un système de fichiers invité préparé manuellement. L’Ubuntu de référence tourne dans UTM, pas simultanément sur matériel nu. Ces exemples ne constituent pas un engagement de compatibilité future après le retrait du mainteneur.

Même jeu d’instructions, autre contrat système

Un exécutable Mach-O transporte davantage d’hypothèses que ses instructions ARM64 : chargeur, symboles de bibliothèques, threads, chemins et appels système. Kakehashi adapte ce contrat à Linux. Les instructions compatibles peuvent s’exécuter directement, tandis que les frontières système ajoutent du travail ou révèlent des fonctions manquantes.

L’absence d’émulateur d’instructions ne signifie donc pas absence de surcoût. Une boucle de compression et un parcours de dossiers peuvent franchir ces frontières à des fréquences très différentes. Nous avons retiré un ancien facteur de ralentissement plutôt que de transformer un microbenchmark évolutif du développeur en prévision pour votre compilation.

Compatibilité ne signifie pas isolation

Le mappage documenté /Volumes/linux expose le système de fichiers hôte. Un outil invité qui écrit sur un chemin de l’hôte peut modifier de vrais fichiers. Évaluez-le sur des données jetables avec un accès à l’hôte délibérément limité ; la présence d’un dossier invité ne démontre pas son isolation.

Avant de déplacer une étape CI, testez le binaire exact, ses bibliothèques et ses entrées, puis comparez validité des résultats et durée totale. Signature et vérification de la version distribuée restent des exigences distinctes. Un exemple clang réussi ne valide pas toute une chaîne macOS, et une démonstration ne dit pas qui corrigera la prochaine incompatibilité. Le projet reste une base de recherche possible ; son état de maintenance représente un coût d’adoption concret.

Revue du 8 septembre : arrêt de maintenance signalé, exemples git/clang actualisés ; ancien benchmark 5,2× et description contradictoire d’UTM retirés.