Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

[ת]Linux Ïß³ÌʵÏÖ»úÖÆ·ÖÎö

ÑîɳÖÞ (pubb@163.net)¹ú·À¿Æ¼¼´óѧ¼ÆËã»úѧԺ
2003 Äê 5 ÔÂ 19 ÈÕ
×Ô´Ó¶àÏ̱߳à³ÌµÄ¸ÅÄî³öÏÖÔÚ Linux ÖÐÒÔÀ´£¬Linux ¶àÏßÓ¦Óõķ¢Õ¹×ÜÊÇÓëÁ½¸öÎÊÌâÍѲ»¿ª¸Éϵ£º¼æÈÝÐÔ¡¢Ð§ÂÊ¡£±¾ÎÄ´ÓÏß³ÌÄ£ÐÍÈëÊÖ£¬Í¨¹ý·ÖÎöĿǰ Linux ƽ̨ÉÏ×îÁ÷ÐÐµÄ LinuxThreads Ï߳̿âµÄʵÏÖ¼°Æä²»×㣬ÃèÊöÁË Linux ÉçÇøÊÇÈçºÎ¿´´ýºÍ½â¾ö¼æÈÝÐÔºÍЧÂÊÕâÁ½¸öÎÊÌâµÄ¡£
Ò».»ù´¡ÖªÊ¶£ºÏ̺߳ͽø³Ì
°´Õս̿ÆÊéÉϵ͍Ò壬½ø³ÌÊÇ×ÊÔ´¹ÜÀíµÄ×îСµ¥Î»£¬Ïß³ÌÊdzÌÐòÖ´ÐеÄ×îСµ¥Î»¡£ÔÚ²Ù×÷ϵͳÉè¼ÆÉÏ£¬´Ó½ø³ÌÑÝ»¯³öỊ̈߳¬×îÖ÷ÒªµÄÄ¿µÄ¾ÍÊǸüºÃµÄÖ§³ÖSMPÒÔ¼°¼õС£¨½ø³Ì/Ị̈߳©ÉÏÏÂÎÄÇл»¿ªÏú¡£
ÎÞÂÛ°´ÕÕÔõÑùµÄ·Ö·¨£¬Ò»¸ö½ø³ÌÖÁÉÙÐèÒªÒ»¸öÏß³Ì×÷ΪËüµÄÖ¸ÁîÖ´ÐÐÌ壬½ø³Ì¹ÜÀí×Å×ÊÔ´£¨±ÈÈçcpu¡¢ÄÚ´æ¡¢ÎļþµÈµÈ£©£¬¶ø½«Ï̷߳ÖÅ䵽ij¸öcpuÉÏÖ´ÐС£Ò»¸ö½ø³Ìµ±È»¿ÉÒÔÓµÓжà¸öỊ̈߳¬´Ëʱ£¬Èç¹û½ø³ÌÔËÐÐÔÚSMP»úÆ÷ÉÏ£¬Ëü¾Í¿ÉÒÔͬʱʹÓöà¸öcpuÀ´Ö´Ðи÷¸öỊ̈߳¬´ïµ½×î´ó³Ì¶ÈµÄ²¢ÐУ¬ÒÔÌá¸ßЧÂÊ£»Í¬Ê±£¬¼´Ê¹ÊÇÔÚµ¥cpuµÄ»úÆ÷ÉÏ£¬²ÉÓöàÏß³ÌÄ£ÐÍÀ´Éè¼Æ³ÌÐò£¬ÕýÈçµ±Äê²ÉÓÃ¶à½ø³ÌÄ£ÐÍ´úÌæµ¥½ø³ÌÄ£ÐÍÒ»Ñù£¬Ê¹Éè¼Æ¸ü¼ò½à¡¢¹¦ÄܸüÍ걸£¬³ÌÐòµÄÖ´ÐÐЧÂÊÒ²¸ü¸ß£¬ÀýÈç²ÉÓöà¸öÏß³ÌÏìÓ¦¶à¸öÊäÈ룬¶ø´Ëʱ¶àÏß³ÌÄ£ÐÍËùʵÏֵŦÄÜʵ¼ÊÉÏÒ²¿ÉÒÔÓÃ¶à½ø³ÌÄ£ÐÍÀ´ÊµÏÖ£¬¶øÓëºóÕßÏà±È£¬Ï̵߳ÄÉÏÏÂÎÄÇл»¿ªÏú¾Í±È½ø³ÌҪС¶àÁË£¬´ÓÓïÒåÉÏÀ´Ëµ£¬Í¬Ê±ÏìÓ¦¶à¸öÊäÈëÕâÑùµÄ¹¦ÄÜ£¬Êµ¼ÊÉϾÍÊǹ²ÏíÁ˳ýcpuÒÔÍâµÄËùÓÐ×ÊÔ´µÄ¡£
Õë¶ÔÏß³ÌÄ£Ð͵ÄÁ½´óÒâÒ壬·Ö±ð¿ª·¢³öÁ˺ËÐļ¶Ï̺߳ÍÓû§¼¶Ïß³ÌÁ½ÖÖÏß³ÌÄ£ÐÍ£¬·ÖÀàµÄ±ê×¼Ö÷ÒªÊÇÏ̵߳ĵ÷¶ÈÕßÔÚºËÄÚ»¹ÊÇÔÚºËÍ⡣ǰÕ߸üÀûÓÚ²¢·¢Ê¹ÓöദÀíÆ÷µÄ×ÊÔ´£¬¶øºóÕßÔò¸ü¶à¿¼ÂǵÄÊÇÉÏÏÂÎÄÇл»¿ªÏú¡£ÔÚĿǰµÄÉÌÓÃϵͳÖУ¬Í¨³£¶¼½«Á½Õß½áºÏÆðÀ´Ê¹Ó㬼ÈÌṩºËÐÄÏß³ÌÒÔÂú×ãsmpϵͳµÄÐèÒª£¬Ò²Ö§³ÖÓÃÏ߳̿âµÄ·½Ê½ÔÚÓû§Ì¬ÊµÏÖÁíÒ»Ì×Ï̻߳úÖÆ£¬´Ëʱһ¸öºËÐÄÏß³Ìͬʱ³ÉΪ¶à¸öÓû§Ì¬Ï̵߳ĵ÷¶ÈÕß¡£ÕýÈçºÜ¶à¼¼ÊõÒ»Ñù£¬"»ìºÏ"ͨ³£¶¼ÄÜ´øÀ´¸ü¸ßµÄЧÂÊ£¬µ«Í¬Ê±Ò²´øÀ´¸ü´óµÄʵÏÖÄѶȣ¬³öÓÚ"¼òµ¥"µÄÉè¼ÆË¼Â·£¬Linux´ÓÒ»¿ªÊ¼¾ÍûÓÐʵÏÖ»ìºÏÄ£Ð͵ļƻ®£¬µ«ËüÔÚʵÏÖÉϲÉÓÃÁËÁíÒ»ÖÖ˼·µÄ"»ìºÏ"¡£
ÔÚÏ̻߳úÖÆµÄ¾ßÌåʵÏÖÉÏ£¬¿ÉÒÔÔÚ²Ù×÷ϵͳÄÚºËÉÏʵÏÖỊ̈߳¬Ò²¿ÉÒÔÔÚºËÍâʵÏÖ£¬ºóÕßÏÔȻҪÇóºËÄÚÖÁÉÙʵÏÖÁ˽ø³Ì£¬¶øÇ°ÕßÔòÒ»°ãÒªÇóÔÚºËÄÚͬʱҲ֧³Ö½ø³Ì¡£ºËÐļ¶Ïß³ÌÄ£ÐÍÏÔȻҪÇóǰÕßµÄÖ§³Ö£¬¶øÓû§¼¶Ïß³ÌÄ£ÐÍÔò²»Ò»¶¨»ùÓÚºóÕßʵÏÖ¡£ÕâÖÖ²îÒ죬ÕýÈçǰËùÊö£¬ÊÇÁ½ÖÖ·ÖÀ෽ʽµÄ±ê×¼²»Í¬´øÀ´µÄ¡£
µ±ºËÄÚ¼ÈÖ§³Ö½ø³ÌÒ²Ö§³ÖÏß³Ìʱ£¬¾Í¿


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì(Áù) 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 ......

ÔÚlinuxÏ »ñÈ¡±¾»úMACµØÖ·µÄº¯Êý

//»ñÈ¡±¾»úMACµØÖ·º¯ÊýQString GetLocalMac()
{
int sock_mac;

struct ifreq ifr_mac;
char mac_addr[30];

sock_mac = socket( AF_INET, SOCK_STREAM, 0 );
if( sock_mac == -1)
{
perror("create socket falise...mac\n");
return "";
}

memset(&ifr_mac,0,sizeof(ifr_mac));
......

Linux UDPÑÏÖØ¶ª°üÎÊÌâµÄ½â¾ö


²âÊÔϵͳÔÚLinuxÉϵÄÐÔÄÜ·¢ÏÖ¶ª°üÂʼ«ÎªÑÏÖØ£¬·¢210000ÌõÊý¾Ý£¬¶ª°ü´ï110000Ö®¾Þ£¬¶ª°üÂʳ¬¹ý50%¡£Í¬µÈÇéÐÎÏÂWindowsÉϲâÊÔ£¬½ö¶ª¼¸ÌõÊý¾Ý¡£ÐÎÊÆÑϾþ£¬±ØÐë½â¾ö¡£¿¼ÂÇ¿ÉÄÜÊÇÒòΪЭÒéÕ»BufferÌ«µÍËùÖ£¬ÓÚÊÇÏÈ¿´¿´Ä¬ÈÏÇé¿ö£º
sysctl -a |grep net.core
·¢ÏÖ
net.core.rmem_max = 131071
net.core.rmem_default = 11264 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ