GNU/Linux >> Znalost Linux >  >> Linux

Jaký je rozdíl mezi module_init a init_module v modulu jádra Linuxu?

Pokud se podíváte na definici nových funkcí:

/* Each module must use one module_init(). */
#define module_init(initfn)                 \
static inline initcall_t __inittest(void)       \
{ return initfn; }                  \
int init_module(void) __attribute__((alias(#initfn)));

/* This is only required if you want to be unloadable. */
#define module_exit(exitfn)                 \
static inline exitcall_t __exittest(void)       \
{ return exitfn; }                  \
void cleanup_module(void) __attribute__((alias(#exitfn)));

Uvidíte, že zajišťuje, že je zahrnuta správná standardní verze, takže tyto speciální funkce může kompilátor správně zpracovat. To je to, co dělá interní API Linuxu, vyvíjí se, pokud existují lepší způsoby řešení problému.


Jaká je výhoda [module_init] v jádře 2.6

module_init také ukončeno ve 2.4.

Přidává nezbytný standard pro inicializaci modulu a spuštění vstupní funkce, když je soubor modulu zkompilován do jádra, nikoli jako modul.


Linux
  1. Jaký je rozdíl mezi linuxovým kontejnerem a obrázkem?

  2. Jaký je rozdíl mezi env a set (na Mac OS X nebo Linux)?

  3. Jaký je rozdíl mezi ls a l?

  1. Jaký je rozdíl mezi Nepreemptivním, Preemptivním a Selektivním Preemptivním jádrem?

  2. Jaký je rozdíl mezi pravděpodobnými a nepravděpodobnými voláními v jádře?

  3. Jaký je rozdíl mezi Unixem, Linuxem, BSD a GNU?

  1. Jaký je rozdíl mezi InnoDB a MyISAM?

  2. Jaký je rozdíl mezi partx a kpartx?

  3. Jaký je rozdíl mezi unlink a rm?