LinuxÖеÄÄÚ´æ·ÖÅäºÍÊÍ·ÅÖ®slab·Ö¸îÆ÷
slab·ÖÅäÆ÷ÐÎÏóµØËµ¾ÍÊÇÏÈÓÉ»ï°é»úÖÆÉêÇë¿ÕÏÐÄÚ´æ¿Õ¼ä£¬È»ºóslab·ÖÅäÆ÷ÔÙ°ÑÕâ¸öÄÚ´æ¿Õ¼ä½øÐзָ°´Í¬Ñù´óСÀ´½øÐзָ×îºóÔÙÓÃһЩÊý¾Ý½á¹¹À´½øÐйÜÀí¡£ÉÏÃæÖ»ÊÇÐÎÏóµØËµ·¨¡£ÎÒÃÇÆ½Ê±°ÑÓÉslab½øÐзָîºóµÄÄÚ´æÎÒÃdzÆÖ®Îª¸ßËÙ»º´æÄÚ´æ¡£ÕâÑù¿´À´¾ÍÖªµÀËùνµÄ¸ßËÙ¾ÍÊÇ˵²»ÊÇÿ´Î·ÖÅäºÍÊÍ·ÅÄÚ´æ¶¼ÒªÕÒ»ï°é»úÖÆ£¬¿ÉÒÔÏÈ·ÃÎÊÕâЩ¸ßËÙÄÚ´æµÄ£¬ºÍÎÒÃÇÇ°ÃæÎÄÕÂÖÐÌáµ½µÄÀäÈÈÇøÊÇÒ»¸ö×÷Óõġ£ÎÒÃǻᷢÏÖÎÒÃÇÔÀ´ËµµÄÀäÈÈÇøºÍ»ï°é»úÖÆ£¬¶¼ÊÇÒÔҳΪµ¥Î»½øÐзÖÅäµÄ¡£Õâ¾ÍÓеãÏÞÖÆÁË£¬ÎªÊ²Ã´ÎÒ²»¿ÉÒÔÔÙ°´Ð¡µãµÄÄÚ´æÈ¥·ÖÅäÄØ£¿ËùÒԾͲúÉúÁËslab·ÖÅäÆ÷ÁË¡£
µ±ÎÒÃÇ´Ó¸ßËÙ»º´æÄÚ´æÖзÖÅä¶ÔÏóʱ£¨ÕâÀïÎÒÃDz»ÔÙ˵ÄÚ´æÒ³ÁË£¬ÎÒÃǸÃΪ¶ÔÏ󣬼´ÄÚ´æ¶ÔÏ󣩣¬Ê×Ïȼì²é¶ÔÓ¦´¦ÀíÆ÷µÄ¸ßËÙ»º´æÄÚ´æÕóÁÐÖÐÊÇ·ñÓÐδʹÓõÄÄÚ´æ¶ÔÏó¡£Ê²Ã´ÊÇ´¦ÀíÆ÷µÄ¸ßËÙ»º´æÄÚ´æÕóÁУ¿--kmem_cache_t½á¹¹ÀïÃæÒ²ÎªÃ¿¸ö´¦ÀíÆ÷Ô¤ÁôÒ»¸ö¸ßËÙ»º³åÄÚ´æÕóÁУ¨struct array_cache£©£¬ÎÒÃǶ¼ÊÇÓÃÆä³ÉÔ±*array[NR_CPUS]Õâ¸öÖ¸ÕëÊý×éÀïÃæµÄÿ¸ö³ÉÔ±¶¼ÊÇÖ¸Ïòstruct array_cache½á¹¹±äÁ¿£¬½ô¸úÔÚstruct array_cache½á¹¹ºóÃæµÄÊÇÁ¬Ðø´æ·ÅµÄ¸Ãstruct array_cache½á¹¹Ö¸¶¨¸öÊýµÄ¶ÔÏóÖ¸Õ룬ÕâЩָÕëÖ¸ÏòµÄ¶ÔÏó¾ÍÊǽ«À´Òª±»·ÖÅäµÄ¿Õ¼ä¡£kmem_cache_t½á¹¹¾ÍÊÇËãÊÇÎÒÃÇ˵µÄ¸ßËÙ»º´æÄÚ´æµÄÃèÊö½á¹¹¡£
Èç¹ûÎÒÃÇ·¢ÏÖ¶ÔÓ¦´¦ÀíÆ÷µÄ¸ßËÙ»º´æÄÚ´æÕóÁÐÖÐÓÐδʹÓõÄÄÚ´æ¶ÔÏó£¬Ö±½Ó°ÑÎÒÃǸղÅ˵µÄstruct arrary_cache½á¹¹Ö¸¶¨¸öÊýµÄ¶ÔÏóÖ¸Õë´«¸øµ÷ÓÃÕß¡£Èç¹ûûÓУ¬ÄÇôÊ×ÏȲéÕÒ¹²Ïí¸ßËÙ»º´æÄÚ´æÕóÁÐÖÐÊÇ·ñÓпÉÓõĶÔÏó£¬ÔÚ¸ßËÙ»º´æÄÚ´æÃèÊö½á¹¹£¨struct kmem_cache_t£©ÖÐÓÐÒ»¸ö³ÉÔ±¿ÉÒÔ·ÃÎʵ½Ëü£¬¾ÍÊÇstruct kmem_list3 listsÖеÄshare³ÉÔ±¡£ÆäʵÕâ¸öÊÇÕæÕý¶à¸öcpuµÄʱºò²Å»á²ÉÈ¡µÄ·½°¸¡£Èç¹û·¢ÏÖÕâÀïÓпÉÓÃÄÚ´æ¶ÔÏóµÄ»°£¬ÎÒÃÇÏȰÑÄÚ´æ¶ÔÏóµÄµØÖ·¸´ÖƵ½¶ÔÓ¦´¦ÀíÆ÷µÄ¸ßËÙ»º´æÄÚ´æÕóÁÐÖУ¬ÔÙ´Ó´¦ÀíÆ÷µÄ¸ßËÙ»º´æÄÚ´æÕóÁÐÖзÖÅä¶ÔÏó¡£
Ò»°ãÇé¿öÈç¹û¹²Ïí¸ßËÙ»º´æÄÚ´æÕóÁÐÖÐҲûÓпÉÓöÔÏóʱ£¬ÎÒÃǾÍÈ¥²éÕÒ²¿·Ö¿ÕÏкÍÈ«²¿¿ÕÏÐslabÁÐ±í¡£struct kmem_list3 listsÊǸßËÙ»º´æÄÚ´æÃèÊö½á¹¹struct kmem_cache_tµÄ³ÉÔ±£¬Õâ¸öÁ´±í½á¹¹¾ÍÊÇÓÃÀ´ÃèÊöÉÏÊöµÄslabÁÐ±í¡£Á´±í½á¹¹ÃèÊöÁËÈýÖÖ¸ßËÙ»º´æÄڴ浥룬ÓÉÒ»¸östruct slab½á¹¹¹ÜÀíµÄÒ»×éÌØ¶¨´óСµÄÄÚ´æ¶ÔÏó½Ð×öÒ»¸ö¸ßËÙ»º´æÄڴ浥룬һ¸öÄڴ浥λ°üÀ¨Ò»Ð©´óСһÖµÄÄÚ´æ¶ÔÏó¡¢Ò»Ð©É«¿é£¨²»»á±»µ÷Óõģ¬Ö»ÊÇÆðµ½¶ÔÆëµÄÓÃ;£©¡¢Ò»¸östruct slab½á¹¹¡¢Óëÿ¸öÄ
Ïà¹ØÎĵµ£º
2010-3-8
Ò»¡¢gccµ÷ÊÔ£º
Èç¹û±àÒëʱ£¬Ê¹ÓÃÏÂÃæµÄÖ¸Áî(Ôö¼ÓÁ˲ÎÊý-g)£¬¾Í»áÉú³É´øÔ´´úÂëµ÷ÊÔ·ûºÅµÄ¿ÉÖ´ÐÐÎļþ¡£±àÒëÐγɵĿÉÖ´ÐÐÎļþÓÐ7KB¡£Ö®ËùÒÔÔö¼ÓÁË2KB£¬¾ÍÊÇÒòΪÔö¼ÓµÄµ÷ÊÔ·ûºÅ¡£
gcc -o calc calcutlator.c -g
½øÒ»²½µØ£¬¾Í¿ÉÒÔÖ´ÐÐÏÂÃæµÄÖ¸ÁîÆô¶¯µ÷ÊÔ¹¤¾ß½øÈëµ÷ÊÔ»·¾³¶Ô³ÌÐò½øÐе÷ÊÔÁË¡£
gdb calc
ÔÚµ÷ÊÔ»·¾³Ï ......
Linux I2CºËÐÄ¡¢×ÜÏßÓëÉ豸Çý¶¯
×¢:
ÔÚlinux2.6.32°æ±¾ÖÐÓÐÕâÑùµÄ´úÂëÓë×¢ÊÍ:
struct i2c_driver {
unsigned int class;
/* Notifies the driver that a new bus has appeared or is about to be
* removed. You should avoid using this if y ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
Linux
·¢ÐаæÓë
Linux
²úÆ·Á½ÕßÏà²îºÜ´ó£¬ÓÐʱÈÝÒ×»ìÏý£¬·¢ÉúÎó½â£¬ÉõÖÁÒªÄÖ³ö´óЦ»°À´¡£ÎªÊ²Ã´£¿
´Ó×ÖÃæÉÏÀ´½²£¬·¢Ðа棨
Distribution
£©ºÍ²úÆ ......
½ø³ÌÔÚ²Ù×÷ϵͳÖж¼ÓÐÒ»¸ö»§¿Ú£¬ÓÃÓÚ±íʾÕâ¸ö½ø³Ì¡£Õâ¸ö»§¿Ú²Ù×÷ϵͳ±»³ÆÎªPCB£¨½ø³Ì¿ØÖƿ飩£¬ÔÚlinuxÖоßÌåʵÏÖÊÇ
task_structÊý¾Ý½á¹¹£¬Ëü¼Ç¼ÁËһϼ¸¸öÀàÐ͵ÄÐÅÏ¢£º
1.״̬ÐÅÏ¢£¬ÀýÈçÕâ¸ö½ø³Ì´¦ÓÚ¿ÉÖ´ÐÐ״̬£¬ÐÝÃߣ¬¹ÒÆðµÈ¡£
2.ÐÔÖÊ£¬ÓÉÓÚunixÓкܶà±äÖÖ£¬½ø³ÌÓÐ×Ô¼º¶ÀÌØµÄÐÔÖÊ¡£
3.×ÊÔ´£¬×ÊÔ´µÄÁ´½Ó±ÈÈçÄڴ棬 ......
linux ³£ÓÃÃüÁî×ܽá:
Ò»¡£ ͨÓÃÃüÁî:
1. date £ºprint or set the system date and time
2. stty -a: ¿ÉÒԲ鿴»òÕß´òÓ¡¿ØÖÆ×Ö·û(Ctrl-C, Ctrl-D, Ctrl-ZµÈ)
3. passwd: print or set the system date and time (ÓÃpasswd -h²é¿´)
4. logout, login: µÇ¼shellµÄµÇ¼ºÍ×¢ÏúÃüÁî
5. pwd: print or set the system ......