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

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

  Á˽âÁËLinuxÄÚ´æ¹ÜÀíµÄ»ù±¾ÖªÊ¶ºó£¬ÎÒÃÇÀ´Ñо¿Ò»ÏÂLinuxÄÚ´æµÄ·ÖÅäºÍÊÍ·Å¡£ÎÒÃÇ»á·ÖÁ½¸ö²¿·ÖÀ´Ñо¿µÄ¡£ÎÒÃÇÏòÀ´Ì½ÌÖϵͳÆô¶¯³õÆÚÄÚ´æµÄ·ÖÅäºÍÊÍ·Å¡£Õâ¸ö½×¶Î¿ÉÒÔÉêÇëµ½´óƬµÄÎïÀíÄڴ棬µ«ÊÇҪעÒâµ½ÒÔÏÂÁ½µã£¡
  1£©ÆäʵϵͳÆô¶¯³õÆÚÊÇÖ¸ÔÚinit_mem()֮ǰµÄ½×¶Î£¬ÔÚÕâ¸ö½×¶ÎÓÉÓÚÖ»ÐèÒªÉÙÁ¿µÄÄڴ棨Äں˱àÒëÐèÒªµÄÄڴ棬ҳ֡λÂë±í£¬Ò³±í£¬initrd£©£¬ËùÒÔ¿ÉÒÔÉêÇëµ½´óƬµÄÎïÀíÄڴ棬µ«ÊÇÎÒÃÇ»¹Òª×¢Òâµ½µÄÊÇ£¬Èç¹ûÔÚÕâ¸ö½×¶Î²»ÊÍ·ÅÕâЩÄÚ´æµÄ»°£¬init_mem()ÒÔºóµÄÄÚºËÊDz»¿ÉÒÔÔÙ¶ÔÕⲿ·ÖÄÚ´æ²Ù×÷µÄ£¨·ÖÅäºÍÊÍ·Å£©¡£
  2£©Õâ¸ö½×¶Î£¬ÎÒÃÇÖ»¿ÉÒÔ·ÖÅäµÍ¶ËÄڴ棬·ÖÅä²»Á˸߶ËÄڴ棬ÒòΪÕâ¸öʱºòÄÚ´æÊÇûÓÐÄÚºËÂß¼­µØÖ·µÄ¡£
  ºÃÁË£¬ÏÖÔÚÎÒÃÇ¿ªÊ¼À´Ñо¿ÓëÕâ¸ö½×¶ÎÓйصĺ¯Êý£¬Í¨¹ýÕâЩº¯ÊýµÄ·ÖÎö£¬ÎÒÃÇ¿ÉÒÔ¸üÇå³þÄÚ´æ¹ÜÀíÊÇÔõÑùµÄ¡£ÎÒÃÇÏÈÀ´Ñо¿bootmem_init()ϵͳÆô¶¯½×¶ÎÄÚ´æ¹ÜÀí³õʼ»¯¡£Õâ¸öº¯ÊýÊÇÔÚstart_kernel()µÄsetup_arch()µÄpaging_init()µ÷Óõġ£ÎÒÃÇÏÖÔÚÀ´¿´¿´paging_init()µÄ¾ßÌå´úÂë¡£
  void __init paging_init(struct meminfo *mi, struct machine_desc *mdesc)
{
 void *zero_page;
 int node;
 bootmem_init(mi);
struct meminfo *miÆäʵÊÇ´Ósetup_arch()º¯Êý´«¹ýÀ´µÄÈ«¾Ö±äÁ¿£¬Õâ¸öÈ«¾Ö±äÁ¿ÊÇmeminfo£¬Õâ¸ö±äÁ¿¼Ç¼ÁËϵͳÄÚ´æÐÅÏ¢£¬¾ßÌåÀ´ËµÊǼǼÁËbankµÄÐÅÏ¢¡£ÎÒÃÇÀ´¿´¿´bootmem_init(mi)¾ßÌå×öЩʲô£¡
static void __init bootmem_init(struct meminfo *mi)
{
 struct node_info node_info[MAX_NUMNODES], *np = node_info;
 unsigned int bootmap_pages, bootmap_pfn, map_pg;
 int node, initrd_node;
 bootmap_pages = find_memend_and_nodes(mi, np);
¶ÔÓÚstruct node_infoÕâ¸ö½á¹¹ÌåÊÇÓÃÀ´ÃèÊöÄÚ´æ½Úµã£¨node£©µÄÐÅÏ¢µÄ£¬ÕâÀïµÄnode_info±äÁ¿ÊÇÕâ¸ö½á¹¹ÌåµÄÊý×飬*npÕâÊÇÖ¸ÏòÕâ¸öÊý×éµÄÖ¸Õ룬ÎÒÃÇÏÈÀ´¿´¿´find_memend_and_nodes(mi, np);Õâ¸öº¯Êý¡£
find_memend_and_nodes(struct meminfo *mi, struct node_info *np)
{
 unsigned int i, bootmem_pages = 0, memend_pfn = 0;
 for (i = 0; i < MAX_NUMNODES; i++) {
  np[i].start = -1U;
  np[i].end = 0;
  np[i].bootmap_pages = 0;
 }
ÕâÀïÊǶԸղÅ˵µÄÄǸö½á¹¹Ìå½øÐгõʼ»¯£¬Ò»Ö±°ÑÕû¸öÊý×éµÄÿ¸öµ¥Ôª³õʼ»¯ÍêΪֹ¡£
for (i =


Ïà¹ØÎĵµ£º

Linux lock_kernel()º¯ÊýµÄ·ÖÎö¡£

  ÕâÖ»ÊÇÔÝʱµÄ¼Ç¼£¬ÒÔºó»á°ÑËü¹éÀൽstart_kernel()º¯ÊýµÄ·ÖÎö¡£ÔÚ·ÖÎö֮ǰ£¬ÎÒÏÈҪ˵˵¼¸¸ö¸ÅÄî¡£
  ÄÚºËÇÀÕ¼£ºÔÚ2.6Äں˼ÓÈëÁËÇÀÕ¼µÄÄÜÁ¦£¬¾ÍÊÇ˵µ÷¶È³ÌÐòÓа취ÔÚÒ»¸öÄں˼¶µÄÈÎÎñÕýÔÚÖ´ÐеÄʱºò´Óе÷¶È¡£µ«ÊDZØÐëÒª±£Ö¤ÖØÐµ÷¶ÈÒª°²È«£¬ÕâÑù¾ÍÒª¿¿Ò»°ÑËøÀ´±£Ö¤ÁË¡£
  ¼ÆÊýÆ÷£¨thread_info.[reempt_ ......

linux 2.4 ºÍ2.6 ÄÚºËÇø±ð

Ëæ×ÅLinux2.6µÄ·¢²¼£¬ÓÉÓÚ2.6ÄÚºË×öÁ˽̵ĸ͝£¬¸÷¸öÉ豸µÄÇý¶¯³ÌÐòÔÚ²»Í¬³Ì¶ÈÉÏÒª
½øÐиÄд¡£ÎªÁË·½±ã¸÷λLinux°®ºÃÕßÎÒ°Ñ×Ô¼ºÕû
ÀíµÄÕâ·ÖÎĵµshare³öÀ´¡£¸ÃÎĵ±ÁоÙ
ÁË2.6ÄÚºËͬÒÔǰ°æ±¾µÄ¾ø´ó¶àÊý±ä»¯£¬¿ÉϧµÄÊÇÓÉÓÚʱ¼äºÍ¾«Á¦ÓÐÏÞûÓÐÏêϸÁгö¸÷¸ö
º¯ÊýµÄÓÃ
·¨¡£
ÌØ±ðÉùÃ÷£º¸ÃÎĵµÖеÄÄÚÈÝÀ´×Ôhttp://lwn.net£¬¸Ã ......

linux ÈíÁ¬½ÓºÍÓ²Á´½ÓµÄÇø±ð

ÈíÁ¬½Ó¿ÉÒÔ ¿çÎļþϵͳ £¬Ó²Á¬½Ó²»¿ÉÒÔ ¡£Êµ¼ùµÄ·½·¨¾ÍÊÇÓù²ÏíÎļþ°ÑwindowsÏ嵀 aa.txtÎı¾ÎĵµÁ¬½Óµ½linuxÏÂ/rootĿ¼ Ï bb,cc . ln -s aa.txt /root/bb Á¬½Ó³É¹¦ ¡£ln aa.txt /root/bb ʧ°Ü ¡£
£¨2£©¹ØÓÚ I½ÚµãµÄÎÊÌâ ¡£Ó²Á¬½Ó²»¹ÜÓжàÉÙ¸ö£¬¶¼Ö¸ÏòµÄÊÇͬһ¸öI½Úµã£¬»á°Ñ ½áµãÁ¬½ÓÊýÔö¼Ó £¬Ö»Òª½áµãµÄÁ¬½ÓÊý²»ÊÇ 0£¬Î ......

linux ÏÂc ³ÌÐò ¶Î´íÎó ·ÖÎö


linux ÏÂc ³ÌÐò ¶Î´íÎó ·ÖÎö
(2008-12-31 16:50:57)
var $tag='it';
var $tag_code='2cec03ae0a5b0d224bb35c9b79dd54c7';
±êÇ©£ºit
 
·ÖÀࣺC/C++
fopen("/var/spool/cron/tmp","w+");
/////////////////////////////////////////
#include <sys/types.h>
......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ