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
Ïà¹ØÎĵµ£º
scull×Ö·ûÇý¶¯Ñ§Ï°±Ê¼Ç
Ŀ¼
1 scullÇý¶¯¼ò½é
2 Ö÷´Î±àºÅ
3 scullÔ´Âë·ÖÎö
-------------------------
| 1 scullÇý¶¯¼ò½é |
-------------------------
scullÊÇÒ»¸ö× ......
scull µÄMakefile
Makefile½Å±¾ÈçÏÂËùʾ¡£
--------------------------------------------------------------------------------
KERNEL_MAKE := -C /home/zhoumin/hi3511/Hi3511_VSSDK_V1.1.2.1/pub/kbuild-LESS_REL
PWD := $(shell pwd ......
· linux²Ù×÷ϵͳÏÂcÓïÑÔ±à³ÌÈëÃÅ
(Ò»)Ŀ¼½éÉÜ
1)Linux³ÌÐòÉè¼ÆÈëÃÅ--»ù´¡ÖªÊ¶
2)Linux³ÌÐòÉè¼ÆÈëÃÅ--½ø³Ì½éÉÜ
3)Linux³ÌÐòÉè¼ÆÈëÃÅ--Îļþ²Ù×÷
4)Linux³ÌÐòÉè¼ÆÈëÃÅ--ʱ¼ä¸ÅÄî
5)Linux³ÌÐòÉè¼ÆÈëÃÅ--ÐźŴ¦Àí
6)Linux³ÌÐòÉè¼ÆÈëÃÅ--ÏûÏ¢¹ÜÀí
7)Linux³ÌÐòÉè¼ÆÈëÃÅ--Ïß³Ì ......
×¢£º 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 ......
3)Linux³ÌÐòÉè¼ÆÈëÃÅ--Îļþ²Ù×÷
LinuxÏÂÎļþµÄ²Ù×÷
ǰÑÔ:
ÎÒÃÇÔÚÕâÒ»½Ú½«ÒªÌÖÂÛlinuxÏÂÎļþ²Ù×÷µÄ¸÷¸öº¯Êý.
ÎļþµÄ´´½¨ºÍ¶Áд
ÎļþµÄ¸÷¸öÊôÐÔ
Ŀ¼ÎļþµÄ²Ù×÷
¹ÜµÀÎļþ
----------------------------------------------------------------------------
----
1¡£ÎļþµÄ´´½¨ºÍ¶Áд
ÎÒ¼ÙÉèÄãÒѾ֪µÀÁ˱ ......