LinuxÎļþϵͳµÄ»º´æ»úÖÆ
LinuxÎļþϵͳÉè¼ÆÁËÈýÀàµÄCacheÒÔÓÃÀ´Ö§³Ö¶àÀàÐ͵ÄÎļþϵͳ¡£
Ò»¡¢ VFSË÷Òý½Úµã»º´æ Inode Cache
VFSË÷Òý½ÚµãÊÇÒ»¸öHash±í£¬Ëü²»¶ÏµØ¶ÁÈ¡¡£VFSÌṩµÄË÷Òý½Úµã»º´æ¿ÉÒÔ¼Ó¿ì¶ÔÎļþϵͳµÄ´æÈ¡¡£Ã¿´Î´ÓË÷Òý½Úµã»º´æÖжÁȡһ¸öVFSË÷Òý½Úµã£¬ÕâÑùϵͳ¾Í¿ÉÒÔ½ÚÊ¡¶ÁÈ¡ÎïÀíÉ豸µÄ´æÈ¡Ê±¼ä¡£
µ±VFS·ÃÎÊË÷Òý½Úµãʱ£¬ËüÊ×ÏȲéÕÒVFSË÷Òý½Úµã»º´æ¡£ÎªÁËÔÚVFSË÷Òý½Úµã»º´æÖвéÕÒÒ»¸öË÷Òý½Úµã£¬ÏµÍ³Ê×ÏȼÆËãËü¶ÔÓ¦µÄ¹þÏ£Öµ£¬È»ºó½«Æä×÷ΪË÷ÒýÖµ½øÈëË÷Òý½Úµã¹þÏ£±í¡£È»ºóÔÙͨ¹ý¶ÁÈ¡Õâ¸öÓµÓÐÏàͬ¹þÏ£ÖµµÄË÷Òý½ÚµãÁ´±íÖð¸öÆ¥ÅäË÷Òý½Úµã£¬Ö±µ½ÕÒµ½¾ßÓÐÖ¸¶¨É豸ºÅºÍinodeºÅµÄË÷Òý½Úµã¡£Èç¹û´Ó»º´æÖÐÕÒµ½ÁËË÷Òý½Úµã£¬¸ÃË÷Òý½ÚµãµÄ¼ÆÊýÖµ¼Ó1¡£·ñÔòÉêÇëÒ»¿ÕÏеÄË÷Òý½Úµã¡£
¶þ¡¢ Ŀ¼»º´æ Inode Directory Cache
ΪÁ˼ӿì¶Ô³£ÓõÄĿ¼µÄ´æÈ¡£¬ÓÉÓÚÊǸù¾Ý·¾¶·ÃÎÊÎļþµÄ£¬Linuxά»¤Á˱í´ï·¾¶ÓëË÷Òý½Úµã¶ÔÓ¦¹ØÏµµÄĿ¼»º´æ£¬±»ÎļþϵͳʹÓùýµÄĿ¼½«»á´æÈëµ½¸ÃĿ¼»º´æÖС£ÕâÑù£¬Í¬Ò»Ä¿Â¼±»ÔٴηÃÎÊʱ£¬¿ÉÖ±½Ó´Ó»º³åÇøµÃµ½£¬²»±ØÖظ´·ÃÎÊ´æ´¢ÎļþϵͳµÄÉ豸¡£
µ±ÕæÊµµÄÎļþϵͳ¶Áȡһ¸öĿ¼ʱ£¬Ä¿Â¼µÄÏêϸÐÅÏ¢±»Ìí¼Óµ½Ä¿Â¼»º´æÖС£ÕâÑù£¬Í¬Ò»Ä¿Â¼±»ÔٴηÃÎÊʱ£¬¿ÉÖ±½Ó´Ó»º³åÇøÕÒµ½´ËĿ¼µÄÓйØÐÅÏ¢¡£Ö»ÓжÌÓÚ15¸ö×Ö·ûµÄĿ¼²ÅÄܱ£´æÔÚĿ¼»º´æÖС£
Ŀ¼»º´æÓÉÒ»ÕŹþÏ£±í×é³É£¬ÆäÖÐÿ¸ö±íÏîÖ¸Ïò¾ßÓÐͬÑù¹þÏ£ÖµµÄĿ¼»º´æÁ´±íµÄÒ»¸öÖ¸Õ룬¹þÏ£º¯ÊýʹÓÃÎļþϵͳµÄÉ豸ºÅºÍĿ¼ÃûÀ´¼ÆËã¹þÏ£Öµ£¬ÒÔ±ã¿ìËÙµØÕÒµ½Ò»¸öĿ¼ÏΪÁ˱£³ÖÒ»¸ö×îеġ¢ÕýÈ·µÄ»º³å£¬VFSʹÓûùÓÚLRU£¨Least Recently Used£©Ëã·¨µÄĿ¼»º³åÁ´±í¡£
Èý¡¢ »º³åÇø»º´æ Buffer Cache
µ±½ø³ÌʹÓð²×°µÄÎļþϵͳʱ£¬ËüÃDzúÉúºÜ¶à¶Ô¿éÉ豸Êý¾Ý¿éµÄ¶ÁдÇëÇó£¬ÈçÏÂͼËùʾ¡£ÕâЩ¿é¶ÁдÇëÇó»áͨ¹ý±ê×¼ºËÐĹý³ÌÒÔBuffer_headÊý¾Ý½á¹¹µÄÐÎʽ¸ø³öÉ豸Çý¶¯³ÌÐòÐèÒªµÄ¼¸ºõÈ«²¿ÐÅÏ¢¡£²Ù×÷ϵͳ½«É豸¿éÉϵÄÊý¾Ý¿´×÷¾ßÓÐͬÑù´óСµÄÊý¾Ý¿éµÄÏßÐÔÁÐ±í¡£Buffer_headÖеÄb_devºÍb_blocknrÊôÐÔֵΩһָÃ÷ÁËÏòʲôÉ豸¶ÁдµÚ¼¸¸öÊý¾Ý¿é¡£
£¨»º³åÇø»º´æ½á¹¹£©¼û×îÏ·½µÄͼ
ΪÁ˼ӿìÎïÀí¿éÉ豸µÄ´æÈ¡£¬Linuxά»¤Ò»×é¿é»º³åÇøµÄ»º´æ£¬³Æ×÷Buffer Cache¡£Ëü±»ËùÓÐÎïÀí¿éÉ豸Ëù¹²Ïí¡£ÔÚÈÎһʱ¿Ì£¬ÓÉÈô¸É»º³åÇøÎªÈô¸ÉÉ豸¹¤×÷¡£Êý¾Ý¿éÒ»¾Ê¹Ó㬾ͻáÔÚBuffer CacheÁôϱ¸·Ý£¬¶
Ïà¹ØÎĵµ£º
ÄÚºËÇý¶¯·ÖÀà
Çý¶¯ÊµÏÖ¹¦ÄÜ£º
¶Á
д
´ò¿ª
ÉèÖÃ
×îÖÕÄ¿µÄ²Ù×÷Ó²¼þÉ豸£ºÊý¾Ý´«ÊäºÍÊý¾Ý¿ØÖÆ
Ó²¼þ²Î¿¼ÊֲᣬÄÚºËÌṩµÄ¹¦ÄÜ£º²Ù×÷ʱÐò£¬×ÜÏßÈçºÎ²Ù×÷£¬ÄÚºËAPI
1.×Ö·ûÉ豸£¨char£©
2.¿éÉ豸£¨block£©
3.ÍøÂçÉ豸£¨net£©
ÄÚºËÄ£¿é²Ù×÷ÃüÁî
make
¼ÓÔØ:sudo modprobe ./Mo ......
1. Linux ½Å±¾±àд»ù´¡
1.1 Óï·¨»ù±¾½éÉÜ
1.1.1 ¿ªÍ·
³ÌÐò±ØÐëÒÔÏÂÃæµÄÐпªÊ¼£¨±ØÐë·½ÔÚÎļþµÄµÚÒ»ÐУ©£º
#!/bin/sh
·ûºÅ#!ÓÃÀ´¸æËßϵͳËüºóÃæµÄ²ÎÊýÊÇÓÃÀ´Ö´ÐиÃÎļþµÄ³ÌÐò¡£ÔÚÕâ¸öÀý×ÓÖÐÎÒÃÇʹÓÃ/bin/shÀ´Ö´ÐгÌÐò¡£
µ±±à¼ºÃ½Å±¾Ê±£¬Èç¹ûÒªÖ´Ðиýű¾£¬»¹±ØÐëʹÆä¿ÉÖ´ÐС£
Ҫʹ½Å±¾¿ÉÖ´ÐУº
±àÒë chmod +x ......
#include <unistd.h>
int daemon(int nochdir,int noclose)
ÔÚ´´½¨¾«Áé½ø³ÌµÄʱºò,ÍùÍùÐèÒª½«¾«Áé½ø³ÌµÄ¹¤×÷Ŀ¼ÐÞ¸ÄΪ"/"¸ùĿ¼
²¢ÇÒ½«±ê×¼ÊäÈë,Êä³öºÍ´íÎóÊä³öÖØ¶¨Ïòµ½/dev/null
daemonµÄ×÷ÓþÍÊǵ±²ÎÊýnochdirΪ0ʱ,½«¸ùĿ¼ÐÞ¸ÄΪ¹¤×÷Ŀ¼
nocloseΪ0ʱ,×öÊäÈë,Êä³öÒÔ¼°´íÎóÊä³öÖØ¶¨Ïòµ½/dev/null
Ö´ ......
¡¡¡¡×ܽáһЩ³£ÓõÄLinuxÃüÁî¡£
Ò»¡¢LinuxÄں˺Ͱ汾²éѯÃüÁî
¡¡¡¡ÃüÁ uname -a
¡¡¡¡×÷Ó㺠²é¿´ÏµÍ³Äں˰汾ºÅ¼°ÏµÍ³Ãû³Æ¡£
¡¡¡¡ÃüÁ cat /proc/version
¡¡¡¡×÷Ó㺠²é¿´Ä¿Â¼"/proc"ÏÂversionµÄÐÅÏ¢£¬Ò²¿ÉÒԵõ½µ±Ç°ÏµÍ³µÄÄں˰汾ºÅ¼°ÏµÍ³Ãû³Æ¡£
¡¡¡¡ÃüÁlsb_release -a
¡¡¡¡×÷Ó㺵Ǽµ½·þÎñÆ÷Ö ......
˵Ã÷£ºÏëÔÚwindowsÉÏ´ò¿ªÊ¹ÓÃÔ¶³Ìlinux×ÀÃæ¡£·½·¨Ò²ºÜ¶à¡£
1.vnc¡£Õâ¸öÔÚlinux¶ËÐèÒª°²×°³ÌÐò£¬ÐèÒªÔÚlinuxÉÏÔËÐÐÏàÓ¦µÄ³ÌÐò£¬²ÅÄÜʹwindowsÁ¬½ÓÉÏÈ¥¡£²»Ì«·½±ã¡£
2.xmanager.Ö»ÒªÐÞ¸ÄÒ»ÏÂlinuxÀïµÄ¼¸¸öÎļþÉèÖþͿÉÒÔʹÓᣣ¨ÓëwindowsµÄÔ¶³Ì×ÀÃæÒ»Ñù£¬Ö»ÐèÒª¹´ÉÏÔ¶³Ì×ÀÃæÑ¡Ï
linuxÉÏÉèÖÃÏîÄ¿£º
1¡£ÐÞ¸Ä/etc/X11/xd ......