¸®´ª½º °ü·Ã °Ô½ÃÆÇ |
---|
2001/07/11(21:18) from 211.169.72.147 | |
ÀÛ¼ºÀÚ : °ÁÙ±â (jkkang65@hanmail.net) | Á¶È¸¼ö : 4900 , ÁÙ¼ö : 43 |
Q : Ä¿³Î ¸ðµâÀº ¾î¶»°Ô ¸¸µå³ª¿ä? |
---|
A : Ä¿³Î ¸ðµâÀº Ä¿³Î ¸ðµå¿¡¼ µ¿ÀÛÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù. Ä¿³Î ¸ðµâÀº C/C++ ¾ð¾î·Î ¸¸µé ¼ö ÀÖÀ¸¸ç, ·ÎµåÇÏ°í ¾ð·ÎµåÇÒ ¶§ ºÒ¸®´Â µÎ °³ÀÇ ÇÔ¼ö init_module()°ú cleanup_module()À» ±¸ÇöÇÏ¸é µË´Ï´Ù. Ä¿³Î ¸ðµâ¿¡¼´Â Ä¿³Î¿¡¼ export ÇØÁÖ´Â ÇÔ¼ö³ª º¯¼ö¸¸À» »ç¿ëÇÏ¿©¾ß ÇÕ´Ï´Ù. ¸ðµâÀº object ÆÄÀÏ ÇüÅ·Π½ÇÁ¦ ¸µÅ©ÇÏ´Â ÀÛ¾÷Àº module loader°¡ ¼öÇàÇϹǷΠÄÄÆÄÀϸ¸ ÇÑ ÈÄ ·ÎµåÇÏ¸é µË´Ï´Ù. °£´ÜÇÑ ¸Þ½ÃÁö¸¸À» Ãâ·ÂÇÏ´Â ¸ðµâÀ» ¸¸µé¾î¼ ÄÄÆÄÀÏÇÏ°í ·ÎµåÇÏ´Â °úÁ¤À» »ìÆ캸¸é : 1. ÄÚµå ÀÛ¼º ´ÙÀ½°ú °°ÀÌ hello.c ÆÄÀÏÀ» ¸¸µç´Ù. #define __KERNEL__ #define MODULE #include #include #ifdef CONFIG_MODVERSIONS #define MODVERSIONS #include #endif int init_module(void) { printk("<1>Hello, World\n"); return 0; } void cleanup_module(void) { printk("<1>Goodbye\n"); } 2. ÄÄÆÄÀÏÇϱâ gcc -c hello.c 3. ¸ðµâ ·Îµå ¹× ¾ð·Îµå insmod hello.o <= ·Îµå lsmod <= ÇöÀç ·ÎµåµÈ ¸ðµâ ¸ñ·Ï È®ÀÎ rmmod hello <= ¾ð·Îµå tail /var/log/messages <= ¸ðµâ¿¡¼ Ãâ·ÂÇÑ ¸Þ½ÃÁö °Ë»ç -------------------------------------------------------------------------------- |