2010-10-07 6 views
4

Nous venons d'obtenir un projet à mi-parcours aujourd'hui pour mon cours sur les systèmes d'exploitation, nous sommes invités à implémenter un appel système (et je suppose que nous devrons écrire un code à appeler il). Je comprends que je vais avoir besoin de mettre à jour la table des appels système (je ne me souviens pas du nom, mais pas de biggie), ainsi que de créer un module de noyau vers lequel pointe la table, mais est-ce que cela signifie Je vais devoir recompiler tout le noyau, donc le noyau connait mon module?Création d'un appel système sous Linux

J'ai vu qu'il est possible de détourner un appel système en cours, mais je suppose que je ne recevrai pas de crédit pour mon affectation si je le fais de cette façon.

Je voulais juste avoir une idée de la taille de l'effort que je vais faire. Eh bien, ça a fini par être un problème, ils changent certaines choses de 2.6.32 je crois, alors quand je suis retourné à une version précédente du noyau spécifique aux tutoriels en ligne, j'ai trouvé, c'était vraiment facile suivre. Si quelqu'un attrape ceci en ligne et suit un tutoriel, d'abord je recommanderais de télécharger d'abord le même noyau dans le tutoriel, puis d'avancer à partir de là une fois que vous aurez compris ce que vous faites. Si vous êtes vraiment familier avec la compilation de noyaux, etc, vous n'avez peut-être pas de problème, mais c'était la première fois que je compilais un noyau, donc ça a été difficile de compiler pendant 2 heures et de découvrir que quelque chose ne fonctionnait pas. Je dois recommencer, surtout quand je ne suis pas sûr de ce que je faisais ou n'allais pas faire de mal.

+0

Pour recompiler la partie du noyau, je vous recommande de saisir le code source et .config de votre distro au lieu de faire votre propre .config avec la source de kernel.org. Cela devrait vous causer moins de maux de tête si vous n'obtenez pas le .config juste pour votre matériel. – jonescb

Répondre

3

mais est-ce que cela signifie que je devrai recompiler tout le noyau, donc le noyau connait mon module?

Oui, vous devrez recompiler le noyau.

+0

Jusqu'ici ça a l'air bien, je vais regarder de plus près quand j'arriverai à l'école, et ça a l'air d'être résolu! - Avez-vous déjà fait cela auparavant, à votre avis est-ce très difficile? Cela ne semble pas être mon point de vue, mais je ne l'ai jamais essayé, alors je ne suis pas sûr. – onaclov2000

+0

Je pense que ça devrait aller. Compiler le noyau prend environ 5 minutes, sauf si vous êtes sur du matériel ancien. – dbyrne

+0

Hmmm J'ai fait yestoallconfig (ou quelque chose comme ça), puis une marque, et son goign pendant au moins 30 minutes, je suis sur une machine 3.2Ghz avec processeur double, et je pense que 4 Go de RAM ... Alors, je compile à partir de zéro si cela aide – onaclov2000

2

Je comprends que je vais avoir besoin de mettre à jour la table du système appelle

Il est /usr/src/linux/arch/i386/kernel/syscall_table.S

ce que cela signifie que je vais devoir recompiler le noyau entier, donc le noyau sait sur mon module?

Oui, en effet.

Just wanted to get a feel for the size of the effort I'll be making. 

Si vous savez quel code vous allez écrire dans le cadre de l'appel système, vous avez déjà terminé. Vous n'avez qu'à attendre le moment de la recompilation du noyau.Voici une série d'instructions:

Implementing a System Call in Linux

+0

C'est bien mieux que ma réponse paresseuse. Je t'avoue le vôtre. – haylem

4

Vous voulez lire:

  • Linux Programmation du noyau, troisième édition (Broché) de Michael Beck (Auteur), Harald Bohme (Auteur), Mirko Dziadzka (Auteur), Ulrich Kunitz (Auteur), Robert Magnus (Auteur), Dirk Verworner (Auteur), Claus Schroter (Auteur), Publié par Addison-Wesley (Pearson Education), ISBN-10: 0201719754, ISBN -13: 978-0201719758

et peut-être aussi bien pour plus de détails:

  • Comprendre le noyau Linux, troisième édition Par Daniel P. Bovet, Marco Cesati, publié par O'Reilly, ISBN 10: 0 -596-00565-2, ISBN 13: 9780596005658
  • pilotes de périphériques Linux, troisième édition par Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman, publié par O'Reilly, ISBN 10: 0-596-00590-3, ISBN 13: 9780596005900
+0

J'ai la 2ème édition du livre des pilotes de périphériques, et le 3ème est en ligne gratuitement, livre très intéressant! – onaclov2000

+0

Le premier que j'ai mentionné est le meilleur si vous voulez entrer dans le développement du noyau Linux. Il couvre bien la conception de l'OS lui-même, et vous guide dans votre hacking. – haylem

Questions connexes