Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB
ÈÈÃűêÇ©£º c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 ×îÐÂÎÄÕ : linux

Mr. ProcessµÄÒ»Éú£­LinuxÄں˵ÄÉç»áÊÓ½Ç (2)Æô¶¯

ÆäʵÕâ²ÅÓ¦¸ÃÊÇÕâһϵÁÐÎÄÕµĵÚÒ»½Ú£¬ÒòΪÕâÆªÎÄÕ½²µÄÊÇÅ̹ſªÌìµØµÄÊ¡£»°ËµMr.
ProcessÊÇÒ»¸öÏÖ´úÈË£¬µ«ÊÇ£¬Ö»ÒªÊÇÈË£¬×ܸÃÓиö׿ÏÈ¡£ÈËÃÇ×ÜÏëÖªµÀ×Ô¼º´ÓÄÄÀ´£¬È»ºó²Å¿ÉÒÔ¹ÀÃþËãÒ»ÏÂ×Ô¼º½«È¥ÏòºÎ·½¡£ËùÒÔÔÛÒ²ÒªÁ˽âÒ»ÏÂ
LinuxµÄÊÀ½çÀïÈËÀàµÄÆðÔ´¡£
ͼ1£º´ÓÉϵ絽BIOS
°´ÏµçÔ´¿ª¹ØµÄÄǸöÕæÊµµÄÈ˾ÍÊÇLinuxÊÀ½çÀïµÄÉϵۣ¬Ëû´´ÔìÁËLinuxÊÀ½çµÄÒ»ÇС£µ±Ëû°´Ï»úÏäÉϵĵçÔ´¿ª¹ØÊ±£¬Ö÷°å¿ªÊ¼¹©µç£¬CPUÉϵÄ
Reset
Pin±»À­¸ß£¬Õâ»áÒýÆðCPUµÄһϵÁж¯×÷£¬ÕâЩ¶¯×÷ÊÇоƬÉè¼ÆÊ±¾Í¾ö¶¨µÄ¡£CPUÖеÄһЩ¼Ä´æÆ÷±»ÖÃΪ¹Ì¶¨µÄÖµ£¬ÒòΪÕâЩ¼Ä´æÆ÷¿ÉÄÜÔÚÆô¶¯µÄ¹ý³ÌÖÐҪʹ
Ó㬱ÈÈçCS£¨´úÂë¶Î¼Ä´æÆ÷£©ºÍEIP£¨Ö¸ÕëÖ¸Áî¼Ä´æÆ÷£©¡£ÕâÒ»²½Íê³ÉÖ®ºó£¬CPU¾Í¿É¿ªÖ´ÐеØÖ·Îª0xfffffff0ÀïµÄROMÖеijÌÐò¡£Õâ¶Î³ÌÐò¾Í
ÊÇBIOS(Basic Input Output System)¡£
BIOSÍê³ÉÏÂÃæµÄ¹¦ÄÜ£º
1.POST£¨Power-On Self Test£©£º¹ËÃû˼Ãû£¬¾ÍÊDzé²éÓÐʲôÉ豸£¬ÕâЩÉ豸ÊDz»ÊÇÕý³£¡£ÒªÊÇCPUÓÐAdvanced
Configuration and Power Interface(ACPI
)µÄÖ§³Ö£¬Ò²ÔÚÕâ¸öʱºò½øÐС£ACPIÊÇÓÃÀ´¶ÔµçÔ´½øÐйÜÀíµÄ£¬ÓÃÀ´½ÚµçÖ®ÀàµÄ¡£
2.³õʼ»¯É豸£ºÈ·±£Ã»ÓÐIRQºÍIO³åÍ»¡£
3.ѰÕÒOS/Bootloader¡£ÕâÒ»²½ºóÃæµãÔÙÏ¸Ë ......

Linux϶àÏß³Ì(pthread)±à³ÌʵÀý

LinuxϵͳϵĶàÏß³Ì×ñÑ­POSIXÏ߳̽ӿڣ¬³ÆÎª pthread¡£±àдLinuxϵĶàÏ̳߳ÌÐò£¬ÐèҪʹÓÃÍ·Îļþpthread.h£¬Á¬½ÓʱÐèҪʹÓÿâlibpthread.a¡£Ë³±ã˵һÏ£¬Linux ÏÂpthreadµÄʵÏÖÊÇͨ¹ýϵͳµ÷ÓÃclone£¨£©À´ÊµÏֵġ£clone£¨£©ÊÇ LinuxËùÌØÓеÄϵͳµ÷Óã¬ËüµÄʹÓ÷½Ê½ÀàËÆfork£¬¹ØÓÚclone£¨£©µÄÏêϸÇé¿ö£¬ÓÐÐËȤµÄ¶ÁÕß¿ÉÒÔÈ¥²é¿´ÓйØÎĵµËµÃ÷¡£ÏÂÃæÎÒÃÇչʾһ¸ö×î¼òµ¥µÄ¶àÏ̳߳ÌÐò pthread_create.c¡£
Ò»¸öÖØÒªµÄÏ̴߳´½¨º¯ÊýÔ­ÐÍ£º
#include <pthread.h>
int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict attr, void *(*start_rtn)(void),void *restrict arg);
    ·µ»ØÖµ£ºÈôÊdzɹ¦½¨Á¢Ï̷߳µ»Ø0,·ñÔò·µ»Ø´íÎóµÄ±àºÅ
    ÐÎʽ²ÎÊý£º
                pthread_t *restrict tidp Òª´´½¨µÄÏ̵߳ÄÏß³ÌidÖ¸Õë
                const pthread_attr_t *restrict attr ´´½¨Ïß³ÌʱµÄÏß³ÌÊôÐÔ
        &nbs ......

²Ã¼õ Linux ǶÈëʽϵͳ£º·½·¨ÓëʵÀý

Ô­PDF£º ¡¶縮減 LinuxǶÈëʽϵ統軟體: ·½·¨與實Àý ¡·
×÷ÕߣºÁºÔª±ë ÁÖÓ¯´ï
Áõ½¨ÎÄÕûÀí£¨http://blog.csdn.net/keminlau £©
KEY£ºÇ¶Èëʽ²Ù×÷ϵͳ ²Ã¼õ linux embedded
¹úÁ¢½»Í¨´óѧ×ÊѶ¿ÆÑ§Ïµ
300 ÐÂÖñÊдóѧ· 1001 ºÅ
Tel: 03-5712121 ext. 56667 Fax: 03-5712121 ext. 59263 {upleong £¬ ydlin}@cis.nctu.edu.tw ÁªÂçÈË : ÁºÔª±ë
ÕªÒª
¿ªÔ´£¨¿ª·ÅÔ´´úÂ룩µÄѸËÙ·¢Õ¹£¬ÕýÖð²½ÉøÍ¸ÖÁǶÈëʽÁìÓò£¬Á½ÕߵĽáºÏ½«³ÉΪºó¸öÈ˵çÄÔʱ´úÖм«ÎªÖØÒªµÄÒ»»·¡£Ê×ÏÈÎÒÃÇÔÚ´Ë̽ÌÖʹÓà Linux ×÷ΪǶÈëʽ²Ù×÷ϵͳµÄ·½·¨£¬Í¸¹ýÈçºÎ¶ÔÄÚºË (kernel) £¬ÊØ»¤½ø³Ì (daemons) £¬³ÌÐò¿â (libraries) ºÍÓ¦ÓóÌÐò (applications / utilities) µÈËĸöÖ÷Òª²¿·Ý£¬½øÐвüõÆä´óСºó£¬ÒÔ±ãÅäÖÃÔÚÒÔÉÁ´æÎª´¢´æÉ豸µÄǶÈëʽϵͳÖС£½Ó×ÅÒÔÌṩ VPN ¡¢·À»ðǽ¡¢ÈëÇÖÕì²âϵͳ (IDS) µÈ¹¦Äܵİ²È«Íø¹Ø [1] ×÷ΪÀý×Ó£¬ËµÃ÷ÈçºÎ½¨Á¢Ò»¸öÍêÕûµÄǶÈëʽ Linux ϵͳ¡£×îºóÎÒÃǰÑÓµÓÐÒÔÉÏËùÓй¦Äܵİ²È«Íø¹Ø£¬´ÓʹÓà Redhat µÄϵͳ ( Ô¼ 1.3 GBytes) ÒÔ¼°¶îÍâµÄ RPM Èí¼þ°ü ( Ô¼ 15 Mbytes) £¬³É¹¦²Ã¼õϵͳ ÖÁ 19 Mbytes ¡£¾­Ñ¹ËõΪ 7 Mbytes ºó£¬ÖÃÓÚÅ䱸 64M ......

linux I2CÇý¶¯·ÖÎö

I2CÊÇPhillips¿ª·¢µÄ2ÏߵĴ®ÐÐ×ÜÏßЭÒ顣ͨ³£Ó¦ÓÃÔÚǶÈëʽϵͳÖÐÈò»Í¬µÄ×é¼þͨÐÅ£¬PCÖ÷°å¿ÉÒÔͨ¹ýI2CÀ´Ó벻ͬµÄ´«¸ÐÆ÷ͨÐÅ¡£ÕâЩ´«¸ÐÆ÷ͨ³£±¨¸æ·çÉÈËÙ¶È£¬´¦ÀíÆ÷ζȺÍÕû¸öÓ²¼þϵͳµÄÐÅÏ¢£¬Õâ¸öЭÒéÒ²¿ÉÒÔÓÃÔÚRAM chipsÉÏ£¬Ïò²Ù×÷ϵͳÌṩDIMMµÄÐÅÏ¢¡£
ÔÚ2.0ʱI2CµÄkernelÔ´Âë²»ÔÚÄÚºËÀïµÄ£¬2.4Äں˰üÀ¨ÁËÒ»µã¶ÔI2CµÄÖ§³Ö£¬Ö÷ÒªÊÇÊÓÆµÇý¶¯¡£
ÔÚ2.6ÄÚºËÀ´óÁ¿µÄI2C´úÂë¼ÓÈëµ½ÁËÄÚºËÀï¡£¸ÐлºÜ¶àÄں˿ª·¢ÕßµÄŬÁ¦£¬ËûÃÇÈýӿڸüÈÝÒ×±»ÄÚºËÉçÇø½ÓÊÜ¡£ÓÐЩÇý¶¯ÈÔÔÚÍⲿµÄCVSÊ÷ÀûÓзÅÈëkernel.orgÀµ«ÊÇËûÃDZ»ÒÆÖ²Ö»ÊÇʱ¼äµÄÎÊÌâ¡£
I2CµÄkernelÔ´Âë±»·Ö³É¼¸¸ö²¿·Ö£ºthe I2C core, I2C bus drivers£¬I2C algorithm drivers and I2C chip drivers¡£ÎÒÃǽ«ºöÂÔI2C core²¿·Ö£¬¶øÊǹØ×¢ÈçºÎ±àдa bus and algorithm Çý¶¯¡£
I2C Bus Drivers ×ÜÏßÇý¶¯
I2C×ÜÏßÇý¶¯ÓÃÒ»¸ö½á¹¹i2c_adapterÀ´ÃèÊö£¬¸Ã½á¹¹ÔÚÎļþinclude/linux/i2c.hÀﶨÒå¡£
ÒÔϵÄ×Ö¶ÎÐèÒªÔÚ×ÜÏßÇý¶¯ÀïÉèÖãº
      struct module *owner; -set to the value (THIS_MODULE) that allows the proper module reference counting.
      unsigned int clas ......

linux I2CÇý¶¯·ÖÎö

I2CÊÇPhillips¿ª·¢µÄ2ÏߵĴ®ÐÐ×ÜÏßЭÒ顣ͨ³£Ó¦ÓÃÔÚǶÈëʽϵͳÖÐÈò»Í¬µÄ×é¼þͨÐÅ£¬PCÖ÷°å¿ÉÒÔͨ¹ýI2CÀ´Ó벻ͬµÄ´«¸ÐÆ÷ͨÐÅ¡£ÕâЩ´«¸ÐÆ÷ͨ³£±¨¸æ·çÉÈËÙ¶È£¬´¦ÀíÆ÷ζȺÍÕû¸öÓ²¼þϵͳµÄÐÅÏ¢£¬Õâ¸öЭÒéÒ²¿ÉÒÔÓÃÔÚRAM chipsÉÏ£¬Ïò²Ù×÷ϵͳÌṩDIMMµÄÐÅÏ¢¡£
ÔÚ2.0ʱI2CµÄkernelÔ´Âë²»ÔÚÄÚºËÀïµÄ£¬2.4Äں˰üÀ¨ÁËÒ»µã¶ÔI2CµÄÖ§³Ö£¬Ö÷ÒªÊÇÊÓÆµÇý¶¯¡£
ÔÚ2.6ÄÚºËÀ´óÁ¿µÄI2C´úÂë¼ÓÈëµ½ÁËÄÚºËÀï¡£¸ÐлºÜ¶àÄں˿ª·¢ÕßµÄŬÁ¦£¬ËûÃÇÈýӿڸüÈÝÒ×±»ÄÚºËÉçÇø½ÓÊÜ¡£ÓÐЩÇý¶¯ÈÔÔÚÍⲿµÄCVSÊ÷ÀûÓзÅÈëkernel.orgÀµ«ÊÇËûÃDZ»ÒÆÖ²Ö»ÊÇʱ¼äµÄÎÊÌâ¡£
I2CµÄkernelÔ´Âë±»·Ö³É¼¸¸ö²¿·Ö£ºthe I2C core, I2C bus drivers£¬I2C algorithm drivers and I2C chip drivers¡£ÎÒÃǽ«ºöÂÔI2C core²¿·Ö£¬¶øÊǹØ×¢ÈçºÎ±àдa bus and algorithm Çý¶¯¡£
I2C Bus Drivers ×ÜÏßÇý¶¯
I2C×ÜÏßÇý¶¯ÓÃÒ»¸ö½á¹¹i2c_adapterÀ´ÃèÊö£¬¸Ã½á¹¹ÔÚÎļþinclude/linux/i2c.hÀﶨÒå¡£
ÒÔϵÄ×Ö¶ÎÐèÒªÔÚ×ÜÏßÇý¶¯ÀïÉèÖãº
      struct module *owner; -set to the value (THIS_MODULE) that allows the proper module reference counting.
      unsigned int clas ......

linux initÁùÖÖģʽ¼ò½é


initÊÇLinuxϵͳÀïµÄ¸ù½ø³Ì£¬ÊÇϵͳËùÓнø³ÌµÄ׿ÏÈ¡£ËüµÄÖ÷Òª×÷ÓÃÊǸù¾Ý¼Ç¼ÔÚ/etc/inittabÀïµÄÒ»¸ö½Å±¾£¨script£©³ÌÐò²úÉú½ø³Ì¡£Õâ¸öÎļþͨ³£ÓÃÓÚ¿ØÖÆÓû§µÄµÇ¼ģʽ¡£LinuxϵͳµÄÓÐЧµÇ¼ģʽÓÐ0~9¹²Ê®ÖÖ£¬²»¹ýÑØÓÃUNIXϵͳµÄÖÁ¶à6ÖÖµÄÏÞÖÆ£¬Ò»°ãÖ»ÓÐ1µ½6ÓÐЧ¡£
¡¡¡¡initÒ»°ãÔÚϵͳÆô¶¯Ê±×Ô¶¯ÔËÐУ¬Ò²¿ÉÒÔÓÉrootÓû§µ÷Óá£ËüµÄ×÷ÓÃÊÇÇл»ÏµÍ³µÄÔËÐÐ״̬¡£ËüµÄÃüÁî¸ñʽÊÇ£ºinit NUM¡´»Ø³µ¡µ£¬ÆäÖÐNUM±íʾ1µ½6µÄÈÎÒ»Êý×Ö¡£
¡¡¡¡6ÖÖģʽÖÐÓÐÁ½ÖÖÊÇϵͳÄÚ¶¨µÄ£º
¡¡¡¡0£ºÍ£Ö¹ÏµÍ³ÔËÐС£init 0¡´»Ø³µ¡µÏ൱ÓÚ halt¡´»Ø³µ¡µ¡£
¡¡¡¡6£ºÖØÆôϵͳ¡£init 6¡´»Ø³µ¡µÏ൱ÓÚ reboot¡´»Ø³µ¡µ¡£
¡¡¡¡Èç¹ûÄãÁ˽â/etc/inittabÎļþ£¬¾ÍǧÍò²»Òª°Ñ0ÉèΪȱʡµÇ¼ģʽ£¬·ñÔòÄãµÄLinuxµÄÔËÐоÍÖ»ÄÜÁ½µãÒ»ÏßÁË——¿ª»ú←→Í£»ú£¬»òÕßÊÇ¿ª»ú←→ÖØÆôµÄÎÞÏÞÑ­»·¡£ÆäËûµÄ4ÖÖģʽʵ¼ÊÉÏÊÇÓɲÙ×÷ϵͳȷ¶¨µÄ¡£Èç¹ûÄãÔ¸ÒâÐÞ¸ÄLinuxµÄÔ´´úÂ룬ÄãÒ²¿ÉÒÔ¶¨ÒåÕâ4ÖÖ£¨ÉõÖÁ6ÖÖ£©Ä£Ê½µÄʵ¼Ê¹¦ÄÜ¡£ÆäʵֻҪ֪µÀLinux·¢²¼³§É̵ÄÔ¼¶¨¾Í×ã¹»ÁË£¬ÏÂÃæÎÒÃǾÍÒÔÀ¶µã2.0ΪÀý£¬¿´¿´initµÄ³£ÓÃÔ¼¶¨°É——
¡¡¡¡init 1——½øÈëµ¥Óû§Ä£Ê½¡£ÕâºÍ¿ª»úÊÇÑ¡ÔñSafe ModeÊÇÒ»Ñ ......

LinuxÏÂÀûÓÃÌõ¼þ±äÁ¿ÊµÏÖ¶ÁÐ´Ëø

Ê×ÏȽéÉÜÏÂpthread_cond_t¡£ ÔÚLinuxϳÆÖ®Îª×´Ì¬±äÁ¿£¬ÓëÖ®Ïà¹ØµÄÓÐÏÂÃæ¼¸¸öAPI:
    int pthread_cond_init (pthread_cond_t *COND,pthread_condattr_t *cond_ATTR);
    int pthread_cond_signal (pthread_cond_t *COND);
    int pthread_cond_broadcast (pthread_cond_t *COND);
    int pthread_cond_wait (pthread_cond_t *COND, pthread_mutex_t *MUTEX);
    int pthread_cond_timedwait (pthread_cond_t *COND, pthread_mutex_t *MUTEX, const struct timespec *ABSTIME);
    int pthread_cond_destroy (pthread_cond_t *COND);
ÕâÀï¾Í½²ÏÂ2¸öapi£¬pthread_cond_signalºÍpthread_cond_wait£¬Ò»°ãµÄÓ÷¨ÈçÏ£º
{
    pthread_mutex_lock(lock)
...
    pthread_cond_wait(cond, lock);
...
    pthread_cond_mutex_unlock(lock);
}
pthread_cond_wait»á½âËølock£¬È»ºóÔÚcondÉϵȴý,ÕâÁ½²½ÊÇatomic operation. µ±pthread_cond_wait·µ»ØÊ±£¬»áͬʱ¶ÔlockÉÏËø. ÕâÀïÎÒµÄÀí½âÊÇ£¬Èç¹û»ñÈ¡²»µ½lockËø£¬¼´Ê¹c ......
×ܼǼÊý:5772; ×ÜÒ³Êý:962; ÿҳ6 Ìõ; Ê×Ò³ ÉÏÒ»Ò³ [201] [202] [203] [204] 205 [206] [207] [208] [209] [210]  ÏÂÒ»Ò³ βҳ
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ