ת LinuxÉ豸Çý¶¯³ÌÐòÖ®¶ÁÊé±Ê¼Ç
LinuxÉ豸Çý¶¯³ÌÐòÖ®¶ÁÊé±Ê¼Ç£¨Ò»£©
——µÚÈýÕÂ×Ö·ûÉ豸Çý¶¯³ÌÐò
¡ð¡¢ËµÃ÷
±Ê¼ÇÊÊÓÃÓÚLinuxµÄ2.6.10ÒÔºóµÄÄںˡ£
±Ê¼ÇÒÔLinux Device Driver3ÌṩµÄscull³ÌÐò(scullĿ¼ÖеÄmain.cºÍscull.h)Ϊ¼Ç¼Ö÷Ïߣ¬²¢ÒÔ¸ÃÇý¶¯³ÌÐòÖеĸ÷ÖÖϵͳµ÷Óúͺ¯Êýµ÷ÓÃÁ÷³ÌΪ¼Ç¼˳Ðò¡£±ÈÈ磬module_init( )ºÍmodule_exit( )ΪÏà¶ÔÓ¦µÄÒ»¶Ôϵͳµ÷Óã¬Ò»°ãÊé¼®Öж¼»á·ÅÔÚÒ»ÆðÌÖÂÛ£¬µ«ÊDZ¾±Ê¼ÇÈ´²»»áÕâÑù£¬¶øÊÇÔÚÐèÒªµ÷ÓõÄʱºò²Å»áÉæ¼°£¬Òò´Ëmodule_init( )»á·ÅÔڱʼǿªÊ¼Ê±£¬Ò²¾ÍÊǸռÓÔØmoduleʱÌÖÂÛ£¬¶ømodule_exit( )Ôò»á·ÅÔڱʼǽáÊøÇ°£¬Ò²¾ÍÊÇÒªÐ¶ÔØmoduleʱÔÙ¼ÓÒÔÌÖÂÛ¡£
¸Ã±Ê¼ÇµÄµÄÄ¿µÄÊÇΪÁ˶ÔLinux Device Drvier3ÖÐÌáµ½µÄ¸÷¸ö֪ʶµã×÷Ò»ÏÂÕûÀí£¬ÀíÇåÒ»ÏÂÍ·Ð÷£¬´Ó¶øÄÜÈÃÎÒ¶ÔLinuxÇý¶¯³ÌÐò¼ÓÉîÕûÌå»òÕßÈ«¾ÖÉϵÄÀí½â¡£
×¢£º¸öÈËÀí½â£¬ÓÐÎóÄÑÃ⣡—— ±ÊÕߣº²ÜÈÙÈÙ
*******************************************
Çý¶¯³ÌÐòmoduleµÄ¹¤×÷Á÷³ÌÖ÷Òª·ÖΪËĸö²¿·Ö£º
1¡¢ ÓÃLinuxÌṩµÄÃüÁî¼ÓÔØÇý¶¯module
2¡¢ Çý¶¯moduleµÄ³õʼ»¯£¨³õʼ»¯½áÊøºó¼´½øÈë“DZ·ü”״̬£¬Ö±µ½ÓÐϵͳµ÷Óã©
3¡¢ µ±²Ù×÷É豸ʱ£¬¼´ÓÐϵͳµ÷ÓÃʱ£¬µ÷ÓÃÇý¶¯moduleÌṩµÄ¸÷¸ö·þÎñº¯Êý
4¡¢ Ð¶ÔØÇý¶¯module
Ò»¡¢ Çý¶¯³ÌÐòµÄ¼ÓÔØ
LinuxÇý¶¯³ÌÐò·ÖΪÁ½ÖÖÐÎʽ£ºÒ»ÖÖÊÇÖ±½Ó±àÒë½øÄںˣ¬ÁíÒ»ÖÖÊDZàÒë³ÉmoduleÐÎʽ£¬È»ºóÔÚÐèÒª¸ÃÇý¶¯moduleʱÊÖ¶¯¼ÓÔØ¡£¶ÔÓÚǰÕߣ¬»¹Óдýѧϰ¡£
ModuleÐÎʽµÄÇý¶¯£¬LinuxÌṩÁËÁ½¸öÃüÁîÓÃÀ´¼ÓÔØ£ºmodprobeºÍinsmod¡£
ÆäÖÐmodprobe¿ÉÒÔ½â¾öÇý¶¯moduleµÄÒÀÀµÐÔ£¬¼´¼ÙÈçÕý¼ÓÔØµÄÇý¶¯moduleÈôÒýÓÃÁËÆäËûmoduleÌṩµÄÄں˷ûºÅ»òÕ߯äËû×ÊÔ´£¬Ôòmodprobe¾Í»á×Ô¶¯¼ÓÔØÄÇЩmodule£¬²»¹ý£¬Ê¹ÓÃmodprobeʱ£¬±ØÐë°ÑÒª¼ÓÔØµÄÇý¶¯module·ÅÔÚµ±Ç°Ä£¿éËÑË÷·¾¶ÖС£¶øinsmodÃüÁî²»»á¿¼ÂÇÇý¶¯moduleµÄÒÀÀµÐÔ£¬µ«ÊÇËüÈ´¿ÉÒÔ¼ÓÔØÈÎÒâĿ¼ÏµÄÇý¶¯module¡£
Ò»°ãÀ´Ëµ£¬ÔÚÇý¶¯¿ª·¢½×¶Î£¬Ê¹ÓÃ/sbin/insmod±È½Ï·½±ã£¬ÒòΪ²»Óý«module·ÅÈ뵱ǰmoduleËÑË÷·¾¶ÖС£
Ò»µ©Ê¹ÓÃinsmod¼ÓÔØÄ£¿é£¬ÔòLinuxÄں˾ͻáµ÷ÓÃmodule_init(scull_init_module)ÌØÊâºê£¬ÆäÖÐscull_init_moduleÊÇÇý¶¯³õʼ»¯º¯Êý£¬¿É×Ô¶¨ÒåÃû³Æ¡£
ÔÚÓÃinsmod¼ÓÔØmoduleʱ£¬»¹¿ÉÒÔ¸ømoduleÌṩģ¿é²ÎÊý£¬µ«ÊÇÕâÐèÒªÔÚÇý¶¯Ô´´úÂëÖмÓÈ뼸ÌõÓï¾ä£¬ÈÃÄ£¿é
Ïà¹ØÎĵµ£º
×ÜÀÀ
ÓÃ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 ......
1 Scilab ÏÖÔÚÓÉ Scilab
лáά»¤µÄ¿ª·ÅÔ´´úÂëµÄ¿ÆÑ§¼ÆËãÈí¼þ¡£Ëü¾ßÓоØÕóÔËËã¡¢ÊýÖµÔËËã¡¢ÐźŴ¦Àí¡¢³ÌÐòÉè¼ÆµÈ¹¦ÄÜ£¬Ä¿Ç°Òѱ»¹ã·ºÓ¦ÓÃÓÚ½ÌÓý¡¢¿ÆÑк͹¤Òµ¡£Äã¿ÉÒÔÓÃËüÀ´Ìæ´úÊշѵÄmatlab¡£http://www.scilab.org/
2 Stellarium
ÊÇÒ»¿îÐÇÏó¹Û²âÄ£ÄâÈí¼þ¡£Ä¿Ç°È«ÇòÓÐÐí¶àÌìÎİ®ºÃÕߺͽÌÊÚÌìÎÄѧµÄ½ÌʦÃÇÔÚÊ¹Ó ......
ÔÚÔĶÁGNU/LinuxÄں˴úÂëʱ£¬ÎÒÃÇ»áÓöµ½Ò»ÖÖÌØÊâµÄ½á¹¹³õʼ»¯·½Ê½¡£¸Ã·½Ê½ÊÇijЩC½Ì²Ä£¨ÈçÌ·¶þ°æ¡¢K&R¶þ°æ£©ÖÐûÓнéÉܹýµÄ¡£ÕâÖÖ·½Ê½³ÆÎªÖ¸¶¨³õʼ»¯£¨designated initializer£©¡£ÏÂÃæÎÒÃÇ¿´Ò»¸öÀý×Ó£¬Linux-2.6.x/drivers/usb/storage/usb.cÖÐÓÐÕâÑùÒ»¸ö½á¹¹Ìå³õʼ»¯ÏîÄ¿£º
static struct usb_driver usb_storage_dri ......
Íê³É±¾ÎÄ£¬Ê¹ÓÃÁËÁ½¸ö¹¤¾ß
1. strace
2. google code search
.
----
swap·ÖÇøÓÐÒ»¸ö´óСΪPAGE_SIZEµÄÒ³Ãæ£¬³ÆÎªsignatureÒ³£¬ÉÏÃæ¼Ç¼swap·ÖÇøµÄ»ù±¾ÐÅÏ¢¡£
static struct swap_header_v1 {
char bootbits[1024]; /* Space for disklabel etc. */
unsigned int version;
......