linux ½ø³ÌͨÐÅ——ÐźŵÆ
ÐźŵÆÓëÆäËû½ø³Ì¼äͨÐÅ·½Ê½²»´óÏàͬ£¬ËüÖ÷ÒªÌṩ¶Ô½ø³Ì¼ä¹²Ïí×ÊÔ´·ÃÎÊ¿ØÖÆ»úÖÆ¡£Ï൱ÓÚÄÚ´æÖеıêÖ¾£¬½ø³Ì¿ÉÒÔ¸ù¾ÝËüÅж¨ÊÇ·ñÄܹ»·ÃÎÊijЩ¹²Ïí×ÊÔ´£¬Í¬Ê±£¬½ø³ÌÒ²¿ÉÒÔÐ޸ĸñêÖ¾¡£³ýÁËÓÃÓÚ·ÃÎÊ¿ØÖÆÍ⣬»¹¿ÉÓÃÓÚ½ø³Ìͬ²½¡£
Ò»¡¢ÐźŵƸÅÊö
ÐźŵÆÓëÆäËû½ø³Ì¼äͨÐÅ·½Ê½²»´óÏàͬ£¬ËüÖ÷ÒªÌṩ¶Ô½ø³Ì¼ä¹²Ïí×ÊÔ´·ÃÎÊ¿ØÖÆ»úÖÆ¡£Ï൱ÓÚÄÚ´æÖеıêÖ¾£¬½ø³Ì¿ÉÒÔ¸ù¾ÝËüÅж¨ÊÇ·ñÄܹ»·ÃÎÊijЩ¹²Ïí×ÊÔ´£¬Í¬Ê±£¬½ø³ÌÒ²¿ÉÒÔÐ޸ĸñêÖ¾¡£³ýÁËÓÃÓÚ·ÃÎÊ¿ØÖÆÍ⣬»¹¿ÉÓÃÓÚ½ø³Ìͬ²½¡£ÐźŵÆÓÐÒÔÏÂÁ½ÖÖÀàÐÍ£º
¶þÖµÐźŵƣº×î¼òµ¥µÄÐźŵÆÐÎʽ£¬ÐźŵƵÄÖµÖ»ÄÜÈ¡0»ò1£¬ÀàËÆÓÚ»¥³âËø¡£
×¢£º¶þÖµÐźŵÆÄܹ»ÊµÏÖ»¥³âËøµÄ¹¦ÄÜ£¬µ«Á½ÕߵĹØ×¢ÄÚÈݲ»Í¬¡£ÐźŵÆÇ¿µ÷¹²Ïí×ÊÔ´£¬Ö»Òª¹²Ïí×ÊÔ´¿ÉÓã¬ÆäËû½ø³ÌͬÑù¿ÉÒÔÐÞ¸ÄÐźŵƵÄÖµ£»»¥³âËø¸üÇ¿µ÷½ø³Ì£¬Õ¼ÓÃ×ÊÔ´µÄ½ø³ÌʹÓÃÍê×ÊÔ´ºó£¬±ØÐëÓɽø³Ì±¾ÉíÀ´½âËø¡£
¼ÆËãÐźŵƣºÐźŵƵÄÖµ¿ÉÒÔÈ¡ÈÎÒâ·Ç¸ºÖµ£¨µ±È»ÊÜÄں˱¾ÉíµÄÔ¼Êø£©¡£
¶þ¡¢LinuxÐźŵÆ
linux¶ÔÐźŵƵÄÖ§³Ö×´¿öÓëÏûÏ¢¶ÓÁÐÒ»Ñù£¬ÔÚred had 8.0·¢Ðа汾ÖÐÖ§³ÖµÄÊÇϵͳVµÄÐźŵơ£Òò´Ë£¬±¾ÎĽ«Ö÷Òª½éÉÜϵͳVÐźŵƼ°ÆäÏàÓ¦API¡£ÔÚûÓÐÉùÃ÷µÄÇé¿öÏ£¬ÒÔÏÂÌÖÂÛÖÐÖ¸µÄ¶¼ÊÇϵͳVÐźŵơ£
×¢Ò⣬ͨ³£Ëù˵µÄϵͳVÐźŵÆÖ¸µÄÊǼÆÊýÐźŵƼ¯¡£
»ØÒ³Ê×
Èý¡¢ÐźŵÆÓëÄÚºË
1¡¢ÏµÍ³VÐźŵÆÊÇËæÄں˳ÖÐøµÄ£¬Ö»ÓÐÔÚÄÚºËÖØÆð»òÕßÏÔʾɾ³ýÒ»¸öÐźŵƼ¯Ê±£¬¸ÃÐźŵƼ¯²Å»áÕæÕý±»É¾³ý¡£Òò´ËϵͳÖмÇ¼ÐźŵƵÄÊý¾Ý½á¹¹£¨struct ipc_ids sem_ids£©Î»ÓÚÄÚºËÖУ¬ÏµÍ³ÖеÄËùÓÐÐźŵƶ¼¿ÉÒÔÔڽṹsem_idsÖÐÕÒµ½·ÃÎÊÈë¿Ú¡£
2¡¢ÏÂͼ˵Ã÷ÁËÄÚºËÓëÐźŵÆÊÇÔõÑù½¨Á¢ÆðÁªÏµµÄ£º
ÆäÖУºstruct ipc_ids sem_idsÊÇÄÚºËÖмÇ¼ÐźŵƵÄÈ«¾ÖÊý¾Ý½á¹¹£»ÃèÊöÒ»¸ö¾ßÌåµÄÐźŵƼ°ÆäÏà¹ØÐÅÏ¢¡£
ÆäÖУ¬struct sem½á¹¹ÈçÏ£º
struct sem{
int semval; // current value
int sempid // pid of last operation
}
´ÓÉÏͼ¿ÉÒÔ¿´³ö£¬È«¾ÖÊý¾Ý½á¹¹struct ipc_ids sem_ids¿ÉÒÔ·ÃÎʵ½struct kern_ipc_permµÄµÚÒ»¸ö³ÉÔ±£ºstruct kern_ipc_perm£»¶øÃ¿¸östruct kern_ipc_permÄܹ»Óë¾ßÌåµÄÐźŵƶÔÓ¦ÆðÀ´ÊÇÒòΪÔڸýṹÖУ¬ÓÐÒ»¸ökey_tÀàÐͳÉÔ±key£¬¶økeyÔòΨһȷ¶¨Ò»¸öÐźŵƼ¯£»Í¬Ê±£¬½á¹¹struct kern_ipc_permµÄ×îºóÒ»¸ö³ÉÔ±sem_nsemsÈ·¶¨Á˸ÃÐźŵÆÔÚÐźŵƼ¯ÖеÄ˳Ðò£¬ÕâÑùÄں˾ÍÄܹ»¼Ç¼ÿ¸öÐźŵƵÄÐÅÏ¢ÁË¡£kern_ipc_perm½á¹¹²Î¼û¡¶Linux»·¾³½ø³Ì¼äͨÐÅ£¨Èý£©£ºÏûÏ¢¶ÓÁС·¡£struct sem_array¼û¸½Â¼1¡£
»
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
Linux³õ¼¶
linuxͼÐνçÃæÊ¹ÓÃ
linux¼òµ¥Ä¿Â¼½á¹¹
linux³£ÓÃÃüÁî
linuxϵͳ°²×°
LinuxÖм¶
linuxÓû§/Îļþϵͳ¹ÜÀí
linuxÍøÂç¹ÜÀí
linux´ÅÅ̹ÜÀí
linuxϵͳºÍÈÕ¼Çά»¤¹ÜÀí
linux°²È«ÓÅ»¯
linuxϵͳ±¸·ÝÓë»Ö¸´
shell³õ²½±à³Ì
linux¸ß¼¶
Linux·þÎñÆ÷
Linux Dns·þÎñÆ÷
Linux Mail·þÎñÆ÷
Linux Web·þÎ ......