Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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


Ïà¹ØÎĵµ£º

Linux Ïß³ÌDetach&Join


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

ÔÚLinuxÉϽ»²æ±àÒëwindows³ÌÐò

ת×Ô:http://www.cublog.cn/u/12592/showart_163722.html
×î½ü¼¸Ìì¸ã wxWidgets£¬ÓÉÓÚҪͬʱ±àÒëÓ¦ÓóÌÐòµÄ Windows °æ±¾£¬ÓÖÀÁµÃÔÚÐéÄâ»úÀïÃæ±àÒë³ÌÐò£¬ÓÚÊÇÏëµ½Óý»²æ±àÒëµÄ·½Ê½ÔÚ Linux ÉϱàÒëºÃ Windows °æ±¾µÄ³ÌÐò£¬ÔÙÓà Wine »òÕßÐéÄâ»úÀ´Ö´ÐС£ÊÔÁËһϣ¬ÕâÖÖ·½·¨ºÜºÃÓ㬱ÈÔÚÐéÄâ»úÀïÃæ±àÒë³ÌÐò¿ìºÜ¶à¡£
ÎҵIJÙ×÷ ......

9)LinuxÏÂC¿ª·¢¹¤¾ß½éÉÜ

9)LinuxÏÂC¿ª·¢¹¤¾ß½éÉÜ
LinuxµÄ·¢ÐаæÖаüº¬Á˺ܶàÈí¼þ¿ª·¢¹¤¾ß. ËüÃÇÖеĺܶàÊÇÓÃÓÚ C ºÍ C++Ó¦ÓóÌÐò¿ª·¢
µÄ. ±¾ÎĽéÉÜÁËÔÚ Linux ÏÂÄÜÓÃÓÚ C Ó¦ÓóÌÐò¿ª·¢ºÍµ÷ÊԵŤ¾ß. ±¾ÎĵÄÖ÷Ö¼ÊǽéÉÜÈç
ºÎÔÚ Linux ÏÂʹÓà C ±àÒëÆ÷ºÍÆäËû C ±à³Ì¹¤¾ß, ¶ø·Ç C ÓïÑÔ±à³ÌµÄ½Ì³Ì.
GNU C ±àÒëÆ÷
GNU C ±àÒëÆ÷(GCC)ÊÇÒ»¸öÈ«¹¦Ä ......

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

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

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

·     linux²Ù×÷ϵͳÏÂcÓïÑÔ±à³ÌÈëÃÅ
(Ò»)Ŀ¼½éÉÜ
1)Linux³ÌÐòÉè¼ÆÈëÃÅ--»ù´¡ÖªÊ¶
2)Linux³ÌÐòÉè¼ÆÈëÃÅ--½ø³Ì½éÉÜ
3)Linux³ÌÐòÉè¼ÆÈëÃÅ--Îļþ²Ù×÷
4)Linux³ÌÐòÉè¼ÆÈëÃÅ--ʱ¼ä¸ÅÄî
5)Linux³ÌÐòÉè¼ÆÈëÃÅ--ÐźŴ¦Àí
6)Linux³ÌÐòÉè¼ÆÈëÃÅ--ÏûÏ¢¹ÜÀí
7)Linux³ÌÐòÉè¼ÆÈëÃÅ--Ïß³Ì ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ