2015-04-20 3 views
1

pour le travail scolaire Je dois ajouter helloworld syscall personnalisé à freebsd. J'ai utilisé le lien suivant comme guide: http://members.tripod.com/s_mathur/bsdhowto.html OK! Dans la deuxième étape j'ai eu un problème: root n'a pas l'autorisation de l'exécuter, donc j'ai utilisé: "make sysent" à la place. Semble ok. L'étape 4 dit: 4. Modifiez le Makefile pour inclure sys_hello.c, etc et recompilez le noyau. Quel makefile? et comment le compiler et comment appeler SysCall bonjour? tnx à l'avancefreebsd ajouter un syscall personnalisé en compilant le noyau?

Répondre

1

Si sys_hello.c contient votre implémentation syscall - et qu'elle se trouve dans sys/kern/sys_hello.c - alors ajoutez ce fichier à conf/files. Rechercher par exemple "kern_fork.c" et ajoutez sys_hello.c de la même manière. Ensuite, reconstruisez et réinstallez le noyau et le monde (make buildkernel buildworld installkernel installworld); La reconstruction du monde est nécessaire pour obtenir la partie espace utilisateur dans libc.so. Pour appeler - eh bien, appelez-le comme vous appelez un autre syscall. Vous devrez ajouter la déclaration syscall quelque part.

+0

oui, sys_hello.c est dans sys/kern. mais il n'y a pas de fichier .c dans sys/conf, donc c'est l'endroit. il n'y a pas de sys_hello.h à inclure dans kern_fork.c. que devrais-je faire? –

+0

Les fichiers sys/conf/- littéralement, "fichiers", pas d'extension - contient la liste des fichiers sources du noyau à utiliser (à part les modules du noyau, qui sont construits en fonction de Makefiles dans sys/modules /). En ce qui concerne sys_hello.h - ouais, je ne sais pas d'où ce fichier pourrait provenir; juste ne l'incluez pas? –