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ÎÊýΪҪ
Ïà¹ØÎĵµ£º
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
Ëæ×ÅLinuxµÄÓ¦ÓÃÈÕÒæ¹ã·º£¬ÌرðÊÇÔÚÍøÂçÓ¦Ó÷½Ã棬ÓдóÁ¿µÄÍøÂç·þÎñÆ÷ʹÓÃLinux²Ù×÷ϵͳ¡£ÓÉÓÚLinuxµÄ×ÀÃæÓ¦ÓúÍWindowsÏà±È»¹ÓÐÒ»¶¨µÄ²î¾à£¬ËùÒÔÔÚÆóÒµÓ¦ÓÃÖÐÍùÍùÊÇLinuxºÍWindows²Ù×÷ϵͳ¹²´æÐγÉÒì¹¹ÍøÂç¡£ÔÚ·þÎñÆ÷¶Ë´ó¶àʹÓÃLinuxºÍUnixµÄ£¬Ä¿Ç°LinuxµÄÉó¤Ó¦ÓÃÁìÓòÊǵ¥Ò»Ó¦ÓõĻù´¡·þÎñÆ÷Ó¦Óã¬Æ©ÈçDNSºÍDHCP·þÎñÆ÷¡¢W ......
1¡¢int 4×Ö½Ú
long 8×Ö½Ú
float 4×Ö½Ú
double 8×Ö½Ú
long double 16×Ö½Ú
2¡¢Ò»¸ö×Ö·û±äÁ¿Ö»ÄÜ´æ·ÅÒ»¸ö×Ö·û¡¢Ò»¸ö×Ö½Ú´æ·ÅÒ»¸ö×Ö½Ú
char c;
c = 'a'; c = '\034' ......
Linux±ØÑ§µÄ60¸öÃüÁî
LinuxÌṩÁË´óÁ¿µÄÃüÁÀûÓÃËü¿ÉÒÔÓÐЧµØÍê³É´óÁ¿µÄ¹¤×÷£¬Èç´ÅÅ̲Ù×÷¡¢Îļþ´æÈ¡¡¢Ä¿Â¼²Ù×÷¡¢½ø³Ì¹ÜÀí¡¢ÎļþȨÏÞÉ趨µÈ¡£ËùÒÔ£¬ÔÚLinuxϵͳÉϹ¤×÷Àë²»¿ªÊ¹ÓÃϵͳÌṩµÄÃüÁî¡£ÒªÏëÕæÕýÀí½âLinuxϵͳ£¬¾Í±ØÐë´ÓLinuxÃüÁîѧÆð£¬Í¨¹ý»ù´¡µÄÃüÁîѧϰ¿ÉÒÔ½øÒ»²½Àí½âLinuxϵͳ¡£²»Í¬Linux·¢ÐаæµÄÃüÁîÊýÁ¿²»Ò ......
дµÃÂùºÃµÄlinuxѧϰ±Ê¼Ç
linuxĿ¼¼Ü¹¹
/ ¸ùĿ¼
/bin ³£ÓõÄÃüÁî binary file µÄÄ¿錄
/boot ´æ·ÅϵͳÆô¶¯Ê±±ØÐë¶ÁÈ¡µÄµµ°¸£¬°üÀ¨ºËÐÄ (kernel) ÔÚÄÚ
/boot/grub/menu.lst GRUBÉèÖÃ
/boot/vmlinuz& ......