linux 2.4 ºÍ2.6 ÄÚºËÇø±ð
Ëæ×ÅLinux2.6µÄ·¢²¼£¬ÓÉÓÚ2.6ÄÚºË×öÁ˽̵ĸ͝£¬¸÷¸öÉ豸µÄÇý¶¯³ÌÐòÔÚ²»Í¬³Ì¶ÈÉÏÒª
½øÐиÄд¡£ÎªÁË·½±ã¸÷λLinux°®ºÃÕßÎÒ°Ñ×Ô¼ºÕû
ÀíµÄÕâ·ÖÎĵµshare³öÀ´¡£¸ÃÎĵ±ÁоÙ
ÁË2.6ÄÚºËͬÒÔǰ°æ±¾µÄ¾ø´ó¶àÊý±ä»¯£¬¿ÉϧµÄÊÇÓÉÓÚʱ¼äºÍ¾«Á¦ÓÐÏÞûÓÐÏêϸÁгö¸÷¸ö
º¯ÊýµÄÓÃ
·¨¡£
ÌØ±ðÉùÃ÷£º¸ÃÎĵµÖеÄÄÚÈÝÀ´×Ôhttp://lwn.net£¬¸ÃÍøÒ²ÉÏÒ²Óи÷¸öº¯ÊýµÄ½ÏΪÏêϸµÄ
˵Ã÷¿É¹©¸÷λ²Î¿¼¡£Èç¹ûÐèÒª¸ÃÎĵµµÄ
word°æµÄÅóÓÑ£¬Çëmailµ½weiriver@sohu.comË÷
È¡¡£
1¡¢ ʹÓÃеÄÈë¿Ú
±ØÐë°üº¬
<linux/init.h>
module_init(your_init_func);
module_exit(your_exit_func);
ÀÏ
°æ±¾£ºint init_module(void);
void cleanup_module(voi);
2.4ÖÐÁ½ÖÖ¶¼¿ÉÒÔÓ㬶ÔÈçºó
ÃæµÄÈë¿Úº¯Êý²»±ØÒªÏÔʾ°üº¬ÈκÎÍ·Îļþ¡£
2¡¢ GPL
MODULE_LICENSE("Dual BSD/GPL");
Àϰæ
±¾£ºMODULE_LICENSE("GPL");
3¡¢ Ä£¿é²ÎÊý
±ØÐëÏÔʽ°üº¬<linux/moduleparam.h>
module_param(name,
type, perm);
module_param_named(name, value, type, perm);
²ÎÊý¶¨Òå
module_param_string(name,
string, len, perm);
module_param_array(name, type, num, perm);
Àϰæ
±¾£ºMODULE_PARM(variable,type);
MODULE_PARM_DESC(variable,type);
4¡¢
Ä£¿é±ðÃû
MODULE_ALIAS("alias-name");
ÕâÊÇÐÂÔöµÄ£¬ÔÚÀϰ汾ÖÐÐèÔÚ/etc/modules.confÅäÖã¬
ÏÖÔÚÔÚ´úÂëÖоͿÉÒÔʵÏÖ¡£
5¡¢ Ä£¿é¼ÆÊý
int try_module_get(&module);
module_put();
ÀÏ
°æ±¾£ºMOD_INC_USE_COUNT ºÍ MOD_DEC_USE_COUNT
6¡¢ ·ûºÅµ¼³ö
Ö»ÓÐÏÔʾµÄµ¼³ö·ûºÅ²ÅÄܱ»ÆäËûÄ£¿éʹ
Óã¬Ä¬Èϲ»µ¼³öËùÓеķûºÅ£¬²»±ØÊ¹ÓÃEXPORT_NO
_SYMBOLS
Àϰ屾£ºÄ¬Èϵ¼³öËùÓеķûºÅ£¬³ý·ÇʹÓÃ
EXPORT_NO_SYMBOLS
7¡¢ Äں˰汾¼ì²é
ÐèÒªÔÚ¶à¸öÎļþÖаüº¬<linux/module.h>ʱ£¬²»±Ø¶¨Òå
__NO_VERSION__
Àϰ汾£ºÔÚ¶à¸öÎļþÖаüº¬<linux/module.h>ʱ£¬³ýÔÚÖ÷ÎļþÍâµÄÆäËûÎļþÖбØÐ붨Òå_
_NO_VERSION__£¬
·ÀÖ¹°æ±¾Öظ´¶¨Òå¡£
8¡¢ É豸ºÅ
kdev_t±»·Ï³ý²»¿ÉÓã¬ÐµÄdev_tÍØÕ¹µ½ÁË32룬12λÖ÷É豸ºÅ£¬20λ´ÎÉ豸ºÅ¡£
unsigned
int iminor(struct inode *inode);
unsigned int imajor(struct inode
*inode);
Àϰ汾£º8λÖ÷É豸ºÅ£¬8λ´ÎÉ豸ºÅ
int MAJOR(kdev_t dev);
int
MINOR(kdev_t dev);
9¡¢ ÄÚ´æ·ÖÅäÍ·Îļþ±ä¸ü
ËùÓеÄÄÚ´æ·ÖÅ亯Êý°üº¬ÔÚÍ·ÎÄ
¼þ&l
Ïà¹ØÎĵµ£º
linuxÃüÁîÐÐÏÂÓÃFetion·ÉÐÅ·¢ËÍÃâ·Ñ¶ÌÐÅ
Ò»¡¢×îа汾2009
ͨ¹ýlinuxÃüÁîÐÐÀ´·¢ËͶÌÐŵķ½·¨£¬¾õµÃÉõÊǺÃÓã¬ÊÊÓÃÔËά¼à¿Ø¡£ÕâÀïÏò´ó¼ÒÍÆ¼öµÄÊÇ·ÉÐÅ»úÆ÷È˵ÄÈí¼þ£¬Ö§³Ölinux¡¢ÃüÁîÐÐϵķÉÐÅ¡¢ÍêÈ«Ãâ·Ñ£¨Ä¿Ç°ÎªÖ¹£©£» ¹ÙÍøµØÖ·£º http://www.it-adv.net/
»·¾³ debian lenny
ÏÂÔØ×îÐÂlinux°æ±¾¿Í»§¶Ë http://bbs.it-ad ......
Ò».È¥³ýembedded linux µÄ¿ª»ú¹â±ê:
¡¡ÔÚÄں˵ĵ±Ç°Ä¿Â¼½øÈëµ½drivers/video/console/fbcon.cÎļþ
¡¡½«static void fb_flashcursor(void *private) ÀïµÄÄÚÈÝ×¢Ê͵ô,ʹ֮±ä³É¿Õº¯Êý
¶þ.ÉèÖÃLINUXÄÚºËÆô¶¯LOGO
(1)ÈÃÄÚºËÖ§³ÖÆô¶¯LOGO
ÔÚÄÚºËĿ¼ÖÐ ......
ǰÑÔ£ºÎÒ¾õµÃÎÒµÄÎÄÕÂÏà¶ÔÀ´Ëµ¶¼ÊDZȽÏdzÏԵġ£Ò»Ð©³õѧÕß¿ÉÒÔ¿´¿´£¬¶ÔÓÚ¸ßÊÖÀ´Ëµ£¬Èç¹ûÄãÃDz»ÁߨÄʱ¼äµÄ»°£¬Ï£ÍûÒ²ÄܰïÎÒ¿´¿´£¬Ö¸µãÒ»ÏÂÆäÖеĴíÎó¡£ÕâÒ²ÊÇÎÒµ½ÕâÀïÀ´ºÍ´ó¼Ò½»Á÷µÄÄ¿µÄ¡£
ÔĶÁLinuxÄÚºËÆô¶¯´úÂëµÄÖ±½Ó¶¯Á¦ÊÇÎÒÏë±àдRTL8019ASµÄÍø¿¨Çý¶¯³ÌÐò£¨2.4.18ÄÚºËÖ»Ö§³ÖÁËCS8900A£©¡£¼ÈȻҪдÇý¶¯£¬ÎÒ¾ÍÏëÖªµÀËüÊÇÔ ......
ÐéÄâ»úµÄÍøÂç²ÉÓÃBridged(ÇŽÓ)·½Ê½£¬¸Õ¿ªÊ¼ÒÔΪ£¬ÊÇÒòΪ»úÆ÷ÉϵÄÓÐÐ©Íø¿¨Ã»ÓÐÁ¬½ÓµçÀ£¬¶øVMWareÓÖÇ¡ºÃʹÓÃÁ˸ÃÍø¿¨£¬¾¹ý¼¸¸öСʱµÄ²âÊÔ£¬Í¨¹ý½ûÓÃûÁ¬ÏßµÄÍø¿¨¡¢°ÑVMWareµÄVM0Ó³Éäµ½Á¬ÏߵįäËûÍø¿¨£¬¶¼Ã»Óнâ¾öÎÊÌâ¡£
ÔÚVMÐéÄâ»úÖÐ×°ÁËredhatlinux9.0£¬×¼±¸ÓëÖ÷»ú¹²ÏíÎļþ£¬½á¹ûÍøÂ粻ͨ£¡
&n ......