linuxÖÐÏß³ÌÏà¹Øº¯Êý
linuxÖÐÏß³ÌÏà¹Øº¯Êý
2010Äê03ÔÂ09ÈÕ ÐÇÆÚ¶þ 22:18
1. ±È½ÏÁ½¸öÏß³Ì ID ÊÇ·ñÒ»Ö¡£
Ïß³ÌID ʹÓà pthread_t Êý¾ÝÀàÐÍÀ´±íʾ¡£Linux ʹÓà unsigned long int ±íʾpthread_t Êý¾ÝÀàÐÍ¡£Solaris 9 °Ñ pthread_t Êý¾ÝÀàÐͱíʾΪ unsigned int¡£FreeBSD5.2.1 ºÍ MAC OS X 10.3 ÓÃÒ»¸öÖ¸Ïò pthread ½á¹¹µÄÖ¸ÕëÀ´±íʾpthread_t Êý¾ÝÀàÐÍ¡£ Òò´ËÈç¹ûÐèÒª¿¼ÂÇÒÆÖ²ÐÔ£¬±ØÐëʹÓú¯ÊýÀ´¶ÔÁ½¸öÏß³ÌID½øÐбȽϡ£
#include <pthread.h>
int pthread_equal(pthread_t tid1, pthread_t tid2);
·µ»ØÖµ£ºÈç¹ûÏàµÈ·µ»Ø·Ç0£¬·ñÔò·µ»Ø0
2.»ñÈ¡Ïß³Ì×ÔÉíµÄÏß³ÌID¡£
#include <pthread.h>
pthread_t pthread_self(void);
·µ»ØÖµ£ºµ÷ÓÃÏ̵߳ÄÏß³ÌID
3.´´½¨Ị̈߳º
#include <pthread.h>
int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void), void *restrict arg);
·µ»ØÖµ£ºÈô³É¹¦·µ»Ø0£»Èç¹ûʧ°Ü£¬·µ»Ø´íÎó±àºÅ
4.Ïß³ÌÖÕÖ¹
Èç¹û½ø³ÌÖеÄÈÎÒ»Ï̵߳÷ÓÃÁË exit£¬_Exit»òÕß _exit º¯Êý£¬ÄÇôÕû¸ö½ø³Ì¾Í»áÍ˳ö¡£Óë´ËÀàËÆ£¬Èç¹ûÐźŵÄĬÈ϶¯×÷ÊÇÖÕÖ¹½ø³Ì£¬ÄÇô£¬°Ñ¸ÃÐźŷ¢Ë͵½Ï̻߳áÖÕÖ¹Õû¸ö½ø³Ì¡£
ÔÚ²»ÖÕÖ¹Õû¸ö½ø³ÌµÄÇé¿öÏ£¬µ¥¸öÏ߳̿ÉÒÔͨ¹ýÏÂÁÐÈýÖÖ·½Ê½Í˳ö£º
1£©Ïß³ÌÖ»ÊÇ´ÓÆô¶¯Àý³ÌÖзµ»Ø£¬·µ»ØÖµ×÷ΪÏ̵߳ÄÍ˳öÂë¡£
2£©Ï߳̿ÉÒÔ±»Í¬Ò»½ø³ÌÖеÄÆäËûÏß³ÌÈ¡Ïû¡£
3£©Ï̵߳÷Óà pthread_exit¡£
#include <pthread.h>
void pthread_exit(void *rval_ptr);
½ø³ÌÖеÄÆäËûÏ߳̿ÉÒÔͨ¹ýµ÷Óà pthread_join º¯Êý·ÃÎʵ½Õâ¸öÖ¸Õë¡£
#include <pthread.h>
int pthread_join(pthread_t thread, void **rval_ptr);
·µ»ØÖµ: Èô³É¹¦·µ»Ø0£¬Ê§°Ü·µ»Ø´íÎó±àºÅ
µ÷ÓÃÕâ¸öº¯Êýºó£¬µ÷ÓÃÏ߳̽«Ò»Ö±×èÈû£¬Ö±µ½Ö¸¶¨µÄÏß³ÌÒÔÇ°ÃæÌáµ½µÄ3ÖÖ·½Ê½Í˳ö£¬¼´£º
1£©Ïß³ÌÖ»ÊÇ´ÓÆô¶¯Àý³ÌÖзµ»Ø£¬·µ»ØÖµ×÷ΪÏ̵߳ÄÍ˳öÂë¡£
2£©Ï߳̿ÉÒÔ±»Í¬Ò»½ø³ÌÖеÄÆäËûÏß³ÌÈ¡Ïû¡£
3£©Ï̵߳÷Óà pthread_exit¡£
Èç¹ûÏß³ÌÖ»ÊÇ´ÓËüµÄÆô¶¯Àý³ÌÖзµ»Ø£¬ rval_ptr½«°üº¬·µ»ØÂë¡£Èç¹ûÏ̱߳»È¡Ïû£¬ÓÉrval_ptr Ö¸¶¨µÄÄÚ´æµ¥Ôª¾ÍÖÃΪ PTHREAD_CANCELED¡£
Èç¹ûÏß³ÌÒѾ´¦ÓÚ·ÖÀë״̬£¬ pthread_join µ÷Óþͻáʧ°Ü£¬·µ»Ø EINVAL¡£
Èç¹û rval_ptr Ϊ NULL£¬Ôòµ÷ÓÃpthread_join º¯Êý½«µÈ´ýÖ¸¶¨µÄÏß³ÌÖÕÖ¹£¬µ«ÊDz¢²»»ñÈ¡Ï̵߳ÄÖÕֹ״̬¡£
5.
Ïà¹ØÎĵµ£º
ûÓÐÔĶÁ¹ýÔ´Âë֮ǰ,¶Ô²Ù×÷ϵͳ×ÜÊDZ§ÓÐÉñÃظÐ,×ÜÊÇÈÏΪ²Ù×÷ϵͳÊǺܰÂÃîµÄ¶«Î÷. Æäʵ,¶ÔÓÚÒ»¸öÓÐÒ»¶¨±à³Ì»ù´¡ºÍϵͳ֪ʶµÄ³ÌÐòÔ±,²Ù×÷ϵͳ²¢²»ÊÇ¿ÉÍû¶ø²»¿É¼°µÄ¶«Î÷. ²Ù×÷ϵͳµÄ×îÖÕÄ¿±êÖ»ÊÇÔÚÓ¦ÓóÌÐò²ãÃæÓëÓ²¼þ²ãÃæÖ®¼ä×öµÄÒ»²ãе÷,¿ÉÄÜÕâ¸ö¶¨ÒåÓÐЩƬÃæ,µ«±¾×ÅÕâÑùµÄ˼Ïë¶Á´úÂëÓ¦¸Ã»áÇáËÉÒ»µã.
ÓÉÓÚ·¢Õ¹µ½ÏÖÔÚ,LINU ......
ÔÚ±¾ÎĵĵÚһƪÖÐ,ÎÒÖ÷Òª¶Ôbootsect.s½øÐÐÁ˽²Êö. ÔÚµÚ¶þ²¿·ÖÖÐ,ÎÒ½«¶Ôsetup.s½øÐÐÃèÊö,ÎÒ½«ÆäÊÓΪÊÇLinuxÆô¶¯µÄµÚ¶þ²½Öè.
²Ù×÷ϵͳµÄÆô¶¯¹ý³ÌÊÇÒ»¸öÂþ³¤¶øÓÐÐòµÄ¹ý³Ì,¸÷¸ö½×¶Î¶¼ÓÐÆ䲻ͬµÄ×÷ÓÃ. boot;setup;initËäÈ»¿´Ëƺܽӽü,µ«ÊÇÈ´ÊÇÍêÈ«²»Í¬µÄ¹ý³Ì.ËûÃǸ÷˾ÆäÖ°,°´²¿¾Í°à.boot±È½Ï׼ȷµÄ·ÒëÓ¦¸ÃÊÇÒýµ¼,¶øsetupµÄ·Òë ......
linuxÉ豸Çý¶¯µÄѧϰÊÇÒ»ÏîºÆ´óµÄ¹¤³Ì,¶ÁÕßÐèÒªÊ×ÏÈÕÆÎÕÒÔÏ»ù´¡:
1.Á¼ºÃµÄÓ²¼þ»ù´¡,¶®µÃSRAM,FLASH,SDRAM,Ó²Å̵ĶÁд·½Ê½,UART,I2C,USBµÈÉ豸½Ó ¿Ú,ÂÖѯ,ÖжÏ,DMAµÄÔÀí,PCI×ÜÏߵŤ×÷·½Ê½ÒÔ¼°CPUµÄÄÚ´æ¹ÜÀíµ¥Ôª(MMU)µÈ.
2.Á¼ºÃµÄCÓïÑÔ»ù´¡,ÄÜÁé»îµØÔ ......
°æȨÉùÃ÷
±¾ÎÄ×÷ÕßÊÇһλ×ÔÓÉÈí¼þ°®ºÃÕߣ¬ËùÒÔ±¾ÎÄËäÈ»²»ÊÇÈí¼þ£¬µ«ÊDZ¾×Å GPL µÄ¾«Éñ·¢²¼¡£ÈκÎÈ˶¼¿ÉÒÔ×ÔÓÉʹÓá¢×ªÔØ¡¢¸´ÖƺÍÔÙ·Ö·¢£¬µ«±ØÐë±£Áô×÷ÕßÊðÃû£¬Ò಻µÃ¶ÔÉùÃ÷ÖеÄÈκÎÌõ¿î×÷ÈκÎÐÎʽµÄÐ޸ģ¬Ò²²»µÃ¸½¼ÓÈκÎÆäËüÌõ¼þ¡£Äú¿ÉÒÔ×ÔÓÉÁ´½Ó¡¢ÏÂÔØ¡¢´«²¥´ËÎĵµ£¬µ«Ç°ÌáÊDZØÐ뱣֤ȫÎÄÍêÕûתÔØ£¬°üÀ¨ÍêÕûµÄ°æȨÐÅÏ¢ºÍ× ......
ÏȲο´Ò»ÏÂĿ¼ÏµÄREADMEÎĵµ
Ö÷ÒªÓÐÒÔϼ¸¸ö²½Ö裺
1) perl **.PL Éú³Émakefile Îļþ
2) make
3) make test (this is optional£¬Èç¹ûÕⲽûɶÎÊÌâ,»áÏÔʾһÇÐok)
4) make install
³öÏÖµÄÎÊÌ⣬¶à¿´ÏÂÌáʾ£¬Ò»°ã¶¼ÊÇȱ°üÉÙ¿â ......