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£®½âѹÏÂÔØÎļ ......
#define _LARGEFILE_SOURCE
#define _LARGEFILE64_SOURCE
#define _FILE_OFFSET_BITS 64
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
int main()
{
printf("sizeof(off_t) = %d\n", sizeof(off_t));
int ......
ϵͳҪÇó£º
¡¡¡¡ÄÚ´æ£ºÍÆ¼ö1G
¡¡¡¡Swap·ÖÇø£ºÉèΪÄÚ´æµÄ2±¶
¡¡¡¡/tmp´ÅÅ̿ռ䣺400MBÒÔÉÏÈý
¡¡¡¡´ÅÅ̿ռ䣺Èí¼þ3.5G Êý¾Ý1.2G
¡¡¡¡ËùÐèÈí¼þ£º
¡¡¡¡SuSE Linux10 for x86
¡¡¡¡Oracle database 10gR2 for Linux32
¡¡¡¡Orarun-1.8-109.15.i586.rpmÈí¼þ°ü£¬¿ÉÒÔ´Óhttp://Ftp.novell.com/partners/Oracle/sels-9ÏÂÔØ
&n ......
1¡¢Ïà¹ØÃüÁ
ulimit –a //²é¿´µ±Ç°ÉèÖÃ
ulimit –n 2048 //¼´Éè³É2048£¬°´Êµ¼ÊÐèÒªÉèÖÃ
2¡¢Óû§»·¾³²ÎÊýÎļþÅäÖãº
ÔÚ/etc/profileÖмÓÈëÈçÏÂÄÚÈÝ£º
if
[ $SHELL
=
"
/bin/ksh
"
]; then
ulimit
-
p
16384
ulimit&nbs ......