GNU/Linux >> Belajar Linux >  >> Linux

Apa perbedaan antara module_init dan init_module dalam modul kernel Linux?

Jika Anda melihat definisi fungsi baru:

/* 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)));

Anda akan melihatnya memastikan bahwa boilerplate yang tepat disertakan sehingga fungsi khusus ini dapat ditangani dengan benar oleh kompiler. Itulah yang dilakukan API internal Linux, itu berkembang jika ada cara yang lebih baik untuk memecahkan masalah.


Apa kelebihan [module_init] di Kernel 2.6

module_init juga keluar di 2.4, ingatlah.

Ia menambahkan boilerplate yang diperlukan untuk menginisialisasi modul dan menjalankan fungsi entri saat file modul dikompilasi ke dalam kernel, bukan sebagai modul.


Linux
  1. Apa perbedaan antara InnoDB dan MyISAM?

  2. Apa perbedaan antara wadah Linux dan gambar?

  3. Apa perbedaan antara insmod dan modprobe

  1. Apa perbedaan antara panggilan Perpustakaan dan panggilan Sistem di Linux?

  2. Apa perbedaan antara Unix, Linux, BSD dan GNU?

  3. Apa perbedaan antara partx dan kpartx?

  1. Apa perbedaan antara perintah locate dan find di Linux?

  2. Apa perbedaan antara env dan set (di Mac OS X atau Linux)?

  3. Apa perbedaan antara unlink dan rm?