Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

The Linux Kernel Module Programming Guide±Ê¼Ç

1¡¢Í¨¹ýlsmodÀ´»ñµÃÄÚºËÒѼÓÔØÁËÄÇЩģ¿é£¬Õâ¸öÃüÁîÊǶÁÈ¡/proc/modulesÎļþµÄÄÚÈÝÀ´»ñµÃÐÅÏ¢µÄ¡£
 
2¡¢ÄÚºËÄ£¿é¹ÜÀíÊØ»¤½ø³ÌkmodÖ´ÐÐmodprobeÈ¥¼ÓÔØÄÚºËÄ£¿é¡£modprobeµÄ¹¦ÄܺÍinsmodÀàËÆ£¬µ«ÊÇËü³ýÁË×°ÈëÖ¸¶¨Ä£¿éÍ⣬»¹Í¬Ê±×°ÈëÖ¸¶¨Ä£¿éËùÒÀÀµµÄÆäËûÄ£¿é¡£
 
3¡¢Èç¹ûÄÚºËÖдò¿ªÁËCONFIG_MODVERSIONSÑ¡ÏÔòΪij¸öÖ¸¶¨°æ±¾Äں˱àÒëµÄÄ£¿é½«²»Äܱ»ÁíÒ»°æ±¾µÄÄں˼ÓÔØ¡£ËùÒÔÔÚ¿ª·¢µÄ¹¤³ÌÖУ¬×îºÃ½«ÄÚºËÖеÄÕâ¸öÑ¡Ïî¹Ø±Õ¡£
 
4¡¢½¨ÒéÔÚ¿ØÖÆ̨ÏÂÊäÈëÎĵµÖеķ¶Àý´úÂ룬±àÒëÈ»ºó¼ÓÔØÄ£¿é£¬¶ø²»ÊÇÔÚXÏ¡£Õâ¸ö¿É¼°Ê±¶ÁÈ¡¼ÓÔØÄ£¿éʱµÄÈÕÖ¾ÐÅÏ¢¡£
 
5¡¢Ä£¿é³õʼ»¯º¯Êý£¨module_init£©Ó¦¸Ã·µ»ØֵΪ0£¬·Ç0Ôò±íÃ÷³õʼ»¯Ê§°Ü£¬¸ÃÄ£¿é½«²»Äܱ»¼ÓÔØ¡£
 
6¡¢ÈÎÒ»¸öÄÚºËÄ£¿éÐèÒª°üº¬linux/module.h¡£ÎÒÃǽö½öÐèÒª°üº¬linux/kernel.hµ±ÐèҪʹÓÃprintk()¼Ç¼¼¶±ðµÄºêÀ©Õ¹Ê±KERN_ALERN¡£
 
7¡¢printk()²¢²»ÊÇÉè¼ÆÓÃÓÚÓû§½»»¥µÄ£¬Ëüʵ¼ÊÉÏÓÃÀ´ÎªÄÚºËÌṩÈÕÖ¾¹¦ÄÜ£¬¼Ç¼ģ¿éÐÅÏ¢ºÍ¸ø³ö¾¯¸æ¡£Ëü¶¨ÒåÁ˰˸öÓÅÏȼ¶¡£ÎÒÃÇ¿ÉÒÔʹÓÃKERN_ALERTÕâÑùµÄ¸ßÓÅÏȼ¶£¬À´È·±£printk()½«ÐÅÏ¢Êä³öµ½¿ØÖÆ̨¶ø²»ÊÇÌí¼Óµ½ÈÕÖ¾ÖС£
 
8¡¢¹ØÓÚºê__initºÍ__exit¡£ËüÃǸºÔð“³õʼ»¯”ºÍ“ÇåÀíÊÕβ”µÄº¯Êý¶¨Òå´¦µÄ±ä»¯¡£Èç¹ûÄ£¿éÊDZ»±àÒëµ½Äںˣ¬¶ø²»ÊǶ¯Ì¬¼ÓÔØ£¬__init»áʹ³õʼ»¯Íê³Éºó¶ªÆú¸Ãº¯Êý²¢ÊÕ»ØËùÕ¼µÄÄڴ棨__initdataµÄ×÷ÓÃÓë__initÀàËÆ£¬Ö»²»¹ý¶Ô±äÁ¿ÓÐЧ£©£¬__exitÔò½«»áºöÂÔ¸ÃÊÕβº¯Êý¡£
 
9¡¢Èç¹ûÒ»¸öÄ£¿é䶨ÒåÇå³ýº¯Êý£¬ÔòÄں˲»ÔÊÐíжÔظÃÄ£¿é¡£
 
10¡¢#include <linux/sched.h>
    ×îÖØÒªµÄÍ·ÎļþÖ®Ò»¡£°üº¬Çý¶¯³ÌÐòʹÓõĴ󲿷ÖÄÚºËAPIµÄ¶¨Ò壬°üÀ¨Ë¯Ãߺ¯ÊýÒÔ¼°¸÷ÖÖ±äÁ¿ÉùÃ÷¡£
------------------------------------------------------------------------
    struct task_struct *current;µ±Ç°½ø³Ì¡£current->pid¡¢current->comm£ºµ±Ç°½ø³ÌµÄ½ø³ÌIDºÍÃüÁîÃû¡£
------------------------------------------------------------------------
    #include <linux/module.h>
    ±ØÐèµÄÍ·Îļþ£¬±ØÐë°üº¬ÔÚÄ£¿éÔ´´úÂëÖС£
------------------------------------------------------------------------
    #include <linux/moduleparam.h>
    module_pa


Ïà¹ØÎĵµ£º

°²×°Vista¡¢linux(Fedora10)¡¢Solaris

1.×¼±¸·ÖÇø
 ÓÉÓÚSolarisºÍVista(µÄÒýµ¼¼ÓÔØ)±ØÐë°²×°ÔÚÖ÷·ÖÇøÉÏ£¬linuxÊÇ¿ÉÒÔ°´ÔÚÀ©Õ¹·ÖÇøÉϵÄ
     ËùÒÔÎÒ°Ñ´ÅÅÌ·Ö³É
 30GÖ÷·ÖÇø£º°²×°Vista
 27GÖ÷·ÖÇø£º±¾À´Òª°²×°FreeBSD(Ò²±ØÐë°²×°ÔÚÖ÷·ÖÇøÉÏ,µ«ÊÇFreeBSD²»Ö§³ÖÎҵĻú×ÓËùÒÔ·ÅÆú)
 135GÀ©Õ¹·ÖÇø£ºÆäÖзֳö40GµÄÂß¼­Å̸ ......

Linux Ïß³ÌDetach&Join


1£®µÈ´ýÏß³Ì
pthread_join º¯ÊýÓÃÀ´µÈ´ýÒ»¸öÏ̵߳ĽáÊø£¬ÀàËÆÓÚ½ø³ÌµÄ wait º¯Êý¡£
´Ëº¯Êý½«×èÈûµ÷Óõ±Ç°Ï̵߳Ľø³Ì£¬Ö±µ½´ËÏß³ÌÍ˳ö¡£¼´Õâ¸öº¯ÊýÊÇÒ»¸öÏß³Ì×èÈûµÄº¯Êý£¬µ÷ÓÃËüµÄ½ø³Ì½«Ò»Ö±µÈ´ýµ½±»µÈ´ýµÄÏ߳̽áÊøΪ£¬µ±º¯Êý·µ»Øʱ£¬´¦ÓÚ±»µÈ´ý״̬µÄÏß³Ì×ÊÔ´±»Êջء£Èç¹ûÖ´Ðгɹ¦£¬½«·µ»Ø 0£¬Èç¹ûʧ°ÜÔò·µ»ØÒ»¸ö·Ç 0¡£ ......

linuxÇý¶¯¿ª·¢Ñ§Ï°±Ê¼Ç£¨¶þ£©

                scull µÄMakefile
Makefile½Å±¾ÈçÏÂËùʾ¡£
--------------------------------------------------------------------------------
KERNEL_MAKE := -C /home/zhoumin/hi3511/Hi3511_VSSDK_V1.1.2.1/pub/kbuild-LESS_REL
PWD := $(shell pwd ......

linux´®¿ÚÓ¦Óÿª·¢

linux´®¿ÚÓ¦Óÿª·¢
2009Äê10ÔÂ20ÈÕ ÐÇÆÚ¶þ 14:16
1¡¢´®¿Ú¸ÅÊö
    Óû§³£¼ûµÄÊý¾ÝͨÐŵĻù±¾·½Ê½ÓÐÁ½ÖÖ£º²¢ÐÐͨÐźʹ®ÐÐͨÐÅ¡£
    ´®ÐÐͨÐÅÊǼÆËã»ú³£ÓõĽӿڣ¬È磺RS-232-C½Ó¿Ú¡£¸Ã±ê×¼¹æ¶¨²ÉÓÃÒ»¸öDB25оÒý½ÅÁ¬½ÓÆ÷»òDB9оÒý½ÅÁ¬½ÓÆ÷¡£Ð¾Æ¬ÄÚ²¿³£¾ßÓÐUART¿ØÖÆÆ÷£¬Æä¿É¹¤×÷ÓÚInterrup ......

3)Linux³ÌÐòÉè¼ÆÈëÃÅ

3)Linux³ÌÐòÉè¼ÆÈëÃÅ--Îļþ²Ù×÷
LinuxÏÂÎļþµÄ²Ù×÷
Ç°ÑÔ:
ÎÒÃÇÔÚÕâÒ»½Ú½«ÒªÌÖÂÛlinuxÏÂÎļþ²Ù×÷µÄ¸÷¸öº¯Êý.
ÎļþµÄ´´½¨ºÍ¶Áд
ÎļþµÄ¸÷¸öÊôÐÔ
Ŀ¼ÎļþµÄ²Ù×÷
¹ÜµÀÎļþ
----------------------------------------------------------------------------
----
1¡£ÎļþµÄ´´½¨ºÍ¶Áд
ÎÒ¼ÙÉèÄãÒѾ­ÖªµÀÁ˱ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ