Nouveau système de fichier.

tabliertablier Membre
décembre 2014 modifié dans API AppKit #1

Je souhaite ajouter un système de fichier qui me permette de lire et écrire des fichiers dans un disque externe formaté sur Atari et connecté en USB.  Donc, je lis, je lis, je lis ....... etc


Et dans le document "Kernel Programming"qui s'arrête à  10.7  j'ai trouvé ce passage:



The ability to dynamically add a new file-system implementation is based on VFS KEXTs. Device drivers and


device families in the I/O Kit are implemented using KEXTs. KEXTs make development much easier for developers


writing drivers or those writing code to support a new volume format or networking protocol. KEXTs are


discussed in more detail in the chapter Kernel Extension Overview (page 152).



donc j'ai continué à  lire et  là  j'ai trouvé:



VFS Transition


The details of the VFS subsystem in OS X are in the process of changing in order to make the VFS interface


sustainable.


If you are writing a leaf file system, these changes will still affect you in many ways. please contact Apple


Developer Support for more information.



Je suis bien avancé!


J'ai quand même appris que ce que je veux faire est prévu !!!


Réponses

  • Une autre méthode consiste à  utiliser osxfuse pour écrire ton driver en mode user plutôt que d'écrire un driver. C'est plus facile et il y a déjà  des exemples disponibles.
    http://osxfuse.github.io

    Et tu peux réutiliser des sources pour FUSE (la version linux), pour lequel un plugin Atari ST a peut-être déjà  été écrit.
  • Je vais regarder.


  • Cela pourrait me simplifier la vie. OSXFUSE a été mis à  jour pour 10.10 et utilise VSF KEXTS (pas de documentation officielle!!).


    mais les textes explicatifs et les exemples sont obsolètes et ne dépassent pas 10.7 et l'année 2008.


    Chaque fois que j'installe de vieux exemples comme ceux-ci, les bibliothèques spécifiques ne sont jamais trouvées et quantité de fonctions sont "deprecated" depuis 10.7, 10.8 ou 10.9


    Grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr!!


    J'ai jeté un oe“il sur les sources de OSXFUSE. Comme il fallait s'y attendre il utilise un KEXT comme interface au matériel.


     


    J'ai toujours  un 10.7 d'installé, je vais y retourner.


    J'ai trouvé 5 exemples (anciens hélas):  AccessibilityFS, HelloFS, LoopbackFS, SpotlightFS, YTFS


  • AliGatorAliGator Membre, Modérateur
    En même temps ça ne me choque pas trop que OSXFuse se base sur VFS.kext.

    Le principe même de Fuse c'est de pouvoir développer des drivers de système de fichiers dans le "User Space", pour éviter d'avoir à  se prendre la tête avec les spécificités et difficultés du développement dans le "Kernel Space" qui nécessite beaucoup + d'attention (et de connaissances sur les subtilités du kernel). Et donc de fonctionner sur un système de fichier virtuel que tu développes dans le User Space par dessus le VirtualFileSystem générique fourni.

    Donc sous OSXFuse comme pour du développement directement d'un autre FileSystem OSX, les pratiques maintenant sont de développer le FS dans le UserSpace on-top-of le Virtual FileSystem (VFS) Kernel fourni par l'OS (ou par Fuse). Ca t'évite d'avoir à  développer un driver (chose autrement + compliquée), tu développes sur une couche d'abstraction moins dure à  appréhender.

    Après, encore faut-il que l'API de VFS soit documentée... les 5 exemples que tu as trouvés, c'est des exemples développés directement dans le KernelSpace en tant que KEXT bas-niveau ? Ou ce sont des exemples qui se basent déjà  sur un VirtualFileSystem et sont développés dans le UserSpace ?
  • Je suis arrivé à  compiler sous 10.7 Xcode 4.


    Les exemples que j'ai trouvé sont ici. Ils sont (je pense) développés dans l'espace utilisateur.  Pour les utiliser j'ai installé OSXFUSE 2.7.3. Les exemples ne génèrent pas de KEXT mais sont liés au OSXFUSE.framework qui lui s'adresse à  OSXFUSE.KEXT.  A l'installation, j'ai juste autorisé l'installation de la couche supplémentaire qui permet d'ajouter des FS supplémentaires.  je n'ai encore rien essayé !!


    Je cherche vainement des exemples et des documentations récentes sur VSF et sur OSXFUSE et ça ne court pas les rues (pardon, le web)!   Comme j'ai 5 exemples, je vais les compiler et les examiner pour avancer un peu.


Connectez-vous ou Inscrivez-vous pour répondre.