Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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Çý¶¯¿ª·¢Ñ§Ï°±Ê¼Ç£¨¶þ£©

                    scull×Ö·ûÇý¶¯Ñ§Ï°±Ê¼Ç
Ŀ¼
1 scullÇý¶¯¼ò½é
2 Ö÷´Î±àºÅ
3 scullÔ´Âë·ÖÎö
-------------------------
|  1 scullÇý¶¯¼ò½é      |
-------------------------
  scullÊÇÒ»¸ö× ......

ÉîÈëdz³ö LinuxÉ豸Çý¶¯×èÈûÓë·Ç×èÈû (select poll)


×èÈû²Ù×÷ÊÇÖ¸£¬ÔÚÖ´ÐÐÉ豸²Ù×÷ʱ£¬Èô²»ÄÜ»ñµÃ×ÊÔ´£¬Ôò½ø³Ì¹ÒÆðÖ±µ½Âú×ã¿É²Ù×÷µÄÌõ¼þÔÙ½øÐвÙ×÷¡£·Ç×èÈû²Ù×÷µÄ½ø³ÌÔÚ²»ÄܽøÐÐÉ豸²Ù×÷ʱ£¬²¢²»¹ÒÆð¡£±»¹ÒÆðµÄ½ø³Ì½øÈësleep״̬£¬±»´Óµ÷¶ÈÆ÷µÄÔËÐжÓÁÐÒÆ×ߣ¬Ö±µ½µÈ´ýµÄÌõ¼þ±»Âú×ã¡£
ÔÚLinuxÇý¶¯³ÌÐòÖУ¬ÎÒÃÇ¿ÉÒÔʹÓõȴý¶ÓÁУ¨wait queue£©À´ÊµÏÖ×èÈû²Ù×÷¡£wait queueºÜÔ ......

linuxƽ̨ÏÂoracleÊý¾Ý¿â°²×°

×¢£º oracle¶Ôlinux°æ±¾ÓÐÒªÇ󣬻¹ÓÐËùÐèµÄpackage°ü²»ÊǺܺÃÕÒ£¬ÈçÓÐÐèÒª¿ÉÒÔ·¢email¸øÎÒ:tianlesoftware@vip.qq.com£¬ÎÒ¿ÉÒÔ´«¸øÄã.....
Steep1:  ÏÂÔØÈí¼þ°ü
10201_database_linux32
openmotif21-2.1.30-14.i386.rpm
Steep3:  ÉèÖÃÄں˲ÎÊý(ÔÚ/etc/sysctl.confÎļþÖмÓÈëÏÂÁÐÐÐ)
kernel.s ......

ÔÚLinuxÉϽ»²æ±àÒëpppd 2.4.4

ÔÚLinuxÉϽ»²æ±àÒëpppd 2.4.4
1. ÏÂÔØpppd 2.4.4µÄÔ´´úÂë
ftp://ftp.samba.org/pub/ppp/
2. Ö±½Ó±àÒë
#./configure
#make clean
#make
3. ½»²æ±àÒë
ÐÞ¸Ä./pppd-2.4.4/pppd/Makefile, ×¢ÊÍÁ½ÐУº
#wenxy comment #LIBS    += -lpcap
#wenxy comment #CFLAGS  += -DPPP_FILTER
cross compile ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ