LinuxÏÂthread±à³Ì (Ò»)
×÷ÕߣºSam £¨Õç·å£© sam_code@hotmail.com
SamǰЩÌìÔÚÌṩһ¸ö¿â¸ø±ðµÄ¹«Ë¾Ê±£¬ÒòΪ²»Ï²»¶Ê¹ÓÃpthread_jionµÈº¯Êý£¬±»ÈËÂîΪÀ¬»ø³ÌÐò¡£ºÇºÇ£¬Ö®Ç°ÒòΪÔÚд¶àthread³ÌÐòʱ£¬Ï°¹ßÈÃÿ¸öthread¶¼ÎªdetachÊôÐÔ£¬ÕâÑùËûÃǾͿÉÒÔ×ÔÎÒ¹ÜÀí¡£¶ø²»ÐèÒªÔÙÓɱðÈË»ØÊÕ×ÊÔ´¡£ºÇºÇ£¬²»ËµÕâô¶àÁË£¬°ÑPOSIX thread·½ÃæµÄ¶«Î÷¼ÇÏÂÀ´°É¡£
LinuxÏÂthreadÀúÊ·£¨Old pthreadÓëNPTL£©£º
Linux´´½¨Ö®³õ£¬²¢²»ÄÜÕæÕýÖ§³Öthread. LinuxThreads ÏîĿʹÓÃclone()Õâ¸öϵͳµ÷ÓÃʵÏÖ¶ÔthreadµÄÄ£Äâ¡£ÔÚ_clone±¾À´µÄÒâͼÊÇ´´½¨Ò»¸ö¿É¶¨Òå¸÷ÖÖÅäÖõĶԵ±Ç°½ø³ÌµÄ¿½±´¡£LinuxThreadsÏîÄ¿ÔòÀûÓÃÁËÕâÒ»µã£¬ÅäÖÃÁËÒ»¸öÓëµ÷Óýø³ÌÓµÓÐÏàͬµØÖ·¿Õ¼äµÄ¿½±´£¬°ÑËü×÷Ϊһ¸öthread. ËùÒÔ£¬³£³£ÓÐÈË˵£¬linuxÏÂÃæÃ»Óнø³ÌÏß³ÌÖ®·Ö£¬Æäʵ¾ÍÊÇÕâ¸öÒâ˼¡£µ«Õâ¸ö·½·¨Ò²ÓÐÎÊÌ⣬ÓÈÆäÊÇÔÚÐźŴ¦Àí¡¢µ÷¶ÈºÍ½ø³Ì¼äͬ²½ÔÓï·½Ãæ¶¼´æÔÚÎÊÌâ¡£ÁíÍ⣬Õâ¸öÏß³ÌÄ£ÐÍÒ²²»·ûºÏ POSIX µÄÒªÇó¡£
Èç¹ûÒª¸Ä½øLinuxThread. ºÜÃ÷ÏÔ£¬ÐèÒªkernel²ãµÄÖ§³Ö¡£IBMºÍRedHat·Ö±ð½øÐÐÁËÑо¿£¬Ëæ×ÅIBMµÄ·ÅÆú£¬RedHatµÄNative POSIX Thread Library£¨NPTL£©¾Í³ÉΨһµÄ½â¾ö·½°¸ÁË¡£Õâ¾ÍÊÇNPTL¡£
LinuxThreads ×î³õµÄÉè¼ÆÏàÐÅÏà¹Ø½ø³ÌÖ®¼äµÄÉÏÏÂÎÄÇл»ËٶȺܿ죬Òò´Ëÿ¸öÄÚºËÏß³Ì×ãÒÔ´¦ÀíºÜ¶àÏà¹ØµÄÓû§¼¶Ï̡߳£Õâ¾Íµ¼ÖÂÁËÒ»¶ÔÒ» Ïß³ÌÄ£Ð͵ĸïÃü¡£
LinuxThreads Éè¼ÆÏ¸½ÚµÄһЩ»ù±¾ÀíÄ
LinuxThreads ·Ç³£³öÃûµÄÒ»¸öÌØÐÔ¾ÍÊǹÜÀíỊ̈߳¨manager thread£©¡£¹ÜÀíÏ߳̿ÉÒÔÂú×ãÒÔÏÂÒªÇó£º
ϵͳ±ØÐëÄܹ»ÏìÓ¦ÖÕÖ¹ÐźŲ¢É±ËÀÕû¸ö½ø³Ì¡£
ÒÔ¶ÑÕ»ÐÎʽʹÓõÄÄÚ´æ»ØÊÕ±ØÐëÔÚÏß³ÌÍê³ÉÖ®ºó½øÐС£Òò´Ë£¬Ïß³ÌÎÞ·¨×ÔÐÐÍê³ÉÕâ¸ö¹ý³Ì¡£
ÖÕÖ¹Ï̱߳ØÐë½øÐеȴý£¬ÕâÑùËüÃDzŲ»»á½øÈ뽩ʬ״̬¡£
Ï̱߳¾µØÊý¾ÝµÄ»ØÊÕÐèÒª¶ÔËùÓÐÏ߳̽øÐбéÀú£»Õâ±ØÐëÓɹÜÀíÏß³ÌÀ´½øÐС£
Èç¹ûÖ÷Ïß³ÌÐèÒªµ÷Óà pthread_exit()£¬ÄÇôÕâ¸öÏ߳̾ÍÎÞ·¨½áÊø¡£Ö÷Ïß³ÌÒª½øÈë˯Ãß״̬£¬¶ø¹ÜÀíÏ̵߳Ť×÷¾ÍÊÇÔÚËùÓÐÏ̶߳¼±»É±ËÀÖ®ºóÀ´»½ÐÑÕâ¸öÖ÷Ï̡߳£
ΪÁËά»¤Ï̱߳¾µØÊý¾ÝºÍÄڴ棬LinuxThreads ʹÓÃÁ˽ø³ÌµØÖ·¿Õ¼äµÄ¸ßλÄڴ棨¾ÍÔÚ¶ÑÕ»µØÖ·Ö®Ï£©¡£
ÔÓïµÄͬ²½ÊÇʹÓÃÐźŠÀ´ÊµÏֵġ£ÀýÈ磬Ï̻߳áÒ»Ö±×èÈû£¬Ö±µ½±»ÐźŻ½ÐÑΪֹ¡£
ÔÚ¿Ë¡ϵͳµÄ×î³õÉè¼ÆÖ®Ï£¬LinuxThreads ½«Ã¿¸öÏ̶߳¼ÊÇ×÷Ϊһ¸ö¾ßÓÐΩһ½ø³Ì ID µÄ½ø³ÌʵÏֵġ£
ÖÕÖ¹ÐźſÉÒÔɱËÀËùÓеÄÏ̡߳£LinuxThreads ½ÓÊÕµ½ÖÕÖ¹ÐźÅÖ®ºó£¬¹ÜÀíÏ߳̾ͻáʹÓÃÏàͬµÄÐźÅɱËÀËùÓÐÆäËûỊ̈߳¨½ø³Ì£©¡£
¸ù¾Ý
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
µÚËĽ² Ŀ¼ £¨video07,08,09,10£© Ç¿ÖÆÎ»ÓëðÏÕλ£ºÕë¶Ôu,g,o·Ö±ðÓÐset uid,set gid,¼°sticky¡£
set uid: chmod u+s DirName
set gid: chmod g+s DirName
sticky: chmod o+t DirName
ÀýÈç:ls –l /bin/ping ʹÓÃÁËset uid,±£Ö¤ÈκÎÓû§Ö´ÐÐpingÃüÁîʱ¶¼ÊÇÒÔrootÓû§Éí·Ý. ......
ÆäʵÕâ¸öÒ²¿ÉÒÔÊÓΪÏÂÔØÐèÒªvodplayer»òÕß½Ð×ö±¦Àûͨ²¥·ÅÆ÷²ÅÄܹۿ´µÄÔÚÏßµçÓ°µÄÒ»¸ö½â¾ö·½°¸¡£
±¦ÀöͨÊÓÆµµã²¥·þÎñÓÃÔÚÐí¶à¿í´ø·þÎñÉÏ¡£ËٶȽϿ죬µ«ÊDZØÐëʹÓÃÆäÌØ¶¨µÄ²¥·ÅÆ÷vodplayer²ÅÄܲ¥·Å¡£¶øÕâ¸öÈí¼þÖ»ÓÐwindowsƽ̨Éϵİ汾¡£ÔÚlinux»òÕßmacÎÞ·¨Ê¹Óᣳý·Ç×°ÐéÄâ»ú¡£ÄÇÌ«Âé·³¡£
ÏÖÔÚÌṩһ¸ö½â¾ö·½°¸£¬ÆäÔÀíÈçÏ ......
¾¡¹Ü²»Ô¸Òâ¹ý·ÖÉùÕÅ£¬µ«ÁªÏëȷʵÔÚÖØ»ØLinuxµÄÀÏ·¡£11ÔÂ12ÈÕ£¬¸ßͨCEO Paul Jacobs͸¶ÁËÁªÏëÒ»¿î»ùÓÚARM¼Ü¹¹
Snapdragon´¦ÀíÆ÷µÄÖÇÄܱ¾²úÆ·£¬ÕâÖÖ²úÆ·µÄ¶¨Î»½éÓÚÖÇÄÜÊÖ»úÓëÉÏÍø±¾Ö®¼ä¡£Jacobs»¹Ðû³ÆÕâ¿î»ùÓÚLinuxµÄÖÇÄܱ¾½«ÓÚÃ÷Äê1Ô·ÝÕÙ¿ªµÄ
CES¼ÆËã»úµç×ÓÕ¹»áÉÏÕýÊ½Â¶Ãæ£¬¶øÁªÏëËæºóÒ²¶ÔÕâÔòÏûÏ¢½øÐÐÁËÈ·ÈÏ£¬ ......
Óà GDB µ÷ÊÔ³ÌÐò
GDB ¸ÅÊö
————
GDB ÊÇ GNU ¿ªÔ´×éÖ¯·¢²¼µÄÒ»¸öÇ¿´óµÄ UNIX ϵijÌÐòµ÷ÊÔ¹¤¾ß¡£»òÐí£¬¸÷λ±È½Ïϲ»¶ÄÇÖÖͼÐνçÃæ·½Ê½µÄ£¬Ïñ VC ¡¢ BCB µÈ IDE µÄµ÷ÊÔ£¬µ«Èç¹ûÄãÊÇÔÚ UNIX ƽ̨ÏÂ×öÈí¼þ£¬Äã»á·¢ÏÖ GDB Õâ¸öµ÷ÊÔ¹¤¾ßÓÐ±È VC ¡¢ BCB µÄͼÐλ¯µ÷ÊÔÆ÷¸üÇ¿´óµÄ¹¦ÄÜ¡£Ëùν ¡° ......