Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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ÄÚºËÉý¼¶µÄ»ù±¾²½Öè

Ò»¡¢±¾´ÎÄں˱àÒëÐÂÄÚºËËùÉæ¼°Èí¼þ°æ±¾
 
“gcc –version”¿É²éѰGCC°æ±¾------4.3.2 20081105£¨Red Hat 4.3.2-7£©
“make –v”¿É²éѯ Gnu make°æ±¾-----3.81
“ld –V£¨v£©¿É²éѯGNU ld°æ±¾-----2.18.50.0.9-7¡£f c10 20080822
“fdformat --version”ÃüÁî ......

[×ªÔØ]LinuxÈȲå°Î

 
½«¿ÉÒÆ¶¯É豸Á¬Èëϵͳʱ£¬ÏµÍ³µÄºǫ́ÖлáÒÀ´Î·¢ÉúÈçÏÂʼþ£º
l Äں˼ì²âµ½ÐÂÓ²¼þ²åÈ룬Ȼºó·Ö±ð֪ͨhotplugºÍudev¡£Ç°ÕßÓÃÀ´×°ÈëÏàÓ¦µÄÄÚºËÄ£¿é(Èçusb-storage)£¬¶øºóÕßÓÃÀ´ÔÚ/devÖд´½¨ÏàÓ¦µÄÉ豸½Úµã(Èç/dev/sda1)¡£
l udev´´½¨ÁËÏàÓ¦µÄÉ豸½ÚµãÖ®ºó£¬»á½«ÕâÒ»ÏûϢ֪ͨhalµÄÊØ»¤³ÌÐò(hald)¡£µ±È»udev»¹µÃ±£Ö¤Ð ......

LinuxѹËõ´ò°üÃüÁîʹÓ÷½·¨

http://www.ixpub.net/619016.html
tarÃüÁî

[root@linux ~]# tar [-cxtzjvfpPN] Îļþ
ÓëĿ¼ ....
²ÎÊý£º
-c £º½¨Á¢Ò»¸öѹËõÎļþµÄ²ÎÊýÖ¸Áî(create µÄÒâ˼)£»
-x £º½â¿ªÒ»¸öѹËõÎļþµÄ²ÎÊýÖ¸Á
-t £º²é¿´ tarfile ÀïÃæµÄÎļþ£¡
ÌØ±ð×¢Ò⣬ÔÚ²ÎÊýµÄÏ´ïÖУ¬ c/x/t ½öÄÜ´æÔÚÒ»¸ö£¡²»¿Éͬʱ´æÔÚ£¡
ÒòΪ²»¿ÉÄÜÍ¬Ê ......

linuxÖ»ÁгöÎļþ¼Ð

ls -l|grep ^d    ----Áгöµ±Ç°Ä¿Â¼ÏµÄÎļþ¼Ð
ls -l|grep ^d|grep "tmp"  ----Áгöµ±Ç°Ä¿Â¼ÏÂÃ÷×Óº¬ÓÐ"tmp"µÄÎļþ¼Ð
for dir in `ls -l ~/dxy/|grep ^d | awk '{print $9}'`  ---- awk '{print $9}' ,Ö»print Îļþ¼ÐµÄÃû×Ö
do
echo "==== $dir"
cd ~/dxy;cd $dir/
t=`ls -l|grep ^d|grep " ......

Linux use notes

-----------------------------
Based on Fedora 8 version:
-----------------------------
1. No common command like ifconfig in os?
Root cause is the standard search path not include /sbin and /usr/sbin. Try to include them in /etc/profile. As belows:
 #Kenny add /sbin and /usr/sbin here.
&n ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ