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

LinuxÉ豸Çý¶¯¿ª·¢Ïê½â ±Ê¼Ç4 LinuxÄÚºËÄ£¿é

modprobeÃüÁî±ÈinsmodÃüÁîÇ¿´ó£¬ËüÔÚ¼ÓÔØÄ³Ä£¿éʱ»áͬʱ¼ÓÔØ¸ÃÄ£¿éËùÒÀÀµµÄÆäËûÄ£¿é¡£Ê¹ÓÃmodprobeÃüÁî¼ÓÔØµÄÄ£¿éÈôÒÔ“modprobe –r filename”µÄ·½Ê½Ð¶Ôؽ«Í¬Ê±Ð¶ÔØÆäÒÀÀµµÄÄ£¿é¡£
printk´òÓ¡µ½var/log/messages
2.6ÄÚºËÖÐÒѼÓÔØµÄÐÅÏ¢Ò²´æÔÚÓÚ/sys/moduleĿ¼Ï£¬¼ÓÔØhello.koºó£¬ÄÚºËÖн«°üº¬/sys/module/helloĿ¼£¬¸ÃĿ¼ÓÖ°üº¬Ò»¸örefcntÎļþºÍÒ»¸ösectionsĿ¼
/proc/kallsymsÎļþ¶ÔÓ¦×ÅÄں˷ûºÅ±í£¬Ëü¼Ç¼ÁË·ûºÅÒÔ¼°·ûºÅËùÔÚµÄÄÚ´æµØÖ·
#include<linux/init.h>
#include<linux/module.h>
 
MODULE_LICENSE("Dual BSD/GPL");
 
int add_integar(int a, int b)
{
    return a+b;
}
 
int sub_integar(int a, int b)
{
    return a-b;
}
 
EXPORT_SYMBOL(add_integar);
EXPORT_SYMBOL(sub_integar);
 
±àÒëºó½«Ä£¿é²åÈ룬¿ÉÒÔ´Ó/pro/kallsymsÎļþÖÐÕÒ³öadd_integar¡¢sub_integarÏà¹ØÐÅÏ¢
cat /pro/kallsyms |grep integar
 
try_module_get()Óëmodule_put()µÄÒýÈëÓëʹÓÃÓëLinux2.6ÄÚºËϵÄÉ豸ģÐÍÃÜÇÐÏà¹Ø¡£2.6ÄÚºËΪ²»Í¬ÀàÐ͵ÄÉ豸¶¨ÒåÁËstruct module *ownerÓò£¬ÓÃÀ´Ö¸Ïò¹ÜÀí´ËÉ豸µÄÄ£¿é¡£µ±¿ªÊ¼Ê¹ÓÃij¸öÉ豸ʱ£¬ÄÚºËʹÓÃtry_module_get(dev->owner)È¥Ôö¼Ó¹ÜÀí´ËÉ豸µÄownerÄ£¿éµÄʹÓüÆÊý£»µ±²»ÔÙʹÓôËÉ豸ʱ£¬ÄÚºËʹÓÃmodule_put(dev->owner)¼õÉÙ¶Ô¹ÜÀí´ËÉ豸µÄownerÄ£¿éʹÓüÆÊý¡£ÕâÑù£¬µ±É豸ÔÚʹÓÃʱ£¬¹ÜÀí´ËÉ豸µÄÄ£¿é½«²»Äܱ»Ð¶ÔØ¡£Ö»ÓÐÉ豸²»ÔÙ±»Ê¹ÓÃʱ£¬Ä£¿é²ÅÔÊÐí±»Ð¶ÔØ
¿ª·¢ÈËÔ±ËùдµÄÇý¶¯Í¨³£ÊÇÖ§³ÖijÖÖ¾ßÌåÉ豸µÄownerÄ£¿é£¬¶Ô´ËÉ豸ownerÄ£¿éµÄ¼ÆÊý¹ÜÀíÓÐÄں˸üµ×²ãµÄ´úÂ루Èç×ÜÏßÇý¶¯»òÊÇ´ËÀàÉ豸¹«ÓõĺËÐÄÄ£¿é£©À´ÊµÏÖ£¬´Ó¶ø¼ò»¯ÁËÉ豸Çý¶¯µÄ¿ª·¢
 
±àÒë²½Ö裺ÏȽøÈëLinuxÄÚºËËùÔÚµÄĿ¼£¬²¢±àÒë³ö.oÎļþ£¬ÔËÐÐMODPOST»ØÉú³ÉÁÙʱµÄ.mod.cÎļþ£¬¶øºó¸ù¾Ý´ËÎļþ±àÒë³ö.mod.o£¬Ö®ºóÁ¬½Ó.oºÍ.mod.oµÃµ½Ä£¿éÄ¿±êÎļþ.ko£¬×îºóÀ뿪LinuxÄÚºËËùÔÚĿ¼
 
Èç¹ûÄ£¿é°üº¬¶à¸ö.cÎļþ£¨Èçfile1.c¡¢file2.c£©£¬MakefileÈçÏ£º
obj-m := modulename.o
module-objs := file1.o file2.o


Ïà¹ØÎĵµ£º

Linux iptableÎĵµ

×ÜÀÀ
ÓÃiptables -ADC À´Ö¸¶¨Á´µÄ¹æ
Ôò
£¬-AÌí¼Ó -Dɾ³ý -C ÐÞ¸Ä
iptables - [RI] chain rule num rule-specification[option]
ÓÃiptables - RI ͨ¹ý¹æÔòµÄ˳ÐòÖ¸¶¨
iptables -D chain rule num[option]
ɾ³ýÖ¸¶¨¹æÔò
iptables -[LFZ] [chain][option]
ÓÃiptables -LFZ Á´Ãû [Ñ¡Ïî]
iptables -[NX] chain
ÓÃ -NX ......

linux writeµÄÐÐΪ

´Ówrite()µ÷Ó÷µ»ØÊ±£¬ÄÚºËÒѾ­½«»º³åÇøËùÌṩµÄÊý¾Ýµ½Äں˵Ļº³åÇø£¬µ«ÊÇÎÞ·¨±£Ö¤Êý¾ÝÒѾ­Ð´³öµ½ÆäÔ¤¶¨µÄÄ¿µÄµØ¡£µÄÈ·£¬Ð´Èëµ÷Ó÷µ»ØµÄËÙ¶ÈʵÔÚÌ«¿ìÁË£¬¿ÉÄÜûÓÐʱ¼äÍê³É¸ÃÏîÄ¿µÄ¹¤×÷¡£´¦ÀíÆ÷ºÍÓ²ÅÌÖ®¼äµÄÐÔÄܲîÒìʹµÃ´ËÀàÁîÈËÍ·Í´µÄÐÐΪÏÔ¶øÒ×¼û¡£
ÊÂʵÉÏ£¬Èç¹ûÓû§¿Õ¼äÓ¦ÓóÌÐò·¢³öwrite()ϵͳµ÷Óã¬LinuxÄں˻áÏȽøÐÐÈ ......

linux ½ø³ÌÉÏÏÂÎĺÍÖжÏÉÏÏÂÎÄ


¶ÔLinuxÄÚºËÖнø³ÌÉÏÏÂÎĺÍÖжÏÉÏÏÂÎĵÄÀí½â
 
 
 
 
 
 
2010Äê3ÔÂ3ÈÕ 10:51  Î¬¿â¿ª·¢Íø  ×÷ ÕߣºÑî˶,»ªÇåÔ¶¼ûǶÈëʽѧԺ½²Ê¦
Äں˿ռäºÍÓû§¿Õ¼äÊDzÙ×÷ϵͳÀíÂ۵Ļù´¡Ö®Ò»£¬¼´Äں˹¦ÄÜÄ£¿éÔËÐÐÔÚÄں˿ռ䣬¶øÓ¦ÓóÌÐòÔËÐÐÔÚÓû§¿Õ¼ä¡£ÏÖ´úµÄCPU¶¼¾ßÓв»Í¬ ......

WindowsϵÄLinuxÐéÄâ»úÍøÂçÅäÖÃ

½ñÌìÔÚÐéÄâ»úÏÂÓÖ֨װÁËlinux£¬ÏÂÃæÊÇ´ÓÍøÉÏËѵ½µÄlinuxÐéÄâ»úµÄÍøÂçÅäÖãº
 
1¡¢ Äã×°ºÃÐéÄâ»úºó,Äã»á·¢ÏÖ¶à³öÀ´Á½¸öÍø¿¨ ,Ò»¸ö1,Ò»¸ö8,
2¡¢ ¹²Ïí¶ÔÍâµÄÍø¿¨£º“±¾µØÁ¬½Ó—ÊôÐÔ—¸ß¼¶” Ñ¡ÖÐ
   ÔÊÐíÆäËûÍøÂçÓû§Í¨¹ý´Ë¼ÆËã»úµÄInternetÁ¬½ÓÀ´Á¬½Ó
  £¨Õâʱ“ÔÊÐíÆäËûÍ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ