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

LinuxÄÚºËÖÐÄÚ´æcacheµÄʵÏÖ


1. ǰÑÔ
kmem_cacheÊÇLinuxÄÚºËÌṩµÄ¿ìËÙÄڴ滺³å½Ó¿Ú£¬ÕâЩÄÚ´æ¿éÒªÇóÊÇ´óСÏàͬµÄ£¬ÒòΪ·ÖÅä³öµÄÄÚ
´æÔÚ½Ó¿ÚÊÍ·Åʱ²¢²»ÕæÕýÊÍ·Å£¬¶øÊÇ×÷Ϊ»º´æ±£Áô£¬ÏÂÒ»´ÎÇëÇó·ÖÅäʱ¾Í¿ÉÒÔÖ±½ÓʹÓã¬Ê¡È¥Á˸÷ÖÖ
ÄÚ´æ¿é³õʼ»¯»òÊͷŵIJÙ×÷£¬Òò´Ë·ÖÅäËٶȺܿ죬ͨ³£ÓÃÓÚ´óÊýÁ¿µÄÄÚ´æ¿é·ÖÅäµÄÇé¿ö£¬Èçinode½Ú
µã£¬skbuffÍ·, netfilterµÄÁ¬½ÓµÈ£¬ÆäʵkmallocÒ²ÊÇ´Ókmem_cacheÖзÖÅäµÄ£¬¿Éͨ
¹ý/proc/slabinfoÎļþÖ±½Ó¶ÁÈ¡cache·ÖÅäÇé¿ö¡£
ÒÔÏÂLinuxÄں˴úÂë°æ±¾Îª2.6.19.2, ³ÌÐòÖ÷Òª³ö×Ômm/slab.cÎļþ, 2.4ºÍ2.6»ù±¾Ô­Àí²î²»¶à,µ«¾ß
ÌåʵÏÖÖÐÓÐÁ˲»Éٱ仯¡£
2. slabºÍpage
ÔÚ½éÉÜkmem_cache֮ǰÐèÒªÏȽéÉÜpageºÍslabÕâÁ½¸ö¶¨Òå¡£ÖÚËùÖÜÖª£¬pageÊÇÄÚºËÖÐÄÚ´æ»ù±¾¹ÜÀíµ¥
λ£¬Ã¿¸öpageµÄÄÚ´æ´óСÊǹ̶¨µÄ£¬¶ÔX86»úÆ÷À´Ëµ£¬ÊÇ4K£»slabÔòÊÇkmem_cacheµÄ¾ßÌåµÄÄÚ´æ¿Õ¼ä
ÐÎʽ£¬¸ù¾ÝcacheµÄ¶ÔÏóµÄ´óС£¬Ã¿¸öslab¿ÉÒÔÓÐ1¸öpageµ½×î¶à32(128/4)¸öpage£»Èç¹ûcache¶ÔÏó±È
Ò»¸öpageµÄ¿Õ¼äС£¬Õâ¸öslabÖлáÈÝÄɶà¸ö¶ÔÏóÒÔ¾¡¿ÉÄܵØÀûÓÿռ䡣
struct slab {
// Á´±í
 struct list_head list;
// δÓÿռäµÄÆ«ÒÆ
 unsigned long colouroff;
// ¾ßÌåµÄÄڴ滺³åÇøµØÖ·
 void *s_mem;  /* including colour offset */
// ÿ¸öslabÖеÄÕýÔÚʹÓõĶÔÏóÊýÁ¿
 unsigned int inuse; /* num of objs active in slab */
// ¿ÕÏжÔÏó
 kmem_bufctl_t free;
 unsigned short nodeid;
};
 
3. Êý¾Ý½á¹¹
kmem_cacheÊý¾Ý½á¹¹²¢Ã»Óж¨ÒåÔÚ.hµÄÍ·ÎļþÖУ¬ÔÚÍ·ÎļþÖÐÖ»ÊǸýṹµÄÒ»¸öÀàÐͶ¨Ò壬ÒòΪÆäËû
µØ·½Ê¹ÓÃkmem_cacheʱÍêÈ«²»ÐèÒªÖªµÀÆäÄÚ²¿½á¹¹£¬¸÷½Ó¿Úº¯ÊýÍêÈ«·â×°½á¹¹ÖеÄÐÅÏ¢£¬ÕâÊÇÓÃCʵ
ÏÖOO±à³ÌµÄ³£Ó÷½Ê½¡£
/* include/linux/slab.h */
// ÕâÀïÖ»ÊÇÒ»¸öÀàÐͶ¨Òå
typedef struct kmem_cache kmem_cache_t;
/* mm/slab.c */
// ÔÚCÎļþÖнøÐÐÍêÕûµÄ¶¨Òå
/*
 * struct array_cache
 *
 * Purpose:
 * - LIFO ordering, to hand out cache-warm objects from _alloc
 * - reduce the number of linked list operations
 * - reduce spinlock operations
 *
 * The limit is stored in the per-cpu structure to reduce the data cache
 * footprint.
 *
 */
// ÕâÊÇÿ¸öCPU¶ÔÓ¦µÄcacheÊý¾Ý
struct array_cache {
 unsign


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨ËÄ£© L2CAP²ã±à³Ì

£¨L2CAPЭÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPЭÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼­Á¬½Ó¿ØÖƺÍÊÊÅäЭÒé (L2CAP) ΪÉϲãЭÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àЭÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãЭÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......

Linux tty, pty, pts


LinuxÖÐtty¡¢pty¡¢ptsµÄ¸ÅÄîÇø±ð
»ù±¾¸ÅÄ
1> tty(ÖÕ¶ËÉ豸µÄͳ³Æ):
ttyÒ»´ÊÔ´ÓÚTeletypes£¬»òÕßteletypewriters£¬Ô­À´Ö¸µÄÊǵ紫´ò×Ö»ú£¬ÊÇͨ¹ý´®ÐÐÏßÓôòÓ¡»ú¼üÅÌͨ¹ýÔĶÁºÍ·¢ËÍÐÅÏ¢µÄ¶«Î÷£¬ºóÀ´Õâ¶«Î÷±»¼üÅÌÓëÏÔʾÆ÷È¡´ú£¬ËùÒÔÏÖÔÚ½ÐÖն˱ȽϺÏÊÊ¡£
ÖÕ¶ËÊÇÒ»ÖÖ×Ö·ûÐÍÉ豸£¬ËüÓжàÖÖÀàÐÍ£¬Í¨³£Ê¹ÓÃttyÀ´¼ò³Æ¸÷ ......

Linux½»²æ±àÒ빤¾ß»·¾³±äÁ¿ÉèÖ÷½·¨

ÐÞ¸Ä/etc/profileÎļþ£º
# vim /etc/profile
Ôö¼Ó·¾¶ÉèÖã¬ÔÚĩβ(·´ÕýÊÇ×îºóÒ»ÐÐ)Ìí¼ÓÈçÏÂ,±£´æ/etc/profileÎļþ£º
export PATH£½$PATH:/usr/local/arm/3.4.1/bin
ÖØÆôÐéÄâ»ú¼´¿ÉÉúЧ¡£
ÓÃÃüÁî#arm-linux-gcc -v²é¿´ÊÇ·ñÉúЧ¡£ ......

Linux ÉÏÍøÉèÖÃ

ǰ¼¸ÌìÖÆ×÷ÁËUSBÆô¶¯Å̺󣬷¢ÏÖÎÞ·¨ÉÏÍø£¬ÓÚÊǾÍÔÚÍøÉÏÕÒÁËЩ×ÊÁÏ£¬×ܽáÈçÏ£º
Ò»¡¢ÉèÖñ¾»úIPµØÖ·
ifconfig eth0 192.168.1.100
¶þ¡¢ÉèÖÃÍø¹Ø
route delete default
oute add default gw 192.168.1.1(
Ìí¼ÓĬÈÏÍø¹Ø,ÓõÄÊÇÌúͨADSL) ......

linux·þÎñ´óÈ«

Òò¹¤×÷ÐèÒª¾­³£Òª²éÕÒÕâЩ·þÎñÓÃ;£¬Òò´Ë½«ÍøÉϵÄһЩÁÐ±í½øÐÐÏàÓ¦ÊÕ¼¯ÕûÀí£¬·½±ã²éÔÄ
²»Òª¹Ø±ÕÒÔÏ·þÎñ£¨³ý·ÇÄãÓгä×ãµÄÀíÓÉ£©£º
acpid, haldaemon, messagebus, klogd, network, syslogd
ÇëÈ·¶¨Ð޸ĵÄÊÇÔËÐм¶±ð 3 ºÍ 5¡£
NetworkManager, NetworkManagerDispatcher
       &nbs ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ