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

linux 2.6Ô´´úÂëÇé¾°·ÖÎö±Ê¼ÇÖ®ÄÚ´æ6

µ±ramСÓÚ896mbʱµÄ×îÖÕÄÚºËÒ³±í
ÓÉÄÚºËÒ³±íËùÌṩµÄ×îÖÕÓ³É䱨Ðë°Ñ´Ó0xc0000000¿ªÊ¼µÄÏßÐÔµØÖ·×ª»¯Îª´Ó0¿ªÊ¼µÄÎïÀíµØÖ·¡£
#define __pa(x)   ((unsigned long)(x)-PAGE_OFFSET)½«´Ópage_offset¿ªÊ¼µÄÏßÐÔµØÖ·×ª»»³ÉÏàÓ¦µÄÎïÀíµØÖ·¡£
#define __va(x)   ((void *)((unsigned long)(x)+PAGE_OFFSET))ÓëÉÏÃæµÄ·´Ïò¡£
void __init paging_init(void)
{
#ifdef CONFIG_X86_PAE
        set_nx();
        if (nx_enabled)
                printk("NX (Execute Disable) protection: active\n");
#endif
        pagetable_init();
        load_cr3(swapper_pg_dir);
#ifdef CONFIG_X86_PAE
        /*We will bail out later - printk doesn't work right now so the user would just see a hanging kernel.*/
        if (cpu_has_pae)
                set_in_cr4(X86_CR4_PAE);
#endif
        __flush_tlb_all();
        kmap_init();
        zone_sizes_init();
}
¿´Õâ¸öº¯ÊýÖÐ×î»ù±¾µÄһЩ³ÌÐòÐУ¬ÊÝÉíºóµÄº¯Êý£º
¼¸¸ö±äÁ¿£ºpgd_tÃèÊöҳȫ¾ÖĿ¼Ïpmd_tÃèÊöÒ³ÖмäÏpud_tÒ³Éϼ¶Ä¿Â¼£¬pte_tÒ³±íÏî¡£
#define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1))ÕÒµ½ÏßÐÔµØÖ·address¶ÔÓ¦µÄĿ¼ÏîÔÚҳȫ¾ÖĿ¼ÖеÄË÷Òý£¨Ïà¶ÔλÖã©
ͨ¹ýºêÓëpgd_baseÏà¼Ó£¬µÃµ½µ±Ç°pgd¡£ÔÚÍâ²ãÑ­»·ÖбéÀú£¬Ñ­»·ÖкêµÄ×÷ÓÃÊDZíʾҳȫ¾ÖĿ¼±íÖбíÏî¸öÊý¡£½øº¯Êýone_md_table_init¡£
pud = pud_offset(pgd, 0);½ÓÊÕÖ¸Ïòҳȫ¾ÖĿ¼ÏîµÄÖ¸ÕëpgdºÍÏßÐÔµØÖ·addr×÷Ϊ²ÎÊý¡£Õâ¸öºê²úÉúÒ³Éϼ¶Ä¿Â¼ÖÐĿ¼Ïîaddr¶ÔÓ¦µÄÏßÐÔµØÖ·¡£ÔÚÁ½¼¶»òÕßÈý¼¶·ÖҳϵͳÖУ¬²úÉúpgd,Ò»¸öҳȫ¾ÖĿ¼ÏîµÄµØÖ·¡£
pmd_table = pmd_offset(pud, 0);²úÉúÁËĿ¼ÏîaddrÔÚÒ³ÖмäĿ¼ÖÐµÄÆ«ÒƵØÖ·£¬ÔÚÁ½¼¶»òÕßÈ


Ïà¹ØÎĵµ£º

LinuxÎļþϵͳµÄ×éÖ¯½á¹¹·ÖÎö

ÎļþϵͳµÄ×éÖ¯½á¹¹·ÖÎö£¬ÎÒÃÇÄÜ·ÖÎöÊ²Ã´ÄØ£¿Ò²¾ÍÊǵ±ÎÒÃÇÁÐ/Ŀ¼ʱ£¬Ëù¿´µ½µÄ/usr¡¢/etc ... ... /var
µÈĿ¼ÊÇ×öʲôÓõģ¬ÕâЩĿ¼ÊDz»ÊÇÓÐÐ©ÌØ¶¨µÄÓÃ;¡£ÎÞÂÛÄĸöÄĸö°æ±¾µÄLinuxϵͳ£¬¶¼ÓÐÕâЩĿ¼£¬ÕâЩĿ¼Ӧ¸ÃÊDZê×¼µÄ¡£µ±È»¸÷¸öLinux·¢Ðаæ
±¾Ò²»á´æÔÚһЩССµÄ²îÒ죬µ«×ÜÌåÀ´Ëµ£¬»¹ÊÇ´óÌå²î²»¶à¡£
Linux·¢Ðа ......

»ùÓÚLINUX²Ù×÷ϵͳµÄ·À»ðǽ¼¼Êõ¼°Æä¾ßÌåʵÏÖ

[ÕªÒª]±¾ÎĽéÉÜÁËLINUXϳ£ÓõķÀ»ðǽ¹æÔòÅäÖÃÈí¼þIpchains£»´ÓʵÏÖÔ­Àí¡¢ÅäÖ÷½·¨ÒÔ¼°¹¦ÄÜÌØµãµÄ½Ç¶ÈÃèÊöÁËLINUX·À»ðǽµÄÈýÖÖ¹¦ÄÜ£»²¢¸ø³öÁËÒ»¸öLINUX·À»ðǽʵÀý×÷Ϊ²Î¿¼¡£
[¹Ø¼ü×Ö]LINUX·À»ðǽ¡¢ipchains ¡¢°ü¹ýÂË¡¢´úÀí¡¢IPαװ
1      ǰÑÔ
      ·À»ðǽ×÷Î ......

linux Äں˲üô´ÓÁ㿪ʼ

ÍøÉϽéÉÜlinux²Ã¼ôµÄÎÄÕºܶ࣬²»¹ýºÜ¶à¶¼ÊǺöÂÔÁËÇ°ÃæµÄºÜ¶à²½Öè¡£×î½üÀϰåÒª²¼ÖÃlinux²Ã¼ôµÄÈÎÎñ£¬ÎÒûÓÐʲôlinuxÏîÄ¿»ù´¡£¬ËùÒԺܶණÎ÷¶¼Òª×Ô¼ºÃþË÷¡£ÏÂÃæÊÇÎÒ×ܽáµÄ²½Öè¡£
LinuxÄں˲üô
 
1.      
Ê×ÏȰÑlinuxÔ´´úÂëÏÂÔØµ½±¾µØ£¬ÏÂÔØµÄÍøÖ·ÊÇwww.kernel.org,
 
2.&n ......

linux 2.6Ô´´úÂëÇé¾°·ÖÎö±Ê¼ÇÖ®ÄÚ´æ3

¹ØÓÚe820
   e820ÊÇBIOSµÄ£¨int 0x15£©ÖжϹØÁªµÄ¡£ÔÚʹÓôËÖжÏʱ£¬axÖбØÐëÊÇe820(ireg.ax=0xe820;)¡£Í¨¹ý´ËÖжϿÉÒԵõ½ÄÚ´æµÄϵͳ²¼¾Ö¡£Í¨¹ýdoÑ­»·£¬Ã¿´ÎµÃµ½Ò»¶Î¡£
/linux32/arch/x86/include/asm/e820.h
ºêE820_MAPÊÇstruct e820entryÊý¾Ý½á¹¹µÄÖ¸Õ룬´æ·ÅÔÚ²ÎÊý¿éÖÐÎ»ÒÆÎª0x2d0µÄµØ·½¡£
#define E820M ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ