Je souhaite ajouter un appel système à Linux, mais dans les données d'apprentissage, nous devons modifier le fichier linux/Arch/i386/kernel/entry.S
ou Arch/x86/kernel/syscall_table_32.S
. Je ne peux pas trouver les fichiers. J'ai regardé et n'ai pas pu trouver et je n'ai pas de dossier nommé i386. Aidez-moi, s'il vous plaît. est nécessaire.
Tout d’abord, vous avez besoin du code source du noyau Linux. Vous pouvez le télécharger sur kernel.org ou installer le paquetage _linux-source
_ à partir d'Ubuntu. Dans ce dernier cas, certains correctifs d'Ubuntu seront appliqués.
Habituellement, les sources résident sous _/usr/src
_. Si vous avez décompressé les fichiers ou installé le paquet, vous trouverez l’arborescence que vous avez mentionnée ci-dessus. Ainsi, la version la plus récente du noyau contient un fichier appelé entry_32.S
et entry_64.S
dans le sous-répertoire _Arch/x86/kernel
_. La partie après Arch
porte le nom _x86
_ et non _i386
_ comme vous l'avez mentionné. Si vous souhaitez utiliser _i386
_, vous devez choisir une version du noyau inférieure à 3.7, car _i386
_ a été supprimé de la version 3.7.
le fichier entry_64.S n'est pas le fichier équivalent que vous devez modifier ... en fonction de ce que vous souhaitez faire. Si vous souhaitez ajouter un appel système personnalisé à votre noyau, modifiez le fichier / Arch/x86/syscalls/syscall_64.tbl.