Linuxѧϰ±Ê¼ÇÁãÁãÈý
´æ´¢¹ÜÀí
MMUÓëÄÚºËÄÚ´æ¹ÜÀíµÄ¹ØÏµ
´ÓÏßÐÔµØÖ·µ½ÎïÀíµØÖ·µÄÓ³É䣬ͨ¹ýҳĿ¼±íºÍÒ³±íÀ´ÊµÏֵġ£
ÄÚºËΪ´æ´¢¹ÜÀíά»¤ÁËÒ»Ì׸´ÔÓµÄÊý¾Ý½á¹¹£¬Ò³Ä¿Â¼±íºÍÒ³±íÊÇÖ÷ÒªµÄ½á¹¹Ö®Ò»¡£ÕâЩ±íÒ²ÊÇ´æ´¢ÔÚÎïÀíÄÚ´æÒ³ÃæÖеģ¬Òò´Ë£¬Ò²ÊÇÒÔ4KΪµ¥Î»¡£
±íÖеÄÿ¸ö±íÏî¶¼¼Ç¼ÁËÒ»¸ö32λµÄµØÖ·£¬Îª4¸ö×Ö½Ú£¬Òò´Ë£¬Ò»¸ö±íÖÐ×î¶à¿ÉÒÔÓÐ1KÏÕâÒ²ÊÇÏßÐÔµØÖ·»®·ÖµÄÒÀ¾Ý¡£
32λµÄÏßÐÔµØÖ·»®·ÖΪ3²¿·Ö¡£×î¸ß10λ´ú±íҳĿ¼±íµÄË÷Òý¡£½ô½Ó×ŵÄ10λ¶ÔÓ¦Ò³±íµÄË÷Òý¡£×îºó12λ¶ÔÓ¦Ò³Ä򵀮«ÒƵØÖ·¡£
MMUÓëÄÚºËÄÚ´æ¹ÜÀíµÄ·Ö¹¤ºÍÐ×÷£º
MMU´ÓÓ²¼þÉÏʵÏÖÐéÄâµØÖ·µ½ÎïÀíµØÖ·µÄÓ³Éä¡£Äں˵ÄÄÚ´æ¹ÜÀíʵÏÖ¶ÔһϵÁÐÊý¾Ý½á¹¹µÄά»¤ºÍ¹ÜÀí¡£
ÔÚϵͳÆô¶¯Ê±£¬ÄÚºËΪÿһ¸ö4KµÄÎïÀíÄÚ´æÒ³ÃæÎ¬³ÖÒ»¸ö½ÐpageµÄÊý¾Ý½á¹¹£¬Õâ¸öÊý¾Ý½á¹¹ÊÇÿһ¸öÎïÀíÄÚ´æÒ³ÃæµÄID¡£ÄÚºËά³ÖÁËÒ»¸ö½ÐMem_pageµÄ½á¹¹ÌåÊý×飬¼Ç¼ÁËËùÓеÄpage¡£²¢ÒýÈëÁ˹ÜÀíÇøµÄ¸ÅÄ¶ÔDMA¡¢¸ßµØÖ·ÇøºÍÕý³£Çø½øÐÐÁË·ÖÀà¡£
ÔÚÆô¶¯½ø³Ìʱ£¬ÄÚºËΪ½ø³ÌµÄÓû§¿Õ¼ä×öÁ˳õʼ»¯£¬ÕâЩ³õʼ»¯¹¤×÷°üÀ¨¶ÑÕ»Çø¡¢¾²Ì¬Êý¾ÝÇø¡¢È«¾ÖÊý¾ÝÇø¡¢´úÂëÇø¡£²¢³õʼ»¯ÁËÒ»Ì׽ṹÀ´Î¬³ÖÕâЩ״̬£¬Í¨¹ý»®·ÖÐéÄâÇø¼äÀ´¼Ç¼¡£
´ËÍ⣬Äں˻¹¹¹½¨ÁËҳĿ¼±í¡¢Ò³±íµÈ½á¹¹£¬²¢½«Ò³Ä¿Â¼±íµÄµØÖ··ÅÈëÌØ¶¨µÄ¼Ä´æÆ÷¡£
µ±Äں˳õʼ»¯Íê±Ïºó£¬¿ªÊ¼Ö´ÐÐÓû§½ø³ÌµÄ´úÂ룬MMU¿ªÊ¼µØÖ·×ª»»£¬MMU´ÓÌØ¶¨µÄ¼Ä´æÆ÷ÖÐÈ¡³öҳĿ¼±íµÄµØÖ·£¬¸ù¾ÝÏßÐÔµØÖ·£¬²éѯҳĿ¼±íºÍÒ³±í£¬×îÖÕ·ÃÎÊpage½á¹¹¡£Èç¹ûҳĿ¼±íºÍÒ³±íÖÐûÓжÔÓ¦µÄ±íÏ¾Í˵Ã÷ûÓÐÓ³ÉäºÃ¡£Èç¹ûÒ³ÄÚ´æ½á¹¹pageÖеıêʶλ±íʾËü²»ÔÚÄÚ´æÖУ¬¾ÍÐèÒª½«¶ÔÓ¦µÄÎïÀíÒ³Ãæµ¼ÈëÎïÀíÄÚ´æÒ³Ãæ¡£ÕâÁ½ÖÖÇé¿öÊÇÈçºÎ´¦ÀíµÄÄØ£¿Í¨¹ýÒì³£¡£
µ±³öÏÖÒÔÉÏÁ½ÖÖÇé¿öʱ£¬MMU»á·¢³öpage faultÒì³££¬ÓÉÄں˵ĶÔÓ¦µÄÒì³£´¦Àí³ÌÐòÀ´´¦Àí¡£
ÔÚÒì³£´¦Àí³ÌÐòÖУ¬¸ÃÓ³ÉäµÄÓ³É䣬¸Ãµ¼ÈëÄÚ´æµÄµ¼ÈëÄڴ棬´¦ÀíÍêºó£¬MMU¾Í¿ÉÒÔ¼ÌÐøµØÖ·×ª»»ÁË¡£
Äں˻¹ÒªÏìÓ¦Óû§½ø³ÌÖеÄϵͳµ÷Ó㬱ÈÈç·ÖÅä¶Ñ¿Õ¼ä£¬±ÈÈçдÎļþ£¬½øÐÐIO²Ù×÷¡£ÔÚÕâЩ¹ý³ÌÖУ¬ÄÚºËÐèÒª¶ÔÏàÓ¦µÄ½á¹¹Ìå½øÐÐÐ޸쬻òÕß²Ù×÷ÎïÀíÒ³Ãæ¡£
Ö÷ÒªµÄ½á¹¹ÌåÁªÏµÍ¼£º
task_struct----->mm_struct---->vm_area_struct
|---->pgd---->pte
Ïà¹ØÎĵµ£º
°²×°ÊµÀý£ºImageMagickµÄ°²×°·½·¨
ImageMagickµÄ°²×°·½·¨ÓÐRPM·½Ê½ºÍSOURCE·½Ê½¡£Ä¿Ç°×îаæÊÇImageMagick-6.5.5¡£¿ÉÒÔ´ÓÕâ¸öÍøÖ·ÏÂÔØ£º http://www.imagemagick.org
°²×°²½Ö裺
£±£®sshÁ¬½ÓLinux·þÎñÆ÷
£²£®°ÑÏÂÔØµÄ°²×°Îļþ·Åµ½Êʵ±µÄÎļþ¼ÐÏ¡£ÀýÈ磺cd /usr/local/src¡£»òÕßÖ±½ÓÔÚ·þÎñÆ÷ÉÏÏÂÔØ¡£
3£®½âѹÏÂÔØÎļ ......
²ÉÓÃglimpse¿ÉÒÔ¶ÔÔ´´úÂë½øÐÐË÷Òý£¬ÕâÑùÔÚ·±ÔӵĴúÂëÀïÃæ£¬¿ÉÒԺܿìµÄÕÒµ½¹Ø¼ü×Ö¡£
Õâ¸ö¹¤¾ß¾ÍÊÇglimpse¡£Ê¹Ó÷½·¨¾Í²»¶à˵ÁË¡£¿ÉÒÔ²égoogleÂ ^__^
²ÉÓÃteeÃüÁî¿ÉÒÔ½«glimpse²éÕÒ³öÀ´µÄÐÅϢת´æÎªÎļþ¡£
¾ÍÊÇÕâÑù£º
glimpse CONFIG_BOOTDELAY | tee bootdelay.txt
ÕâÑù¾Í²é³öÁËËùÓÐCONFI ......
#include <errno.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <string.h>
#include <netinet/in.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <s ......
Ò»¡¢ËµÃ÷
¡¡¡¡ÀàËÆWindowsϵͳÖеĶ¯Ì¬Á´½Ó¿â£¬LinuxÖÐÒ²ÓÐÏàÓ¦µÄ¹²Ïí¿âÓÃÒÔÖ§³Ö´úÂëµÄ¸´Óá£WindowsÖÐΪ*.dll£¬¶øLinuxÖÐΪ*.so¡£ÏÂÃæÏêϸ½éÉÜÈçºÎ´´½¨¡¢Ê¹ÓÃLinuxµÄ¹²Ïí¿â¡£
¶þ¡¢´´½¨¹²Ïí¿â
ÔÚmytestso.cÎļþÖУ¬´úÂëÈçÏ£º
#include <stdio.h>
#include <stdlib.h>
int GetMax(int a, int b)
{
i ......
1£® ´´½¨Ä¿Â¼
mkdir –p test/sub
2£® ÔÚ×ÓĿ¼sub/ϱàдhello.cºÍhello.h
/*****hello.c*****/
#include <stdio.h>
#include “hello.h”
void hello()
{
printf(“Hello!\n”);
}
/*****hello.h**** ......