Ich habe versucht, einige Linux-Treiber zu portieren und erkannte, dass es einen wesentlichen Unterschied zwischen Kernel-Version 2.4 und 2.6 von Linux gibt.
In der Version 2.4 des Kernels war die Modulprogrammierung wie folgt -
%Vor%Aber mit der Version 2.6 des Kernels muss das folgende für Module getan werden -
%Vor%Was ist der Vorteil solcher Änderungen in Kernel 2.6 und warum war diese Änderung in Kernel 2.6 von Linux erforderlich?
Wenn Sie sich die Definition der neuen Funktionen ansehen:
%Vor%Sie werden feststellen, dass das richtige Boilerplate enthalten ist, damit diese speziellen Funktionen vom Compiler korrekt behandelt werden können. Es ist, was die interne API von Linux tut, es entwickelt sich, wenn es bessere Möglichkeiten gibt, das Problem zu lösen.
Was ist der Vorteil von [module_init] in Kernel 2.6?
module_init
wurde in 2.4 ebenfalls verlassen, wohlgemerkt.
Es fügt den notwendigen Textbaustein hinzu, um das Modul zu initialisieren und die Eingabefunktion auszuführen, wenn die Moduldatei in den Kernel und nicht als Modul kompiliert wird.
Tags und Links kernel linux linux-device-driver linux-kernel operating-system