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¡£
»
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ 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 ......
1¡£»ù´¡ÖªÊ¶
linuxÌṩ·þÎñÊÇÓÉÔËÐÐÔÚºǫ́µÄÊØ»¤³ÌÐò£¨daemon£©À´Ö´Ðеġ£
ÊØ» ......
Linux initial RAM disk (initrd) overview
Learn about its anatomy, creation, and use in the Linux boot process
M. Tim Jones
(mtj@mtjones.com
), Consultant Engineer, Emulex
M. Tim Jones is an embedded software architect and the author of GNU/Linux Application Programming
, AI Application Prog ......