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
Ïà¹ØÎĵµ£º
×òÌìÔÚ±àдһ¸ö³ÌÐòµÄʱºò·¢ÏÖÐèÒªÁ´½ÓµÄ¾²Ì¬¿â¶¼È·¶¨´æÔÚ£¬Ö¸¶¨µÄ·¾¶Ò²Ã»ÓÐÎÊÌ⣬µ«ÊDZàÒë×ÜÊdzöÏÖÁ´½ÓÎÊÌ⣬ÕÒ²»µ½ÊµÏÖ£¬²Å·¢ÏÖÔÀ´Èç¹ûͬʱÁ´½Ó¶à¸ö¾²Ì¬¿â£¬²¢ÇÒÈç¹ûÕâЩ¾²Ì¬¿âÖ®¼ä´æÔÚÏ໥ÒÀÀµ¹ØÏµµÄ»°£¬ÐèÒª°´Ò»¶¨µÄ˳Ðò½øÐÐÁ´½Ó£¬ÀýÈ磺Èç¹ûlibb.aÒÀÀµliba.a£¬ÄÇô±àÒë²ÎÊýÓ¦¸Ãд³ÉÕâÑù£º -lb -la ......
1£¬Çý¶¯³ÌÐòÈë¿ÚºÍ³ö¿Úµã
module_init£ºÇý¶¯³ÌÐò³õʼ»¯Èë¿Úµã£¬º¯ÊýÔÐÍ£ºmodule_init ( x)£¬xΪÆô¶¯Ê±»ò²åÈëÄ£¿éʱҪÔËÐеĺ¯Êý¡£Èç¹ûÔÚÆô¶¯Ê±¾ÍÈ·ÈϰÑÕâ¸öÇý¶¯³ÌÐò ²åÈëÄں˻òÒÔ¾²Ì¬ÐγÉÁ´½Ó£¬Ôòmodule_init ½«Æä³õʼ»¯Àý³Ì¼ÓÈëµ½"__initcall.int"´úÂë¶Î£¬·ñÔò½«ÓÃinit_module·â×°Æä³õʼ»¯Àý³Ì£¬ÒÔ±ã¸ÃÇý¶¯³ÌÐò×÷Ϊģ¿éÀ ......
ÔÚLinuxϵͳÖУ¬ÖÕ¶ËÉ豸·Ç³£ÖØÒª£¬Ã»ÓÐÖÕ¶ËÉ豸£¬ÏµÍ³½«ÎÞ·¨ÏòÓû§·´À¡ÐÅÏ¢£¬LinuxÖаüº¬¿ØÖÆÌ¨¡¢´®¿ÚºÍαÖÕ¶Ë3ÀàÖÕ¶ËÉ豸¡£
14.1ÖÕ¶ËÉ豸
ÔÚLinuxϵͳÖУ¬ÖÕ¶ËÊÇÒ»ÖÖ×Ö·ûÐÍÉ豸£¬ËüÓжàÖÖÀàÐÍ£¬Í¨³£Ê¹ÓÃttyÀ´¼ò³Æ¸÷ÖÖÀàÐ͵ÄÖÕ¶ËÉ豸¡£ttyÊÇTeletypeµÄËõд£¬TeletypeÊÇ×îÔç³öÏÖµÄÒ»ÖÖÖÕ¶ËÉ豸£¬ ......
±¾È˲Ù×÷ϵͳ»·¾³ÊÇUBUNTU 8.04 ÔÚ³¬¼¶È¨ÏÞϰ²×°³É¹¦,½ö¹©²Î¿¼(ǰÌáµÃ°²×°Linux °æ±¾JDK)
»ù±¾½éÉÜ:
Tomcat
ÊÇÒ»¸öÃâ·ÑµÄ¿ªÔ´µÄSerlvetÈÝÆ÷£¬ËüÊÇApache»ù½ð»áµÄJakartaÏîÄ¿ÖеÄÒ»¸öºËÐÄÏîÄ¿£¬ÓÉApache£¬SunºÍÆäËüһЩ¹«Ë¾¼°¸öÈ˹²Í¬¿ª·¢¶ø³É¡£ÓÉÓÚÓÐÁËSunµÄ²ÎÓëºÍÖ§³Ö£¬×îеÄServletºÍJsp¹æ·¶×ÜÄÜÔÚTomcatÖ ......
ת×Ô:http://blog.163.com/haizai219@126/blog/static/44412555200962751636461/
inuxÏÂJDKºÍTomcatµÄ°²×°
Tomcat
2009-07-27 17:16:36
ÔĶÁ503
ÆÀÂÛ0
×ֺţº´ó
ÖÐ
С
1.
²Î¿¼£º
l   ......