Linuxµ½µ×ÓÐûÓÐÏß³ÌÖ®ÎÒ¼û
×î½ü¿ªÊ¼×ªÏòLinux¿ª·¢£¬ÐèÒªÓõ½¶àÏ̡߳£ÉÏÍøÒ»²é£¬ÓеÄÈË˵LinuxûÓÐÏß³ÌÖ»Óнø³Ì£¬ÓеÄÈË˵Linuxµ±È»ÓÐỊ̈߳¬Ã»ÓÐÏß³Ìpthread¿âÊǸÉÂðµÄ£¿NPTLÓÖÊǸÉÂïÓã¿
¸öÈ˾õµÃ£¬Òª¿´´ÓÄĸö½Ç¶ÈÀ´¿´Õâ¸öÎÊÌâ¡£¶ÔÓÚÒ»°ãÓ¦ÓÃÈí¼þ¿ª·¢ÈËÔ±µÄ½Ç¶ÈÀ´¿´£¬¼ÈÈ»ÄÜÓÃpthread¿âÀ´´´½¨Ị̈߳¬ÒÔ¼°¿ÉÒÔ´¦ÀíÏ̼߳äµÄͨÐÅ£¬µ±È»¿ÉÒÔÈÏΪÔÚLinuxÖÐÏ߳̿϶¨ÊÇ´æÔڵġ£
´ÓĿǰLinuxÄÚºËʵÏֵĽǶÈÀ´¿´£¬Linuxµ±Ç°Ó¦¸Ã»¹ÊDzÉÓõÄÒ»¶ÔһģÐÍ£¬´´½¨Ò»¸öÓû§Ì¬¿Õ¼äµÄỊ̈߳¬ÔÚÄÚºËÖлáͨ¹ýÒ»¸öÇáÁ¿¼¶µÄ½ø³ÌÀ´¹ÜÀí£¬Ï̵߳÷¶ÈÏ൱ÓÚ½ø³Ìµ÷¶È¡£µ±Ç°LinuxÄÚºËÖУ¬ÎÞÂÛÊÇ´´½¨Ò»¸öÏ̻߳¹ÊÇÒ»¸ö½ø³Ì¶¼ÊÇ»áµ÷ÓÃclone()ϵͳµ÷Óã¬Ö»²»¹ýÊDzÎÊý²»Í¬£¬´´½¨Ï̵߳ϰclone()µÄ²ÎÊýÊÇ(CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND)£¬ÆäÖÐCLONE_VMÒ²Ö¸¶¨Á˺ËÐÄ̬¿Õ¼äÖУ¬´ËÇáÁ¿¼¶½ø³Ì£¨¼´Ị̈߳©ºÍ¸¸½ø³Ì¹²ÏíµØÖ·¿Õ¼ä£¬Òò´ËÕâ¸öÏ̲߳ſÉÒÔ·ÃÎʸ¸½ø³ÌµÄµØÖ·¿Õ¼ä¡£
Òò´Ë£¬LinuxºÍWindowsµÄÏß³ÌËäȻʵÏÖ²»Ò»Ñù£¬µ«ÊÇÓ¦¸Ã¿ÉÒԴ󵨵Ä˵LinuxÊÇ´æÔÚÏ̵߳ģ¬Ö»ÊÇLinuxµÄʵÏÖ·½Ê½ºÍWindowsµÄ²»Ò»Ñù¡£ÖÁÓÚ˵LinuxµÄÏ߳̾ÍÊÇÇáÁ¿¼¶½ø³ÌÄÇÖ»ÊÇ´ÓºËÐÄ̬¿Õ¼äµÄ²ãÃæÀ´¿´¡£
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
ÔÌû¼ûhttp://www.inthirties.com/thread-685-1-1.html
1¡¢Ê²Ã´ÂãÉ豸£¿×Ö·ûÉ豸£¿¿éÉ豸£¿
ÂãÉ豸£ºÒ²½ÐÂã·ÖÇø£¨Ôʼ·ÖÇø£©£¬ÊÇÒ»ÖÖûÓо¹ý¸ñʽ»¯£¬²»±»Unix/Linuxͨ¹ýÎļþϵͳÀ´¶ÁÈ¡µÄÌØÊâ×Ö·ûÉ豸¡£ÂãÉ豸¿ÉÒÔ°ó¶¨Ò»¸ö·ÖÇø£¬Ò²¿ÉÒÔ°ó¶¨Ò»¸ö´ÅÅÌ¡£
×Ö·ûÉ豸£º¶Ô×Ö·ûÉ豸µÄ¶Áд²»ÐèҪͨ¹ýOSµÄbuffer ......
1£®4 Ï̴߳´½¨µÄLinuxʵÏÖ
ÎÒÃÇÖªµÀ£¬LinuxµÄÏß³ÌʵÏÖÊÇÔÚºËÍâ½øÐеģ¬ºËÄÚÌṩµÄÊÇ´´½¨½ø³ÌµÄ½Ó¿Údo_fork()¡£ÄÚºËÌṩÁËÁ½¸öϵͳµ÷ÓÃ__clone()ºÍfork ()£¬×îÖÕ¶¼Óò»Í¬µÄ²ÎÊýµ÷ÓÃdo_fork()ºËÄÚAPI¡£µ±È»£¬ÒªÏëʵÏÖỊ̈߳¬Ã»ÓкËÐÄ¶Ô¶à½ø³Ì£¨ÆäʵÊÇÇáÁ¿¼¶½ø³Ì£©¹²ÏíÊý¾Ý¶ÎµÄÖ§³ÖÊDz»Ðеģ¬Òò´Ë£¬do_fork()ÌṩÁ˺ ......
Ëùν½ø³Ì¾ÍÊdzÌÐòÖ´ÐÐʱµÄÒ»¸öʵÀý. ËüÊÇÏÖ´ú²Ù×÷ϵͳÖÐÒ»¸öºÜÖØÒªµÄ³éÏó,ÎÒÃÇ´Ó½ø³ÌµÄÉúÃüÖÜÆÚ:´´½¨,Ö´ÐÐ,ÏûÍöÀ´·ÖÎöÒ»ÏÂLinuxÉϵĽø³Ì¹ÜÀíʵÏÖ.
Ò»:ǰÑÔ
½ø³Ì¹ÜÀí½á¹¹;
ÔÚÄÚºËÖÐ,ÿһ¸ö½ø³Ì¶ÔÓ¦Ò»¸ötask.¾ÍÊÇÒÔǰËù½²µÄPCB.ËüµÄ½á¹¹ÈçÏÂ(include/linux/sched.h):
struct task_struct {
  ......