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ÔÚÒ³ÖмäĿ¼ÖÐµÄÆ«ÒƵØÖ·£¬ÔÚÁ½¼¶»òÕßÈ
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
LinuxÖеĵØÖ·¿Õ¼ä
ÓÐÕâôһϵÁеÄÎÊÌ⣬ÊÇ·ñÔÚÀ§ÈÅ×ÅÄ㣺Óû§³ÌÐò±àÒëÁ¬½ÓÐγɵĵØÖ·¿Õ¼äÔÚʲô·¶Î§ÄÚ£¿Äں˱àÒëºóµØÖ·¿Õ¼äÔÚʲô·¶Î§ÄÚ£¿Òª¶ÔÍâÉè½øÐзÃÎÊ£¬I/OµÄµØÖ·¿Õ¼äÓÖÊÇʲôÑùµÄ£¿
ÏȻشðµÚÒ»¸öÎÊÌâ¡£Linux×î³£¼ûµÄ¿ÉÖ´ÐÐÎļþ¸ñʽΪelf(Executable and Linkable Format)¡£ÔÚelf¸ñʽµÄ¿ÉÖ´ÐдúÂëÖУ¬ld×ÜÊÇ´Ó0x ......
ÍøÉϽéÉÜlinux²Ã¼ôµÄÎÄÕºܶ࣬²»¹ýºÜ¶à¶¼ÊǺöÂÔÁËÇ°ÃæµÄºÜ¶à²½Öè¡£×î½üÀϰåÒª²¼ÖÃlinux²Ã¼ôµÄÈÎÎñ£¬ÎÒûÓÐʲôlinuxÏîÄ¿»ù´¡£¬ËùÒԺܶණÎ÷¶¼Òª×Ô¼ºÃþË÷¡£ÏÂÃæÊÇÎÒ×ܽáµÄ²½Öè¡£
LinuxÄں˲üô
1.
Ê×ÏȰÑlinuxÔ´´úÂëÏÂÔØµ½±¾µØ£¬ÏÂÔØµÄÍøÖ·ÊÇwww.kernel.org,
2.&n ......
ÔÚÄÚ´æÆô¶¯×ʼʱ£¬biosµÄÆðÖ÷µ¼×÷Óã¬ÄÚºËͨ¹ýËüÀ´Á˽âÎïÀíÄÚ´æµÄÇé¿ö¡£Í¬Ê±µ÷ÓÃbios¹ý³Ì½¨Á¢Ò»×éÎïÀíµØÖ··¶Î§ºÍÆä¶ÔÓ¦µÄÄÚ´æÀàÐÍ¡£
ͨ¹ýº¯Êýmachine_specific_memory_setup()º¯ÊýÀ´½¨Á¢ÎïÀíµØÖ·Ó³Éä¡£´Ë±í¿ÉÒÔ»ñÈ¡£¬ÊÇÄÚºËÔÚbiosÁбíµÄ»ù´¡ÉϹ¹½¨µÄ£»·ñÔòÄں˰´ÕÕ±£ÊصÄȱʡÉèÖù¹½¨ÕâÕÅ±í£º´Ó0x9f£¨lowmemsize()£©µ½0 ......