linux 2.6Ô´´úÂëÇé¾°·ÖÎö±Ê¼ÇÖ®ÄÚ´æ5
ÔÚÄÚ´æÆô¶¯×ʼʱ£¬biosµÄÆðÖ÷µ¼×÷Óã¬ÄÚºËͨ¹ýËüÀ´Á˽âÎïÀíÄÚ´æµÄÇé¿ö¡£Í¬Ê±µ÷ÓÃbios¹ý³Ì½¨Á¢Ò»×éÎïÀíµØÖ··¶Î§ºÍÆä¶ÔÓ¦µÄÄÚ´æÀàÐÍ¡£
ͨ¹ýº¯Êýmachine_specific_memory_setup()º¯ÊýÀ´½¨Á¢ÎïÀíµØÖ·Ó³Éä¡£´Ë±í¿ÉÒÔ»ñÈ¡£¬ÊÇÄÚºËÔÚbiosÁбíµÄ»ù´¡ÉϹ¹½¨µÄ£»·ñÔòÄں˰´ÕÕ±£ÊصÄȱʡÉèÖù¹½¨ÕâÕÅ±í£º´Ó0x9f£¨lowmemsize()£©µ½0x100(high_memory)ºÅµÄËùÓÐÒ³¿ò¶¼±ê¼ÇΪ±£Áô¡£setup_memoryº¯Êý¹¹¼ÜÕâÕÅ±í¡£
static unsigned long __init setup_memory(void)
{
unsigned long bootmap_size, start_pfn, max_low_pfn;
start_pfn = PFN_UP(init_pg_tables_end);
find_max_pfn();
max_low_pfn = find_max_low_pfn();
bootmap_size = init_bootmem(start_pfn, max_low_pfn);
register_bootmem_low_pages(max_low_pfn);
reserve_bootmem(HIGH_MEMORY, (PFN_PHYS(start_pfn) + bootmap_size + PAGE_SIZE-1) - (HIGH_MEMORY));
reserve_bootmem(0, PAGE_SIZE);´Ëº¯ÊýÓÃÀ´±£ÁôÒ³Ãæ£¬·½·¨Êǽ«±£Áôλ±ä³É1.
reserve_ebda_region();
if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD && boot_cpu_data.x86 == 6)
reserve_bootmem(0xa0000 - 4096, 4096);
return max_low_pfn;
}
º¯Êý¾¹ý¼ò»¯±ä³É×î»ù±¾µÄÐÎ̬¡£
ÆäÖУ¬ul·Ö±ðÊÇbootmap_size£¨bit mapµÄsize£©,start_pfn(¿ªÊ¼µÄÒ³¿ò)£¬max_low_pfn(±»ÄÚºËÖ±½ÓÓ³ÉäµÄ×îºóÒ»¸öÒ³¿òµÄÒ³¿òºÅ) ;
#define PFN_UP(x) (((x) + PAGE_SIZE - 1) >> PAGE_SHIFT);
unsigned long init_pg_tables_end __initdata = ~0UL
Èý¸öÏà¹ØµÄºê£º
#define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)
#define PFN_DOWN(x) ((x) >> PAGE_SHIFT)
#define PFN_PHYS(x
Ïà¹ØÎĵµ£º
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
ÎļþϵͳµÄ×éÖ¯½á¹¹·ÖÎö£¬ÎÒÃÇÄÜ·ÖÎöÊ²Ã´ÄØ£¿Ò²¾ÍÊǵ±ÎÒÃÇÁÐ/Ŀ¼ʱ£¬Ëù¿´µ½µÄ/usr¡¢/etc ... ... /var
µÈĿ¼ÊÇ×öʲôÓõģ¬ÕâЩĿ¼ÊDz»ÊÇÓÐÐ©ÌØ¶¨µÄÓÃ;¡£ÎÞÂÛÄĸöÄĸö°æ±¾µÄLinuxϵͳ£¬¶¼ÓÐÕâЩĿ¼£¬ÕâЩĿ¼Ӧ¸ÃÊDZê×¼µÄ¡£µ±È»¸÷¸öLinux·¢Ðаæ
±¾Ò²»á´æÔÚһЩССµÄ²îÒ죬µ«×ÜÌåÀ´Ëµ£¬»¹ÊÇ´óÌå²î²»¶à¡£
Linux·¢Ðа ......
1. vmstat
Õâ¸ö¹¤¾ß¿ÉÒÔÈÃÄãÁ˽⵽ϵͳ×ÊÔ´µ±Ç°µÄ¸ºÔØÂÊ£¬°üÀ¨CPU£¬Äڴ棬swap¿Õ¼ä£¬ioµÈµÈ¡£
»ù±¾Ó÷¨
$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so&n ......
¹ØÓÚ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 ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
ÔÚ±¾ÎÄÖУ¬
Linux
ÊÇ
GNU/Linux
×ÀÃæÏµÍ³µÄ·º³Æ£¬ÆäµäÐÍ´ú±íÊÇ
Ubuntu
9.10
·¢Ðа档¼ÆËã»úԤװ
Linux
ÊÇÈËÃǶàÄêÀ´µÄÃÎÏë¡£Èç½ñ£¬Õâ¸öÃÎÏëÖÕÓÚʵÏÖÁË¡£´Ë»°µ±Õ棿
  ......