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

LinuxÖеÄÄÚ´æ·ÖÅäºÍÊÍ·ÅÖ®__alloc_bootº¯Êý·ÖÎö

 ¶ÔÓÚÕâ¸öº¯Êý£¬ÆäʵÊǺܶàºê¶¨Òåµ÷Óõĺ¯Êý£¬ÆäÖÐalloc_bootmem_low_pages(x)ÊÇÆäÖÐÒ»¸öµ÷ÓÃËüµÄºê£¬´ó¼Ò¿ÉÒÔÈÏΪÕâЩºêÖ»ÊǰÑÕâ¸ö__alloc_bootmemʵÖÊÐԵĺ¯Êý½øÐÐÁË·â×°¡£#define alloc_bootmem_low_pages(x)Ï൱ÓÚ__alloc_bootmem((x), PAGE_SIZE, 0)£¬¾ÍÊÇ´Ó0µØÖ·¿ªÊ¼µÄµÍ¶ËÄÚ´æ·ÖÅä°´Ò³´óС¶ÔÆëµÄÄÚ´æ¡£ºÃÁË£¬ÎªÁËÁ˽âÕâ¸öº¯ÊýÊÇÔõôÔËÐеģ¬ÎÒÃǾʹÓËüµÄÔ´Í·¿ªÊ¼½²Æð°É¡£
 ÎÒÃǻص½paging_init()Õâ¸öº¯Êý£¬ÔÚÉÏËßµÄÎÄÕµÄbootmem_init()º¯Êý·µ»ØÖ®ºó£¬¾Í½Óׯص½paging_init()¡£
 memcpy(&meminfo, mi, sizeof(meminfo));//ÕâÀïÆðµ½¸üеÄ×÷Óá£
 /*
  * allocate the zero page.  Note that we count on this going ok.
  */
 zero_page = alloc_bootmem_low_pages(PAGE_SIZE);//´Ó0µØÖ·µÍ¶ËÄڴ濪ʼ·ÖÅä1Ò³¿ÕÏÐÄڴ棬½«¸ÃÒ³µÄҳ֡λÂë±íÖÃ1£¬²¢½«ÕâÒ²µÃµÃÄÚÈÝÈ«²¿Çå0.ÎÒÃÇ»¹ÊÇ×ÐϸµãÀ´·ÖÎöÕâ¶Î´úÂë°É¡£
 void * __init __alloc_bootmem (unsigned long size, unsigned long align, unsigned long goal)//sizeÊÇÉêÇëµÄÄÚ´æ´óС£¬alignÊǾö¶¨µÄÆðʼµØÖ·¿ªÊ¼µÄÄÚ´æ¶ÔÆë·½Ê½£¬goalÊÇ·ÖÅäÄÚ´æµÄÆðʼµØÖ·£¬Èç¹û²»Ðеϰ¾Í´Ó0µØÖ·¿ªÊ¼¡£
{
 pg_data_t *pgdat = pgdat_list;//Õâ¸ö¾ÍÊÇÄǸöÖ¸Ïòdiscontig_node_data[0]µÄÁ´±í¡£
 void *ptr;
 for_each_pgdat(pgdat)//ÕâÊÇÒ»¸öºê¶¨Ò壺#define for_each_pgdat(pgdat)  for (pgdat = pgdat_list; pgdat; pgdat = pgdat->pgdat_next)¡£ÆäʵºÜ¼òµ¥£¬¾ÍÊÇͨ¹ýÕâ¸öÁ´±í´Ó0ºÅÄÚ´ænode¿ªÊ¼±éÀúËùÓеÄdiscontig_node_data[n]¡£
  if ((ptr = __alloc_bootmem_core(pgdat->bdata, size,align, goal)))//µ÷Ó÷ÖÅäÄÚ´æºËÐĺ¯Êý£¬ÎÒÃÇÔÚÏÂÃæ½ô½Ó×ŵÄλÖýéÉÜ¡£
   return(ptr);
 /*
  * Whoops, we cannot satisfy the allocation request.
  */
 printk(KERN_ALERT "bootmem alloc of %lu bytes failed!\n", size);
 panic("Out of memory");
 return NULL;
}
 static void * __init __alloc_bootmem_core(struct bootmem_data *bdata, unsigned long size,unsigned long align, unsigned long goal)//ÕâÀïºÍÇ°ÃæµÄ__alloc_bootmem()²»Í¬µÄµØ·½¾ÍÊÇÔÚµÚÒ»Ï¶ÔÓÚÕâÒ»ÏîÎÒÃÇÊDZȽÏÊìϤµÄ¡£
{
  unsigned long offset, remaining_size,


Ïà¹ØÎĵµ£º

LinuxĿ¼½á¹¹

Linux·¢Ðа汾֮¼äµÄ²î±ðÆäʵºÜÉÙ£¬²î±ðÖ÷Òª±íÏÖÔÚϵͳ¹ÜÀíµÄÌØÉ«¹¤¾ßÒÔ¼°Èí¼þ°ü¹ÜÀí·½Ê½µÄ²»Í¬£¬³ý´ËÖ®Í⣬ûÓÐʲô´óµÄ²î±ð£» ±ÈÈçFedoraÈí¼þ°ü¹ÜÀí¹¤¾ßÊÇrpm£¬¶øSlackwareÊÇpkgtool »òinstallpkgµÈ£»
ÑÔ¹éÕý´«£¬ÎÒÃǽÓ×Å˵Îļþϵͳ×éÖ¯½á¹¹¡£
/ LinuxÎļþϵͳµÄÈë¿Ú£¬Ò²ÊÇ´¦ÓÚ×î¸ßÒ»¼¶µÄĿ¼£»
/bin »ù´¡ÏµÍ³ËùÐèÒªµ ......

ÊÖ¹¤ÊÍ·ÅlinuxÄÚ´æ

µ±ÔÚLinuxÏÂÆµ·±´æÈ¡Îļþ
ºó£¬ÎïÀíÄÚ´æ»áºÜ¿ì±»Óù⣬µ±³ÌÐò
½áÊøºó£¬ÄÚ´æ²»»á±»Õý³£ÊÍ·Å£¬¶øÊÇÒ»Ö±×÷Ϊcaching¡£Õâ¸öÎÊÌâ£¬Ã²ËÆÓв»ÉÙÈËÔÚÎÊ£¬²»¹ý¶¼Ã»Óп´µ½ÓÐʲôºÜºÃ½â¾ö
µÄ°ì·¨¡£ÄÇôÎÒÀ´Ì¸Ì¸Õâ¸öÎÊÌâ¡£
Ò»¡¢Í¨³£Çé¿ö
ÏÈÀ´ËµËµfreeÃüÁî
£º
ÒýÓÃ
[root@server ~]# free -m
total used free shared buffers cac ......

»ùÓÚLinuxµÄÖÇÄÜÊÖ»úÊÇδÀ´µÄ·½Ïò

Ëæ×ÅÓ²¼þ²»¶ÏµÄ·¢Õ¹£¬Î´À´µÄÖÇÄÜÊÖ»ú½«Ô½À´Ô½½Ó½üPCµÄÐÔÄÜ£¬Ò»¸öÇ¿´óµÄÊÖ»ú²Ù×÷ϵͳ½«ÊÇÍÚ¾ò²»¶Ï·ÉÔ¾µÄÊÖ»úÓ²¼þÐÔÄܵĹؼü£¬Ö»ÓÐÇ¿´óµÄ²Ù×÷ϵͳ²ÅÄÜÖ§³Ö¸÷ÖÖ²»¶Ï·¢Õ¹µÄÊÖ»úÓ¦Óã¬ÈçLinuxϵͳ¶ÔjavaµÄÍêÃÀÖ§³ÖÒÔ¼°ÓÅÔ½µÄ¶à½ø³Ìµ÷¶È£¬Ä¦ÍÐÂÞÀ­ºÜÔç¾ÍÍÆ³ö»ùÓÚLinuxϵͳµÄÊÖ»ú£¬Ëæ×ÅGoogleµÄAndroid²Ù×÷ϵͳµÄÍÆ³ö£¬ÁíÒ»¸ö»ùÓÚL ......

linuxÏÂÓëÆäËûÖÕ¶ËͨѶ write³ö´í

ÏÈÓÃwhoÃüÁî²é¿´ËùÓеǽÖÕ¶Ë
#who -uH
Êä³öÈçÏ£º
NAME     LINE         TIME             IDLE          PID COMMENT
root     :0           2010-03-01 19:13   ?     & ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ