linuxÎļþϵͳÌåϵ½á¹¹ ºÍ ÐéÄâÎļþϵͳ(VFS)
ͼ 1. Linux Îļþϵͳ×é¼þµÄÌåϵ½á¹¹
Óû§¿Õ¼ä°üº¬Ò»Ð©Ó¦ÓóÌÐò£¨ÀýÈ磬ÎļþϵͳµÄʹÓÃÕߣ©ºÍ GNU C ¿â£¨glibc£©£¬ËüÃÇΪÎļþϵͳµ÷Ó㨴ò¿ª¡¢¶ÁÈ¡¡¢Ð´ºÍ¹Ø±Õ£©ÌṩÓû§½Ó¿Ú¡£ÏµÍ³µ÷ÓýӿڵÄ×÷ÓþÍÏñÊǽ»»»Æ÷£¬Ëü½«ÏµÍ³µ÷ÓôÓÓû§¿Õ¼ä·¢Ë͵½Äں˿ռäÖеÄÊʵ±¶Ëµã¡£
VFS ÊǵײãÎļþϵͳµÄÖ÷Òª½Ó¿Ú¡£Õâ¸ö×é¼þµ¼³öÒ»×é½Ó¿Ú£¬È»ºó½«ËüÃdzéÏ󵽸÷¸öÎļþϵͳ£¬¸÷¸öÎļþϵͳµÄÐÐΪ¿ÉÄܲîÒìºÜ´ó¡£ÓÐÁ½¸öÕë¶ÔÎļþϵͳ¶ÔÏóµÄ»º´æ£¨inode ºÍ dentry£©¡£ËüÃÇ»º´æ×î½üʹÓùýµÄÎļþϵͳ¶ÔÏó¡£
ÿ¸öÎļþϵͳʵÏÖ£¨±ÈÈç ext2¡¢JFS µÈµÈ£©µ¼³öÒ»×éͨÓýӿڣ¬¹© VFS ʹÓ᣻º³åÇø»º´æ»á»º´æÎļþϵͳºÍÏà¹Ø¿éÉ豸֮¼äµÄÇëÇó¡£ÀýÈ磬¶Ôµ×²ãÉ豸Çý¶¯³ÌÐòµÄ¶ÁдÇëÇó»áͨ¹ý»º³åÇø»º´æÀ´´«µÝ¡£Õâ¾ÍÔÊÐíÔÚÆäÖлº´æÇëÇ󣬼õÉÙ·ÃÎÊÎïÀíÉ豸µÄ´ÎÊý£¬¼Ó¿ì·ÃÎÊËÙ¶È¡£ÒÔ×î½üʹÓã¨LRU£©ÁбíµÄÐÎʽ¹ÜÀí»º³åÇø»º´æ¡£×¢Ò⣬¿ÉÒÔʹÓà sync ÃüÁ»º³åÇø»º´æÖеÄÇëÇó·¢Ë͵½´æ´¢Ã½Ì壨ÆÈʹËùÓÐδдµÄÊý¾Ý·¢Ë͵½É豸Çý¶¯³ÌÐò£¬½ø¶ø·¢Ë͵½´æ´¢É豸£©¡£
ʲôÊÇ¿éÉ豸£¿
¿éÉ豸¾ÍÊÇÒԿ飨±ÈÈç´ÅÅÌÉÈÇø£©Îªµ¥Î»ÊÕ·¢Êý¾ÝµÄÉ豸£¬ËüÃÇÖ§³Ö»º³åºÍËæ»ú·ÃÎÊ£¨²»±ØË³Ðò¶ÁÈ¡¿é£¬¶øÊÇ¿ÉÒÔÔÚÈκÎʱºò·ÃÎÊÈκο飩µÈÌØÐÔ¡£¿éÉ豸°üÀ¨Ó²ÅÌ¡¢CD-ROM ºÍ RAM ÅÌ¡£Óë¿éÉ豸Ïà¶ÔµÄÊÇ×Ö·ûÉ豸£¬×Ö·ûÉ豸ûÓпÉÒÔ½øÐÐÎïÀíѰַµÄýÌå¡£×Ö·ûÉ豸°üÀ¨´®Ðж˿ںʹŴøÉ豸£¬Ö»ÄÜÖð×Ö·ûµØ¶ÁÈ¡ÕâЩÉ豸ÖеÄÊý¾Ý¡£
Õâ¾ÍÊÇ VFS ºÍÎļþϵͳ×é¼þµÄ¸ß²ãÇé¿ö¡£ÏÖÔÚ£¬ÌÖÂÛʵÏÖÕâ¸ö×ÓϵͳµÄÖ÷Òª½á¹¹¡£
Ö÷Òª½á¹¹
Linux ÒÔÒ»×éͨÓöÔÏóµÄ½Ç¶È¿´´ýËùÓÐÎļþϵͳ¡£ÕâЩ¶ÔÏóÊdz¬¼¶¿é£¨superblock£©¡¢inode¡¢dentry ºÍÎļþ¡£³¬¼¶¿éÔÚÿ¸öÎļþϵͳµÄ¸ùÉÏ£¬³¬¼¶¿éÃèÊöºÍά»¤ÎļþϵͳµÄ״̬¡£ÎļþϵͳÖйÜÀíµÄÿ¸ö¶ÔÏó£¨Îļþ»òĿ¼£©ÔÚ Linux ÖбíʾΪһ¸ö inode¡£inode °üº¬¹ÜÀíÎļþϵͳÖеĶÔÏóËùÐèµÄËùÓÐÔªÊý¾Ý£¨°üÀ¨¿ÉÒÔÔÚ¶ÔÏóÉÏÖ´ÐеIJÙ×÷£©¡£ÁíÒ»×é½á¹¹³ÆÎª dentry£¬ËüÃÇÓÃÀ´ÊµÏÖÃû³ÆºÍ inode Ö®¼äµÄÓ³É䣬ÓÐÒ»¸öĿ¼»º´æÓÃÀ´±£´æ×î½üʹÓÃµÄ dentry¡£dentry »¹Î¬»¤Ä¿Â¼ºÍÎļþÖ®¼äµÄ¹ØÏµ£¬´Ó¶øÖ§³ÖÔÚÎļþϵͳÖÐÒÆ¶¯¡£×îºó£¬VFS Îļþ±íʾһ¸ö´ò¿ªµÄÎļþ£¨±£´æ´ò¿ªµÄÎļþµÄ״̬£¬±ÈÈçÐ´Æ«ÒÆÁ¿µÈµÈ£©¡£
ÐéÄâÎļþϵͳ²ã
VFS ×÷ΪÎļþϵͳ½Ó¿ÚµÄ¸ù²ã¡£VFS ¼Ç¼µ±Ç°Ö§³ÖµÄÎļþϵͳÒÔ¼°µ±Ç°¹Ò×°µÄÎļþϵͳ¡£
¿ÉÒÔʹÓÃÒ»×é×¢²áº¯ÊýÔÚ Linux Öж¯Ì¬µØÌí¼Ó»òɾ³ýÎļþϵͳ¡£Äں˱£´æµ±Ç°Ö§³ÖµÄÎļþϵͳµÄÁÐ±í£¬¿ÉÒÔͨ¹
Ïà¹ØÎĵµ£º
step 1)ÏÂÔØÔ´´úÂë°üµ½±¾µØLinuxÖ÷»ú£¬È»ºó½âѹËõ£¬½øÈë¸ÃĿ¼£¬½øÐÐÅäÖ㬱àÒëºÍ°²×°
ÏÂÔØmysql5Ô´Âëmysql-5.0.18.tar.gzµ½Ä¿Â¼/usr/local
cd /usr/local
tar xzvf mysql-5.0.18.tar.gz
cd mysql-5.0.18
./configure --prefix=/usr/local/mysql
make && make install
make¹ý³Ì»¨µÄʱ¼ä±È½Ï³¤
step 2)ÅäÖÃ
......
Linux Kernelѧϰ±Ê¼Ç
Table of Contents
1. ´æ´¢Æ÷Ѱַ
2. É豸Çý¶¯³ÌÐò¿ª·¢
3. ×Ö·ûÉ豸Çý¶¯³ÌÐò
3.1. É豸ºÅ
3.2. É豸ºÅµÄ·ÖÅäºÍÊÍ·Å
3.3. ÖØÒªµÄÊý¾Ý½á¹¹
3.4. ¶ÁºÍд
4. PCIÉ豸
5. Äں˳õʼ»¯ÓÅ»¯ºê
6. ·ÃÎÊÄں˲ÎÊýµÄ½Ó¿Ú
7. Äں˳õʼ»¯Ñ¡Ïî
8. ÄÚºËÄ£¿é±à³Ì
8.1. ÈëÃÅ
8.2. Ϊģ¿éÌí¼Ó ......
1. man ¶ÔÄãÊìϤ»ò²»ÊìϤµÄÃüÁîÌṩ°ïÖú½âÊÍ
eg:man ls ¾Í¿ÉÒԲ鿴lsÏà¹ØµÄÓ÷¨
×¢£º°´q¼ü»òÕßctrl+cÍ˳ö£¬ÔÚlinuxÏ¿ÉÒÔʹÓÃctrl+cÖÕÖ¹µ±Ç°³ÌÐòÔËÐС£
2. ls ²é¿´Ä¿Â¼»òÕßÎļþµÄÊô*£¬ÁоٳöÈÎһĿ¼ÏÂÃæµÄÎļþ
eg: ls /usr/man
ls -l
a.d±íʾĿ¼(directory)£¬Èç¹ûÊÇÒ»¸ö”-”±íʾÊÇÎļþ£¬Èç¹ûÊÇlÔò±íʾÊÇ ......
Ðźű¾ÖÊ
ÐźÅÊÇÔÚÈí¼þ²ã´ÎÉ϶ÔÖжϻúÖÆµÄÒ»ÖÖÄ£Ä⣬ÔÚÔÀíÉÏ£¬Ò»¸ö½ø³ÌÊÕµ½Ò»¸öÐźÅÓë´¦ÀíÆ÷ÊÕµ½Ò»¸öÖжÏÇëÇó¿ÉÒÔ˵ÊÇÒ»ÑùµÄ¡£ÐźÅÊÇÒì²½µÄ£¬Ò»¸ö½ø³Ì²»±ØÍ¨¹ýÈκβÙ×÷À´µÈ´ýÐźŵĵ½´ï£¬ÊÂʵÉÏ£¬½ø³ÌÒ²²»ÖªµÀÐźŵ½µ×ʲôʱºòµ½´ï¡£
ÐźÅÊǽø³Ì¼äͨÐÅ»úÖÆÖÐΨһµÄÒ첽ͨÐÅ»úÖÆ£¬¿ÉÒÔ¿´×÷ÊÇÒ첽֪ͨ£¬Í¨Öª½ÓÊÕÐźŵĽø³Ì ......