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

LinuxÒ³¿ò¼¶ÄÚ´æ¹ÜÀí´¦Àíϸ½Ú

ŪÇå³þ»ï°éϵͳËã·¨µÄÔ­ÀíÒÔºó£¬ÎÒÃǾͿÉÒÔ¿ª¿ªÐÄÐĵش¦ÀíÒ³¿òÁË¡£
ÎÒÃÇ¿ÉÒÔͨ¹ý6¸öÉÔÓвî±ðµÄº¯ÊýºÍºêÇëÇóÒ³¿ò¡£Ò»°ãÇé¿öÏ£¬ËûÃǶ¼·µ»ØµÚÒ»¸öËù·ÖÅäÒ³µÄÏßÐÔµØÖ·£¬»òÕß·ÖÅäʧ°ÜÔò·µ»ØNULL¡£
alloc_pages(gfp_mask, order)£ºÓÃÕâ¸öº¯ÊýÇëÇó2order ¸öÁ¬ÐøµÄÒ³¿ò¡£Ëû·µ»ØµÚÒ»¸öËù·ÖÅäÒ³¿òÃèÊö·ûµÄµØÖ·£¬»òÕßÈç¹ûʧ°Ü£¬Ôò·µ»ØNULL¡£
alloc_page(gfp_mask)£ºÓÃÓÚ»ñµÃÒ»¸öµ¥¶ÀÒ³¿òµÄºê£¬ËüÆäʵֻÊÇalloc_pages(gfp_mask, 0)¡£Ëü·µ»ØËù·ÖÅäÒ³¿òÃèÊö·ûµÄµØÖ·£¬»òÕßÈç¹û·ÖÅäʧ°Ü£¬Ôò·µ»ØNULL¡£
_ _get_free_pages(gfp_mask, order)£º¸Ãº¯ÊýÀàËÆÓÚalloc_pages( )£¬Ö»²»¹ýËü·µ»ØµÚÒ»¸öËù·ÖÅäÒ³¶ÔÓ¦µÄÄÚ´æÏßÐÔµØÖ·¡£
_ _get_free_page(gfp_mask)£ºÓÃÓÚ»ñµÃÒ»¸öµ¥¶ÀÒ³¿òµÄºê£¬ËüÒ²Ö»ÊÇ__get_free_pages(gfp_mask, 0)
get_zeroed_page(gfp_mask)£ºº¯ÊýÓÃÀ´»ñÈ¡ÂúÊÇ0µÄÒ³Ãæ£¬Ëüµ÷ÓÃalloc_pages(gfp_mask | __GFP_ZERO, 0)£¬È»ºó·µ»ØËù»ñȡҳ¿òµÄÏßÐÔµØÖ·¡£
_ _get_dma_pages(gfp_mask, order)£º¸Ãºê»ñÈ¡ÓÃÓÚDMAµÄÒ³¿ò£¬ËüÀ©Õ¹µ÷ÓÃ__get_free_pages(gfp_mask | _ _GFP_DMA, order)¡£
²ÎÊýgfp_maskÊÇÒ»×é±êÖ¾£¬ËüÖ¸Ã÷ÁËÈçºÎѰÕÒ¿ÕÏеÄÒ³¿ò£º
 
±êÖ¾
˵Ã÷
_ _GFP_DMA
ËùÇëÇóµÄÒ³¿ò±ØÐë´¦ÓÚZONE_DMA ¹ÜÀíÇø¡£
_ _GFP_HIGHMEM
ËùÇëÇóµÄÒ³¿ò´¦ÓÚZONE_HIGHMEM ¹ÜÀíÇø
_ _GFP_WAIT
ÔÊÐíÄں˶Եȴý¿ÕÏÐÒ³¿òµÄµ±Ç°½ø³Ì½øÐÐ×èÈû
_ _GFP_HIGH
ÔÊÐíÄں˷ÃÎʱ£ÁôµÄÒ³¿ò³Ø
_ _GFP_IO
ÔÊÐíÄÚºËÔڵͶËÄÚ´æÒ³ÉÏÖ´ÐÐI/O ´«ÊäÒÔÊÍ·ÅÒ³¿ò
_ _GFP_FS
Èç¹ûÇå0£¬Ôò²»ÔÊÐíÄÚºËÖ´ÐÐÒÀÀµÓÚÎļþϵͳµÄ²Ù×÷
_ _GFP_COLD
ËùÇëÇóµÄÒ³¿ò¿ÉÄÜΪ“ÀäµÄ”
_ _GFP_NOWARN
Ò»´ÎÄÚ´æ·ÖÅäʧ°Ü½«²»»á²úÉú¾¯¸æÐÅÏ¢
_ _GFP_REPEAT
ÄÚºËÖØÊÔÄÚ´æ·ÖÅäÖ±µ½³É¹¦
_ _GFP_NOFAIL
Óë__GFP_REPEAT Ïàͬ
_ _GFP_NORETRY
Ò»´ÎÄÚ´æ·ÖÅäʧ°Üºó²»ÔÙÖØÊÔ
_ _GFP_NO_GROW
slab ·ÖÅäÆ÷²»ÔÊÐíÔö´óslab ¸ßËÙ»º´æ
_ _GFP_COMP
ÊôÓÚÀ©Õ¹Ò³µÄÒ³¿ò
_ _GFP_ZERO
Èκηµ»ØµÄÒ³¿ò±ØÐë±»ÌîÂú0
ÏÂÃæ4¸öº¯ÊýºÍºêÖеÄÈÎÒâÒ»¸ö¶¼¿ÉÒÔÊÍ·ÅÒ³¿ò£º
_ _free_pages(page, order)£º¸Ãº¯ÊýÊ×ÏȲéÕÒpageÖ¸ÏòµÄÒ³ÃèÊö·û£»Èç¹û¸ÃÒ³¿òδ±»±£Áô£¨PG_reserved±ê־Ϊ0£©£¬¾Í°ÑÃèÊö·ûcount×ֶμõ1¡£Èç¹ûcount×ֶαäΪ0£¬¾Í¼Ù¶¨´Ópage¶ÔÓ¦Ò³¿ò¿ªÊ¼µÄ2order¸öÁ¬ÐøÒ³¿ò²»ÔÙ±»Ê¹Óã¬ÔÚÕâÖÖÇé¿öÏ£¬¸Ãº¯ÊýÊÍ·ÅÒ³¿ò¡£
free_pages(addr, order)£ºÕâ¸öº¯ÊýÀàËÆÓÚ _ _free_pages( )£¬Ö»²»¹ýËü½ÓÊյIJÎÊýΪҪ


Ïà¹ØÎĵµ£º

LinuxÉ豸ģÐÍÖ®input×ÓϵͳÏê½â

Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......

linuxÆô¶¯¹ý³ÌÏê½â

Ëæ×ÅLinuxµÄÓ¦ÓÃÈÕÒæ¹ã·º£¬ÌرðÊÇÔÚÍøÂçÓ¦Ó÷½Ã棬ÓдóÁ¿µÄÍøÂç·þÎñÆ÷ʹÓÃLinux²Ù×÷ϵͳ¡£ÓÉÓÚLinuxµÄ×ÀÃæÓ¦ÓúÍWindowsÏà±È»¹ÓÐÒ»¶¨µÄ²î¾à£¬ËùÒÔÔÚÆóÒµÓ¦ÓÃÖÐÍùÍùÊÇLinuxºÍWindows²Ù×÷ϵͳ¹²´æÐγÉÒì¹¹ÍøÂç¡£ÔÚ·þÎñÆ÷¶Ë´ó¶àʹÓÃLinuxºÍUnixµÄ£¬Ä¿Ç°LinuxµÄÉó¤Ó¦ÓÃÁìÓòÊǵ¥Ò»Ó¦ÓõĻù´¡·þÎñÆ÷Ó¦Óã¬Æ©ÈçDNSºÍDHCP·þÎñÆ÷¡¢W ......

dzÎöLinuxÏÂcoreÎļþ


µ±ÎÒÃǵijÌÐò±ÀÀ£Ê±£¬ÄÚºËÓпÉÄܰѸóÌÐòµ±Ç°ÄÚ´æÓ³Éäµ½coreÎļþÀ·½±ã³ÌÐòÔ±ÕÒµ½³ÌÐò³öÏÖÎÊÌâµÄµØ·½¡£×î³£³öÏֵ쬼¸ºõËùÓÐC³ÌÐòÔ±¶¼³öÏÖ¹ýµÄ´íÎó¾ÍÊÇ“¶Î´íÎó”ÁË¡£Ò²ÊÇ×îÄѲé³öÎÊÌâÔ­ÒòµÄÒ»¸ö´íÎó¡£ÏÂÃæÎÒÃǾÍÕë¶Ô“¶Î´íÎó”À´·ÖÎöcoreÎļþµÄ²úÉú¡¢ÒÔ¼°ÎÒÃÇÈçºÎÀûÓÃcoreÎļþÕÒµ½³öÏÖ±ÀÀ£µÄµØ·½¡ ......

ÓÖÒ»´Î±»linuxµÄ¹¤¾ßÕð¾ªÁË

    ǰһƪ²©¿Í»¹Ð´ÁË×Ô¼ºÐ´µÄ¶Ë¿Úת·¢¹¤¾ß£¬½ñÌìżȻÔÚÍøÉÏ¿´µ½½²ÃüÃû¹ÜµÀºÍnetcatÅäºÏµÄÓ÷¨£¬±»³¹µ×À×µ¹ÁË¡£
    Ô­À´ÒÔΪnetcat×ö²»µ½£¬Ô­À´ÊÇ×Ô¼ºÏë²»µ½£¬¶ø²»ÊÇnetcat×ö²»µ½……
    ·½·¨ÈçÏ£º
    $ mknod backpipe p
  &n ......

LINUXÄÚºËÖÐminºÍmaxºêµÄѧϰ

add linux kernel min, max define:
include/linux/kernel.h
/*
 * min()/max() macros that also do
 * strict type-checking.. See the
 * "unnecessary" pointer comparison.
 */
#define min(x,y) \
(__extension__\
({ \
        typeof( ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ