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

LinuxÄÚ´æ¹ÜÀíÖ®slab·ÖÅäÆ÷·ÖÎö(ÐøËÄ)


Æß£ºkmem_cache_free£¨£©µÄʵÏÖ
kmem_cache_freeÓÃÓÚ°Ñ´ÓslabÖзÖÅäµÄ¶ÔÏóÊͷŵô£¬Í¬·ÖÅäÒ»Ñù£¬ËüÊ×ÏÈ»á°ÑËü·Åµ½ACÖУ¬Èç¹ûACÂúÁË£¬Ôò°Ñ¶ÔÏóÊͷŵ½shareÁ´ÖУ¬Èç¹ûshareÒ²ÂúÁË£¬Ò²¾Í°ÑËüÊÍ·ÅÖÁslab¡£À´¿´¾ßÌåµÄ´úÂ룺
void kmem_cache_free (kmem_cache_t *cachep, void *objp)
{
     unsigned long flags;
 
     local_irq_save(flags);
     __cache_free(cachep, objp);
     local_irq_restore(flags);
}
º¯Êýµ÷ÓÃ__cache_free(),´úÂëÈçÏ£º
static inline void __cache_free (kmem_cache_t *cachep, void* objp)
{
     struct array_cache *ac = ac_data(cachep);
 
     check_irq_off();
     //DEBUGÓ㬺öÂÔ
     objp = cache_free_debugcheck(cachep, objp, __builtin_return_address(0));
     //Èç¹ûACÖеĶÔÏñûÓг¬¹ýÏÞÖÆ£¬ÄǾͰÑËüÊͷŵ½ACÖС£
     if (likely(ac->avail < ac->limit)) {
         STATS_INC_FREEHIT(cachep);
         ac_entry(ac)[ac->avail++] = objp;
         return;
     } else {
         //Èç¹ûACÖжÔÏóÊýÄ¿µ½ÁËÏÞÖµ£¬Ôòcache_flusharray£¨£©ºó£¬ÔٰѶÔÏñ¼ÓÈëACÖÐ
         STATS_INC_FREEMISS(cachep);
         cache_flusharray(cachep, ac);
         ac_entry(ac)[ac->avail++] = objp;
     }
}
Èç¹ûµ±Ç°ACÖжÔÏóÊýÒѾ­µ½´ïÏÞÖµ£¬¾Í»áµ÷ÓÃcache_flusharray()½«ÀïÃæµÄ¶ÔÏó“ˢД³öÈ¥¡£´úÂëÈçÏ£º
static void cache_flusharray (kmem_cache_t* cachep, struct array_cache *ac)
{
     int batchcount;
    


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨Èý£© HCI²ã±à³Ì

1. HCI²ãЭÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI)  ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈЭÒé ......

°²×°ATI LinuxÏÔ¿¨Çý¶¯

LINUX´ó¶à·¢ÐаæÄ¬Èϰ²×°¶¼Ã»ÓÐ×°ÏÔ¿¨3DÇý¶¯£¬ÐëÊÖ¹¤°²×°¡£
ATI ÏÔ¿¨µÄLinuxÇý¶¯³£¼ûµÄÓÐÁ½ÖÖ£ºATI catalyst drivers ºÍ open source RadeonHD drivers¡£ATI catalyst driversÊǹٷ½Ö§³ÖµÄ°æ±¾£¬Ö§³Ö´ó¶àÊýATIÏÔ¿¨£¬¿ÉÒÔÔÚ http://support.amd.com/us/gpudownload/Pages/index.aspx Ñ¡Ôñ¶ÔÓ¦µÄ°æ±¾ÏÂÔØ¡£
ÏÂÃæÊÇATI Catal ......

Linux+Apache+Mysql+PHPµäÐÍÅäÖÃ


°æÈ¨ÉùÃ÷£º¿ÉÒÔÈÎÒâ×ªÔØ£¬×ªÔØÊ±ÇëÎñ±ØÒÔ³¬Á´½ÓÐÎʽ±êÃ÷ÎÄÕÂԭʼ³ö´¦ºÍ×÷ÕßÐÅÏ¢¼°±¾ÉùÃ÷
http://www.5ilinux.com/lamp01.html
¹Ø¼ü×Ö£ºapache+mysql+php apache mysql php ÅäÖà lamp ·þÎñÆ÷ web
Linux+Apache+Mysql+PHPµäÐÍÅäÖÃ
µ÷ÊÔ»·¾³£ºRedhat9.0 Apache1.3.29 Mysql3.23.58 PHP4.3.4
LinuxϵͳµÄ°²×°ÎҾͲ»½²Á ......

linuxÖÐELF¼ÓÔØ¹ý³Ì·ÖÎö

sys_execve
   | - do_execve
|
| - search_binary_handler         
           |- linux_binfmt= elf_format
       |- elf_format-> load_elf_binary
| -&nbs ......

LinuxÄÚ´æ¹ÜÀíÖ®slab·ÖÅäÆ÷·ÖÎö(ÐøÈý)

Áù£ºkmem_cache_allocµÄʵÏÖ·ÖÎö:
ÎÒÃÇÔÚÉÏÃæ¿ÉÒÔ¿´µ½£¬´´½¨Ò»¸öcacheÃèÊö·ûµÄʱºò£¬²¢Ã»ÓÐÕâÖ®·ÖÅäslabÊý¾Ý¡£ÏÖÔÚÎÒÃÇÀ´¿´Ò»ÏÂÔõô´ÓcacheÖÐÉêÇë¶ÔÏó
void * kmem_cache_alloc (kmem_cache_t *cachep, int flags)
{
     return __cache_alloc(cachep, flags);
}
ʵ¼ÊÉÏ»áµ÷ÓÃ__cache_allo ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ