Folco: désolé mais faire tourner du Linux et faire des drivers pour c'est mon boulot.
Les drivers GPU sont pour certains plus complexe que le kernel linux lui même, c'est pas vraiment quelque chose de facile à faire, et sachant que les GPU Apple sont basé (en partie? Complétement?) sur les GPU que je connais le mieux, je souhaite bon courage a qui veux faire un driver pour sans documentation, déjà que avec la doc (qui est merdique) et ca reste chiant a faire vu les emmerdes des équipes qui sont dessus. *
Dire que faire booter linux est simple et que sans les drivers des modules principaux c'est pas utilisable et que faire ces drivers va prendre largement plus de temps est malheureusement la triste réalité.
Quand a un "ndiswrapper" pour DriverKit?
J'ai du mal a croire que ça se fasse. Ndiswrapper était quand même super buggé, vraiment plantogène, et fonctionnais avec un set super réduit de drivers pour cartes Wi-Fi.
La il faudrait faire une couche complète de support pour DriverKit sous linux?
Ce n'est pas irréalisable hein, mais ca demanderais probablement pas mal de changement dans le kernel linux pour que ca soit réaliste et j'ai des doutes que ça soit accepté de toute manière en mainline. (surtout vu comment les gens sur le noyal ne supportent pas d'avoir une API interne stable)
Un autre point qui rend les choses complexes a porter, Mac OS X use et abuse des services du microkernel Mach, chose qui bien sur n'existe pas sous Linux (et manque cruellement pour certaines fonctionnalité)**
Ca sera (serait?) peut être possible pour certains subset de drivers, mais ça me semble être encore plus d'effort que juste faire du reverse du hardware et écrire le driver qui va avec. (les "HAL" tendent a être gros et lourd)
Mon problème c'est qu'on compare un projet open source avec 2-3 personnes travaillant dessus, pour toutes les parties a faire, comparativement a une société avec des centaines d'ingénieurs, ou il y a plus de personnes par modules que ce qu'il y a sur le projet open source en lui même.
Oui ils n'ont pas besoin de récrire Linux, heureusement, et c'est d’ailleurs pour ça que le faire booter est "relativement" simple comparativement à la tache d'écrire les drivers.
Si tu veux voir la complexité d'un driver GPU, va voir les driver opensource pour les GPU ARM (Mali), certains ne sont toujours pas supporté, d'autre qui on déjà plusieurs années commence seulement a avoir des performances acceptables. Et c'est partiellement documenté contrairement a ce qu'on a ici avec le M1.
Edit: j'étais en train de corriger des trucs et un *** de F5 m'a fait tout perdre
J'ai corrigé certains truc et viré ce qui a été doublé.
* Bien sur les équipes en question se tape un code qui a pour certaines parties 20 ans d'age et certains points de compatibilité qui doivent être gardé, mais ça ne change pas la complexité intrinsèque du truc.
** Ceci dit je me demande si avoir une API driver stable tel que DriverKit ne serait pas bénéfique pour le kernel Linux mais bon. J'en ai personnellement marre de devoir faire des changement spécifique pour tel ou telle version du kernel pour un driver qui ne sera jamais mainliné parceque manque d’intérêt ou trop spécifique, ou simplement "duplique" une API déjà existante (mais je trouve moins bonne).