• # Tout est possible

    Posté par (page perso) . Évalué à 1.

    La stack IP du noyau est un sous-système comme un autre, présentant des APIs et utilisant des APIs d'autres sous-systèmes.
    Dès l'instant ou tu présentes la même API, tu peux tout à fait substituer le code ton choix à la stack IP de Linux… mais ça risque d'être un gros gros travail.

    • [^] # Re: Tout est possible

      Posté par . Évalué à 1.

      J'ai déjà le code d'une stack IP que j'aimerais faire fonctionner et le but de mon petit test est de remplacer celle existante dans le kernel linux par la mienne. Du coup je me disais qu'il serait possible de décharger le module décrivant la stack ip et d'y charger la mienne ?
      Peut être ai-je une vision beaucoup trop simplifiée de l’implémentation de la stack IP linux dans le kernel. Et je dois bien avouer ne pas savoir de quelle API tu parles.
      Merci pour ton aide.

      • [^] # Re: Tout est possible

        Posté par (page perso) . Évalué à 4.

        Si c'est pour des tests, ne vaudrait-il pas mieux partir vers un noyau plus léger, genre Minix, que vers Linux?

        Python 3 - Apprendre à programmer en Python avec PyZo et Jupyter Notebook → https://www.dunod.com/sciences-techniques/python-3

      • [^] # Re: Tout est possible

        Posté par (page perso) . Évalué à 4.

        Alors … si l'évocation de l'API te laisse un peu "sec", tu risques quand même de passer de mauvais moments dans les jours à venir si tu te lances sur ce chantier.

        En gros, il faut ne faut pas voir le noyau comme un gros programme monolithique, mais plutôt comme un gros programme décomposé en sous-systèmes indépendants mais communiquant les uns avec les autres.

        Typiquement, lorsque, en user-land, tu ouvres une connection TCP/IP via socket(), connect() et leurs copains, cela déclenche, via les syscall (qui sont standardisés) une multitude d'opération dans les différents sous-systèmes du noyau dont celui en charge de gérer le protocole IP.
        Fatalement, il a fallu à un moment établir un langage commun pour que chaque sous sytème du noyau sois en mesure de communiquer avec la stack IP. C'est ce "langage commun" que l'on nomme communément API

        Le plus simple pour avoir un aperçu de l'API est de regarder les headers concernés.
        Un bon point de départ est de jeter un oeil au source du noyau et en particulier au header dans include/net/ip.h

        • [^] # Re: Tout est possible

          Posté par . Évalué à 1.

          Merci pour vos réponses et de votre aide à tous les deux je vais (re)plancher sur le sujet surement essayer sur minix de façon à simplifier les choses dans un premier temps.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.