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

̽Ë÷ Linux ÄÚ´æÄ£ÐÍ

ÎÄÕÂÀ´Ô´:http://www.ibm.com/developerworks/cn/linux/l-memmod/index.html
¼¶±ð£º ³õ¼¶
Vikram Shukla (vikshukl@in.ibm.com), Èí¼þ¹¤³Ìʦ, IBM
2006 Äê 2 ÔÂ 23 ÈÕ
ÔÚÕâÆª Linux® ÄÚ´æÄ£ÐÍÖ¸ÄÏÖУ¬ÎÒÃǽ«Ñ§Ï°ÈçºÎ¹¹½¨ºÍ¹ÜÀíÄÚ´æ·½ÃæµÄ»ù´¡ÖªÊ¶¡£±¾Ö¸ÄϽéÉÜÁËÄÚ´æ¿ØÖÆµ¥Ôª¡¢·ÖҳģÐÍ·½ÃæµÄÄÚÈÝ£¬²¢Ïêϸ½éÉÜÁËÎïÀíÄÚ´æÇøÓò·½ÃæµÄ֪ʶ¡£
Àí½â Linux ʹÓõÄÄÚ´æÄ£ÐÍÊÇ´Ó¸ü´ó³Ì¶ÈÉÏÕÆÎÕ Linux Éè¼ÆºÍʵÏֵĵÚÒ»²½£¬Òò´Ë±¾ÎĽ«¸ÅÊö Linux ÄÚ´æÄ£Ðͺ͹ÜÀí¡£
Linux ʹÓõÄÊǵ¥Ò»ÕûÌåʽ½á¹¹ (Monolithic)£¬ÆäÖж¨ÒåÁËÒ»×éÔ­Óï»òϵͳµ÷ÓÃÒÔʵÏÖ²Ù×÷ϵͳµÄ·þÎñ£¬ÀýÈçÔÚ¼¸¸öÄ£¿éÖÐÒÔ³¬¼¶Ä£Ê½ÔËÐеĽø³Ì¹ÜÀí¡¢²¢·¢¿ØÖƺÍÄÚ´æ¹ÜÀí·þÎñ¡£¾¡¹Ü³öÓÚ¼æÈÝÐÔ¿¼ÂÇ£¬Linux ÒÀÈ»½«¶Î¿ØÖƵ¥ÔªÄ£ÐÍ (segment control unit model) ±£³ÖÒ»ÖÖ·ûºÅ±íʾ£¬µ«Êµ¼ÊÉÏÒѾ­ºÜÉÙʹÓÃÕâÖÖÄ£ÐÍÁË¡£
ÓëÄÚ´æ¹ÜÀíÓйصÄÖ÷ÒªÎÊÌâÓУº
ÐéÄâÄÚ´æµÄ¹ÜÀí£¬ÕâÊǽéÓÚÓ¦ÓóÌÐòÇëÇóÓëÎïÀíÄÚ´æÖ®¼äµÄÒ»¸öÂß¼­²ã¡£
ÎïÀíÄÚ´æµÄ¹ÜÀí¡£
ÄÚºËÐéÄâÄÚ´æµÄ¹ÜÀí/ÄÚºËÄÚ´æ·ÖÅäÆ÷£¬ÕâÊÇÒ»¸öÓÃÀ´Âú×ã¶ÔÄÚ´æµÄÇëÇóµÄ×é¼þ¡£ÕâÖÖ¶ÔÄÚ´æµÄÇëÇó¿ÉÄÜÀ´×ÔÓÚÄںˣ¬Ò²¿ÉÄÜÀ´×ÔÓÚÓû§¡£
ÐéÄâµØÖ·¿Õ¼äµÄ¹ÜÀí¡£
½»»»ºÍ»º´æ¡£
±¾ÎÄ̽ÌÖÁËÒÔÏÂÎÊÌ⣬¿ÉÒÔ°ïÖúÄú´Ó²Ù×÷ϵͳÖÐÄÚ´æ¹ÜÀíµÄ½Ç¶ÈÀ´Àí½â Linux µÄÄÚÄ»£º
¶Î¿ØÖƵ¥ÔªÄ£ÐÍ£¬Í¨³£×¨ÓÃÓÚ Linux
·ÖҳģÐÍ£¬Í¨³£×¨ÓÃÓÚ Linux
ÎïÀíÄÚ´æ·½ÃæµÄ֪ʶ
ËäÈ»±¾ÎIJ¢Ã»ÓÐÏêϸ½éÉÜ Linux Äں˹ÜÀíÄÚ´æµÄ·½·¨£¬µ«ÊǽéÉÜÁËÓйØÕû¸öÄÚ´æÄ£Ð͵Ä֪ʶÒÔ¼°ÏµÍ³µÄѰַ·½Ê½£¬ÕâЩ½éÉÜ¿ÉΪÄú½øÒ»²½µÄѧϰÌṩһ¸ö¿ò¼Ü¡£±¾ÎÄÖØµã½éÉܵÄÊÇ x86 ¼Ü¹¹£¬µ«±¾ÎÄÖеÄ֪ʶ¶ÔÓÚÆäËûÓ²¼þʵÏÖͬÑùÊÊÓá£
x86 ÄÚ´æ¼Ü¹¹
ÔÚ x86 ¼Ü¹¹ÖУ¬ÄÚ´æ±»»®·Ö³É 3 ÖÖÀàÐ͵ĵØÖ·£º
Âß¼­µØÖ· (logical address) ÊǴ洢λÖõĵØÖ·£¬Ëü¿ÉÄÜÖ±½Ó¶ÔÓ¦ÓÚÒ»¸öÎïÀíλÖã¬Ò²¿ÉÄܲ»Ö±½Ó¶ÔÓ¦ÓÚÒ»¸öÎïÀíλÖá£Âß¼­µØÖ·Í¨³£ÔÚÇëÇó¿ØÖÆÆ÷ÖеÄÐÅϢʱʹÓá£
ÏßÐÔµØÖ· (linear address) £¨»ò³ÆÎª Æ½ÃæµØÖ·¿Õ¼ä£©ÊÇ´Ó 0 ¿ªÊ¼½øÐÐѰַµÄÄÚ´æ¡£Ö®ºóµÄÿ¸ö×Ö½Ú¶¼¿É˳ÐòʹÓÃÏÂÒ»Êý×ÖÀ´ÒýÓã¨0¡¢1¡¢2¡¢3 µÈ£©£¬Ö±µ½ÄÚ´æÄ©Î²ÎªÖ¹¡£Õâ¾ÍÊÇ´ó²¿·Ö·Ç Intel CPU µÄѰַ·½Ê½¡£Intel® ¼Ü¹¹Ê¹ÓÃÁ˷ֶεĵØÖ·¿Õ¼ä£¬ÆäÖÐÄÚ´æ±»»®·Ö³É 64KB µÄ¶Î£¬ÓÐÒ»¸ö¶Î¼Ä´æÆ÷×ÜÊÇÖ¸Ïòµ±Ç°ÕýÔÚѰַµÄ¶ÎµÄ»ùÖ·¡£ÕâÖּܹ¹ÖÐµÄ 32 λģʽ±»ÊÓÎªÆ½ÃæµØÖ·¿Õ¼ä£¬²»¹ýËüҲʹÓÃÁ˶Ρ£
ÎïÀíµØÖ· (physical address) ÊÇʹÓÃÎïÀíµØÖ·×ÜÏßÖеÄ


Ïà¹ØÎĵµ£º

Linuxϵͳ»ù´¡ÖªÊ¶£¨¶þ£©

Linux½ø³ÌÔõÑù²ÅÄÜ»ñÈ¡ÊôÓÚËü×Ô¼ºµÄÏßÐÔµØÖ·¿Õ¼äÄØ£¬±ÈÈç 0x08048000µ½0x0804c000Õâ¶ÎÏßÐÔµØÖ·¿Õ¼ä±»·ÖÅ䏸ÁËÒ»¸ö½ø³Ì£¬½ø³Ì¾Í¿ÉÒÔ·ÃÎÊÕâ¶ÎµØÖ·¿Õ¼ä£¬ÏßÐÔµØÖ·¿Õ¼äµÄ¿ªÊ¼ºÍ½áÊø¶¼±ØÐëÒÔ4KB¶ÔÆë
ÕâÀïÓÐÒÔϼ¸ÖÖÇé¿ö£º
1.¸Õ¸Õ´´½¨µÄнø³Ì£»
2.ʹÓÃexecϵͳµ÷ÓÃ×°ÔØÒ»¸öеijÌÐòÔËÐУ»
3.½«Ò»¸öÎļþ£¨»ò²¿£©Ó³Éäµ½½ø³ÌµØÖ ......

LinuxÏÂÎļþµÄ²Ù×÷(zt)

 
1£®ÎļþµÄ´´½¨ºÍ¶Áд
¡¡¡¡µ±ÎÒÃÇÐèÒª´ò¿ªÒ»¸öÎļþ½øÐжÁд²Ù×÷µÄʱºò,ÎÒÃÇ¿ÉÒÔʹÓÃϵͳµ÷Óú¯Êýopen.ʹÓÃÍê³ÉÒÔºóÎÒÃǵ÷ÓÃÁíÍâÒ»¸öcloseº¯Êý½øÐйرղÙ×÷.
¡¡¡¡¡¡¡¡int open(const char *pathname,int flags);
¡¡¡¡¡¡¡¡int open(const char *pathname,int flags,mode_t mode);
¡¡¡¡¡¡¡¡int close(int fd); ......

linuxÖеÄoutb¡¢outw¡¢inb¡¢inw

ÔÚlinuxµÄÇý¶¯³ÌÐòÖУ¬¶¼»áʹÓôóÁ¿µÄoutb¡¢outw¡¢inb¡¢inwµÈµÈºêÀ´·ÃÎÊÓ²¼þ»ò¼Ä´æÆ÷¡£ÕâЩºêµÄ¶¨Òå¶¼ÔÚÏàÓ¦´¦ÀíÆ÷ÌåϵϵÄinclude\asmĿ¼ÏµÄio.hÖж¨Òå¡£×·¾¿ÏÂÈ¥£¬ÕâЩºê×îÖÕ¾ÍÊÇÒ»¸övolatile±äÁ¿µÄµÄ¸³Öµ£º
      #define __arch_putb(v,a)      (*(volatile unsi ......

RedHat Linux³£¼ûµÄÈÕÖ¾ÎļþºÍ³£ÓÃÃüÁî


³É¹¦µØ¹ÜÀíÈκÎϵͳµÄ¹Ø¼üÖ®Ò»£¬ÊÇÒªÖªµÀϵͳÖÐÕýÔÚ·¢ÉúʲôÊ¡£Linux ÖÐÌṩÁËÒì³£ÈÕÖ¾£¬²¢ÇÒÈÕÖ¾µÄϸ½ÚÊÇ¿ÉÅäÖõġ£Linux ÈÕÖ¾¶¼ÒÔÃ÷ÎÄÐÎʽ ´æ´¢£¬ËùÒÔÓû§²»ÐèÒªÌØÊâµÄ¹¤¾ß¾Í¿ÉÒÔËÑË÷ºÍÔĶÁËüÃÇ¡£»¹¿ÉÒÔ±àд½Å±¾£¬À´É¨ÃèÕâЩÈÕÖ¾£¬²¢»ùÓÚËüÃǵÄÄÚÈÝÈ¥×Ô¶¯Ö´ÐÐijЩ¹¦ÄÜ¡£Linux ÈÕÖ¾´æ´¢ÔÚ /var/log Ŀ¼ÖС£ÕâÀïÓм¸¸öÓ ......

Linux¾­µäÊé¼®ÍÆ¼ö(ÈëÃŵ¼¶Á)

ÈëÃÅÆª
¡¶LINUXȨÍþÖ¸ÄÏ¡·Êé²»´í£¬Ð´µÄºÜÈ«ÃæÒ²±È½Ï¹ã£¬Éæ¼°µÄ²»É×öΪÈëÃÅÊé¼®²»´í£¬¿ÉÒԱȽÏÈ«ÃæµÄÁ˽âlinux¡£ÁíÍâ±È½ÏÈÈÃŵÄÒ²¿ÉÒÔ¿´¿´¡¶Äñ¸çµÄ˽·¿²Ë¡·µÈÊ飬ƫ¹ÜÀíÀàµÄÊé¡£Èç¹ûÏë×öserver·½ÏòµÄ¿ÉÒÔÕÒÀ´¿´¿´¡£
Çý¶¯Æª
¡¶LINUXÉ豸Çý¶¯³ÌÐò¡·¾ÍÊÇÍøÉÏ˵µÄ“LDD”£¬¾­µäÖ®×÷£¬±Ø±¸Êé¼®¡£¹ú²ú¾­µä¡¶Lin ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ