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

ת 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Ìṩģ¿é²ÎÊý£¬µ«ÊÇÕâÐèÒªÔÚÇý¶¯Ô´´úÂëÖмÓÈ뼸ÌõÓï¾ä£¬ÈÃÄ£¿é


Ïà¹ØÎĵµ£º

linux ÃÜÂë»ØÏÔ

Ò»£¬Ð÷ÂÛ
1.¿ÎÌâ±³¾°
LinuxÏÂÓÐϵͳÌṩµÄgetpass()º¯Êý£¬¿ÉÓÉÓÚдµÄʱºòÌ«ÔçÁË£¬Ö»Ö§³Ö8λ×Ö·û£¬Í¬Ê±Óа²È«Òþ»¼£¨Òç³ö£¡£©£¬Linux³öÓÚ¶ÔÃÜÂëµÄ±£ÃÜ£¬ÊäÈëµÄ×Ö·ûÊDz»»áÏÔʾµ½ÆÁÄ»Éϵġ£Ôڵǽº¯ÊýºÍÃÜÂëÐ޸ĺ¯ÊýÄÚ¶¼Ã»ÓÐÌṩÃÜÂë»ØÏÔÌáʾ£¬µ«ÊÇ´ËÉè¼Æ¶ÔÓÚÒ»°ãµÄ×ÀÃæ¼¶Ó¦Óõijõ¼¶Óû§´øÀ´ÁËÒ»¶¨µÄÂé·³£¬¶øÇÒ£¬Ã»ÓÐÈκÎÃÜÂë ......

2.6°æLinuxÄں˽ṹÌåÖ¸¶¨³õʼ»¯

ÔÚÔĶÁGNU/LinuxÄں˴úÂëʱ£¬ÎÒÃÇ»áÓöµ½Ò»ÖÖÌØÊâµÄ½á¹¹³õʼ»¯·½Ê½¡£¸Ã·½Ê½ÊÇijЩC½Ì²Ä£¨ÈçÌ·¶þ°æ¡¢K&R¶þ°æ£©ÖÐûÓнéÉܹýµÄ¡£ÕâÖÖ·½Ê½³ÆÎªÖ¸¶¨³õʼ»¯£¨designated initializer£©¡£ÏÂÃæÎÒÃÇ¿´Ò»¸öÀý×Ó£¬Linux-2.6.x/drivers/usb/storage/usb.cÖÐÓÐÕâÑùÒ»¸ö½á¹¹Ìå³õʼ»¯ÏîÄ¿£º
static struct usb_driver usb_storage_dri ......

¡¾Linux½»»»·ÖÇø¡¿ ½»»»·ÖÇø¸ñʽdzÎö

Íê³É±¾ÎÄ£¬Ê¹ÓÃÁËÁ½¸ö¹¤¾ß
 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;
......

LinuxÉÏ´ò°üwgzºÍwgt widgetÏîÄ¿

shell½Å±¾Ô´Âë: widget.sh #!/bin/bash
####################±äÁ¿¶¨Òå####################
shellroot=/var/shell
shdir=${shellroot}/sh
source_dir=${shellroot}/source
tmp_dir=${shellroot}/temp
target_dir=${shellroot}/target
js_dir=${shellroot}/js
##################³ ......

Windows/linux˫ϵͳµÄʱ¼äÐÞ¸ÄÎÊÌâ

    ÓÉÓÚÁ½¸öϵͳÉ趨ʱ¼äʱÒÔÖ÷°åCMOSÄÚµÄʱ¼äΪÒÀ¾Ý£¬µ«È´Óв»Í¬µÄʱ¼ä¼ÆËã±ê×¼¡£ËùÒÔµ¼ÖÂÁËϵͳʱ¼äµÄ¾À·×ÎÊÌâ¡£
    LinuxºÍÆ»¹û²Ù×÷ϵͳÒÔµ±Ç°Ö÷°åCMOSÄÚʱ¼ä×öΪ¸ñÁÖÍþÖαê׼ʱ¼ä£¬ÔÙ¸ù¾ÝϵͳÉèÖõÄÊ±ÇøÀ´×îÖÕÈ·¶¨µ±Ç°ÏµÍ³Ê±¼ä£¨ÈçÊ±ÇøÉèÖÃΪGMT+08:00±±¾©Ê±¼äʱÒÔ¼°µ±Ç°CMOSʱ¼äΪ03 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ