Linux ÄÚ´æ¹ÜÀí ÏßÐÔ¿Õ¼äÓëÎïÀíÄÚ´æ
Linux ÄÚ´æ¹ÜÀí -- ÏßÐÔ¿Õ¼äÓëÎïÀíÄÚ´æ ÊÕ²Ø
ÉÏͼ·´Ó³ÁËÈçÏÂÐÅÏ¢£º
1¡¢ ½ø³ÌµÄ4G ÏßÐԿռ䱻»®·Ö³ÉÈý¸ö²¿·Ö£º½ø³Ì¿Õ¼ä£¨0-3G£©¡¢ÄÚºËÖ±½ÓÓ³Éä¿Õ¼ä£¨3G – high_memory£©¡¢Äں˶¯Ì¬Ó³Éä¿Õ¼ä£¨VMALLOC_START - VMALLOC_END£©
2¡¢ Èý¸ö¿Õ¼äʹÓÃͬһÕÅҳĿ¼±í£¬Í¨¹ý CR3 ¿ÉÕÒµ½´ËҳĿ¼±í¡£µ«²»Í¬µÄ¿Õ¼äÔÚҳĿ¼±íÖÐÒ³¶ÔÓ¦²»Í¬µÄÏÒò´Ë»¥Ï಻³åÍ»
3¡¢ Äں˳õʼ»¯ÒԺ󣬸ù¾Ýʵ¼ÊÎïÀíÄÚ´æµÄ´óС£¬¼ÆËã³ö high_memory¡¢VMALLOC_START¡¢VMALLOC_END µÄÖµ¡£²¢Îª“ÄÚºËÖ±½ÓÓ³É䔿ռ佨Á¢ºÃÓ³Éä¹ØÏµ£¬ËùÓеÄÎïÀíÄÚ´æ¶¼¿ÉÒÔͨ¹ý´Ë¿Õ¼ä½øÐзÃÎÊ¡£
4¡¢ “½ø³Ì¿Õ¼ä”ºÍ“Äں˶¯Ì¬Ó³Éä¿Õ¼ä”µÄÓ³Éä¹ØÏµÊǶ¯Ì¬½¨Á¢µÄ£¨Í¨¹ýȱҳÒì³££©
¼ÙÉèÔÚÓÐÈý¸öÏßÐÔµØÖ· addr1, addr2, addr3 £¬·Ö±ðÊôÓÚÈý¸öÏßÐԿռ䣬µ«ÊÇ×îÖÕ¶¼Ó³Éäµ½ÎïÀíÒ³Ãæ1£º
1¡¢ Èý¸öµØÖ·¶ÔÓ¦²»Í¬µÄÒ³±íºÍÒ³±íÏî
2¡¢ µ«ÊÇÒ³±íÏîµÄ¸ß 20bit ¿Ï¶¨ÊÇ1£¬±íʾÎïÀíÒ³ÃæµÄË÷ÒýºÅÊÇ1
3¡¢ ͬʱ£¬¸ù¾Ý¸ß 20 bit£¬¿ÉÒÔ´Ó mem_map[] ÖÐÕÒµ½¶ÔÓ¦µÄ struct page ½á¹¹£¬struct page ÓÃÓÚ¹ÜÀíʵ¼ÊµÄÎïÀíÒ³Ãæ£¨ºìÏߣ©
4¡¢ ´ÓÏßÐÔµØÖ·£¬¸ù¾ÝҳĿ¼±í£¬Ò³±í£¬¿ÉÒÔÕÒµ½ÎïÀíµØÖ·
5¡¢ Struct page ºÍÎïÀíµØÖ·Ö®¼äºÜÈÝÒ×»¥Ïàת»»
6¡¢ ´ÓÎïÀíµØÖ·£¬¿ÉÒÔºÜÈÝÒ׵ķ´ÍƳöÔÚÄÚºËÖ±½ÓÓ³Éä¿Õ¼äµÄÏßÐÔµØÖ·£¨À¶Ïߣ©¡£ÒªÏëµÃµ½ÔÚ½ø³Ì¿Õ¼ä»òÕßÄں˶¯Ì¬Ó³Éä¿Õ¼äµÄ¶ÔÓ¦µÄÏßÐÔµØÖ·£¬ÔòÐèÒª±éÀúÏàÓ¦µÄ“Ðé´æÇø¼ä”Á´±í¡£
¹ØÓÚҳĿ¼±í£º
1¡¢ ÿ¸ö½ø³ÌÓÐÒ»¸öÊôÓÚ×Ô¼ºµÄҳĿ¼±í£¬¿Éͨ¹ý CR3 ¼Ä´æÆ÷ÕÒµ½
2¡¢ ¶øÄÚºËÒ²ÓÐÒ»¸ö¶ÀÁ¢ÓÚÆäËü½ø³ÌµÄҳĿ¼±í£¬±£´æÔÚ swapper_pg_dir[] Êý×éÖÐ
3¡¢ µ±½ø³ÌÇл»µÄʱºò£¬Ö»ÐèÒª½«Ð½ø³ÌµÄҳĿ¼°ÑµØÖ·¼ÓÔØµ½ CR3 ¼Ä´æÆ÷Öм´¿É
4¡¢ ´´½¨Ò»¸öнø³ÌµÄʱºò£¬ÐèҪΪËü·ÖÅäÒ»¸ö page£¬×÷ΪҳĿ¼±í£¬²¢½« swapper_pg_dir[] µÄ¸ß 256 Ï±´¹ýÀ´£¬µÍ 768 ÏîÔòÇå0
Ïà¹ØÎĵµ£º
Ò». yumÊÇʲô
yum = Yellow dog Updater, Modified
Ö÷Òª¹¦ÄÜÊǸü·½±ãµÄÌí¼Ó/ɾ³ý/¸üÐÂRPM°ü.
ËüÄÜ×Ô¶¯½â¾ö°üµÄÒÐÀµÐÔÎÊÌâ.
ËüÄܱãÓÚ¹ÜÀí´óÁ¿ÏµÍ³µÄ¸üÐÂÎÊÌâ
×¢:ΪʲôҪʹÓÃyum¶ø²»ÓÃapt,×î¼òµ¥µÄÔÒò,Fedora×Ô´ø
¶þ. ......
LinuxÍøÂçÉ豸Çý¶¯³ÌÐòÌåϵ½á¹¹
´ÓÉϵ½Ï£ºÍøÂçÐÒé½Ó¿Ú²ã-->ÍøÂçÉ豸½á¹¹²ã-->É豸Çý¶¯ÊµÏÖ²ã-->ÍøÂçÉ豸Óëý½é²ã
¼ÇÒä·½·¨£º
·ÖÈý²ã£¬1¡¢×îÉÏÃæÀí½âΪÎÒÃÇÓõÄÍøÂç´«Êä·½·¨£¬¾ÍÊÇÍøÂçÐÒ飬2¡¢×îÏÂÃæ¾ÍÊÇÎïÀíÓ²¼þ£¬¼´ÍøÂçÉ豸²ã£¬3¡¢ÖмäÊÇÒ»²ã£¬É豸Çý¶¯£¬È»ºó²ð³É2²¿·Ö£¬Éϲ¿·ÖÊǽṹ£¨²ã£©£¬Ï²¿· ......
ÄÚºËÖÐËùÓÐÒÑ·ÖÅäµÄ×Ö·ûÉ豸±àºÅ¶¼¼Ç¼ÔÚÒ»¸öÃûΪ chrdevs
É¢ÁбíÀï¡£¸ÃÉ¢ÁбíÖеÄÿһ¸öÔªËØÊÇÒ»¸ö char_device_struct ½á¹¹£¬ËüµÄ¶¨ÒåÈçÏ£º
static struct char_device_struct {
struct char_device_struct *next; // Ö¸ÏòÉ¢ÁгåÍ»Á´±íÖÐµÄ ......
linuxµÄÎļþȨÏÞͨ¹ýÓû§£¬×éºÍÆäËü×éÀ´ÊµÏÖ¡£Ò»¸öÎļþÖ»ÄÜÊôÓÚÒ»¸öÓû§ºÍ×飬 Èç¹ûÆäËüµÄÓû§ÏëÓÐÕâ¸öÎļþµÄȨÏÞ£¬Ôò¿ÉÒÔ½«¸ÃÓû§¼ÓÈëÕâ¸ö×飬һ¸öÓû§¿ÉÒÔͬʱÊôÓÚ¶à¸ö×é¡£Ò»°ãÀ´ËµÒ»¸öÓ¦ÓÃϲ»ÒªÓÐÌ«¶àµÄÎļþ×éºÍÓû§£¬×îºÃ²»ÒªÓÃROOTÖ´ÐнDZ¾£¬ÕâÑùȨÏÞ¶¼·Å·Å´ó£¬±È½Ï²»°²È«
LinuxϺÜÖØÊÓȨÏÞ£¬È¨ÏÞ°üÀ¨¶Á£¬Ð´£¬Ö´ÐС ......