linux VFSµÄÎļþIO
ͨ¹ý²ûÊöÁ½¸ö¾ßÓдú±íÐÔµÄϵͳµ÷ÓÃsys_open()ºÍsys_read()À´¸üºÃµØÀí½âVFSÏò¾ßÌåÎļþϵͳÌṩµÄ½Ó¿Ú»úÖÆ¡£ÔÚÉîÈësys_open()ºÍsys_read()֮ǰ£¬ÎÒÃÇÏȸÅÀÀϵ÷ÓÃsys_read()µÄÉÏÏÂÎÄ¡£ÏÂͼÃèÊöÁË´ÓÓû§¿Õ¼äµÄread()µ÷Óõ½Êý¾Ý´Ó´ÅÅ̶Á³öµÄÕû¸öÁ÷³Ì¡£µ±ÔÚÓû§Ó¦ÓóÌÐòµ÷ÓÃÎļþI/O read()²Ù×÷ʱ£¬ÏµÍ³µ÷ÓÃsys_read()±»¼¤·¢£¬sys_read()ÕÒµ½ÎļþËùÔڵľßÌåÎļþϵͳ£¬°Ñ¿ØÖÆÈ¨´«¸ø¸ÃÎļþϵͳ£¬×îºóÓɾßÌåÎļþϵͳÓëÎïÀí½éÖʽ»»¥£¬´Ó½éÖÊÖжÁ³öÊý¾Ý¡£
£¨1£©sys_open()
sys_open()ϵͳµ÷Óôò¿ª»ò´´½¨Ò»¸öÎļþ£¬³É¹¦·µ»Ø¸ÃÎļþµÄÎļþÃèÊö·û¡£sys_openº¯Êýµ÷ÓùØÏµÍ¼£º
£¨2£©sys_read()
sys_read()ϵͳµ÷ÓÃÓÃÓÚ´ÓÒÑ´ò¿ªµÄÎļþ¶ÁÈ¡Êý¾Ý¡£Èçread³É¹¦£¬Ôò·µ»Ø¶Áµ½µÄ×Ö½ÚÊý¡£ÈçÒѵ½´ïÎļþµÄβ¶Ë£¬Ôò·µ»Ø0¡£
¶ÔÎļþ½øÐжÁ²Ù×÷ʱ£¬ÐèÒªÏÈ´ò¿ªËü¡£ÓÉ¡¶linux VFSµÄÊý¾Ý½á¹¹¡·¿ÉÖª´ò¿ªÒ»¸öÎļþʱ£¬»áÔÚÄÚ´æ×é×°Ò»¸öÎļþ¶ÔÏó£¬Ï£Íû¶Ô¸ÃÎļþÖ´ÐеIJÙ×÷·½·¨ÒÑÔÚÎļþ¶ÔÏóÉèÖúá£ËùÒÔ¶ÔÎļþ½øÐжÁ²Ù×÷ʱ£¬VFSÔÚ×öÁËһЩ¼òµ¥µÄת»»ºó£¨ÓÉÎļþÃèÊö·ûµÃµ½Æä¶ÔÓ¦µÄÎļþ¶ÔÏ󣬯äºËÐÄ˼ÏëÊÇ·µ»Øcurrent->files->fd[fd]ËùÖ¸ÏòµÄÎļþ¶ÔÏ󣩣¬¾Í¿ÉÒÔͨ¹ýÓï¾äfile->f_op->read(file, buf, count, pos)ÇáËɵ÷ÓÃʵ¼ÊÎļþϵͳµÄÏàÓ¦·½·¨¶ÔÎļþ½øÐжÁ²Ù×÷ÁË¡£
£¨3£©×ÛÉÏ
¿çÎļþϵͳµÄÎļþ²Ù×÷µÄ»ù±¾ÔÀí£ºµ½´Ë£¬ÎÒÃÇÒ²¾ÍÄܹ»½âÊÍÔÚLinuxÖÐΪʲôÄܹ»¿çÎļþϵͳµØ²Ù×÷ÎļþÁË¡£¾Ù¸öÀý×Ó£¬½«vfat¸ñʽµÄ´ÅÅÌÉϵÄÒ»¸öÎļþa.txt¿½±´µ½ext3¸ñʽµÄ´ÅÅÌÉÏ£¬ÃüÃûΪb.txt¡£¶Áд²Ù×÷ǰ£¬ÐèÒªÏÈ´ò¿ªÎļþ£¬´ò¿ªÎļþʱ£¬VFS»áÖªµÀ¸ÃÎļþ¶ÔÓ¦µÄÎļþϵͳ¸ñʽ£¬ÒÔºó²Ù×÷¸ÃÎļþʱ£¬VFS»áµ÷ÓÃÆä¶ÔÓ¦µÄʵ¼ÊÎļþϵͳµÄ²Ù×÷·½·¨¡£ËùÒÔ£¬VFSµ÷ÓÃvfatµÄ¶ÁÎļþ·½·¨½«a.txtµÄÊý¾Ý¶ÁÈëÄڴ棻ÔÚ½«a.txtÔÚÄÚ´æÖеÄÊý¾ÝÓ³Éäµ½b.txt¶ÔÓ¦µÄÄÚ´æ¿Õ¼äºó£¬VFSµ÷ÓÃext3µÄдÎļþ·½·¨½«b.txtдÈë´ÅÅÌ£»´Ó¶øÊµÏÖÁË×îÖյĿçÎļþϵͳµÄ¸´ÖƲÙ×÷¡£
²»ÂÛÊÇÆÕͨµÄÎļþ£¬»¹ÊÇÌØÊâµÄĿ¼¡¢É豸µÈ£¬VFS¶¼½«ËüÃÇͬµÈ¿´´ý³ÉÎļþ£¬Í¨¹ýͬһÌ×Îļþ²Ù×÷½çÃæÀ´¶ÔËüÃǽøÐвÙ×÷¡£²Ù×÷ÎļþʱÐèÏÈ´ò¿ª£»´ò¿ªÎļþʱ£¬VFS»áÖªµÀ¸ÃÎ
Ïà¹ØÎĵµ£º
dfÃüÁîÏêϸÓ÷¨
a£ºÏÔʾȫ²¿µÄµµ°¸ÏµÍ³ºÍ¸÷·Ö¸îÇøµÄ´ÅÅÌʹÓÃÇéÐÎ
i£ºÏÔʾi -nodesµÄʹÓÃÁ¿
k£º´óСÓÃkÀ´±íʾ (ĬÈÏÖµ)
t£ºÏÔʾijһ¸öµµ°¸ÏµÍ³µÄËùÓзָîÇø´ÅÅÌʹÓÃÁ¿
x£ºÏÔʾ²»ÊÇijһ¸öµµ°¸ÏµÍ³µÄËùÓзָîÇø´ÅÅÌʹÓÃÁ¿
T£ºÏÔʾÿ¸ö·Ö¸îÇøËùÊôµÄµµ°¸ÏµÍ³Ãû³Æ
³£ÓÃÃüÁdf -hi
²Ù×÷Ïê½â
&n ......
linux´ÅÅ̲Ù×÷ÃüÁîÏê½â
ÊÕ²Ø
1.·ÖÇøÓë¸ñʽ»¯ÔÀí
Ó²Å̵ķÖÇø·ÖÖ÷MBR£¨446byte£©,Ö÷·ÖÇø±í(64byte)£¬·ÖÇø.
2.ʹÓÃlinuxÖеÄfdisk·ÖÇø
fdisk /dev/sdb
p ´òÓ¡·ÖÇø±í
t ת»»·ÖÇø±í
w д½ø·ÖÇø±í ......
shellÊÇÓû§ºÍLinux²Ù×÷ϵͳ֮¼äµÄ½Ó¿Ú¡£LinuxÖÐ
ÓжàÖÖshell£¬ÆäÖÐȱʡʹÓõÄÊÇBash¡£±¾Õ½²ÊöÁËshellµÄ¹¤×÷ÔÀí£¬shellµÄÖÖÀ࣬shellµÄÒ»°ã²Ù×÷¼°BashµÄÌØÐÔ¡£
¡¡¡¡Ê²Ã´ÊÇshell
¡¡¡¡LinuxϵͳµÄshell×÷Ϊ²Ù×÷ϵͳµÄÍâ¿Ç£¬ÎªÓû§Ìá
¹©Ê¹ÓòÙ×÷ϵͳµÄ½Ó¿Ú¡£ËüÊÇÃüÁîÓïÑÔ¡¢ÃüÁî½âÊͳÌÐò¼°³ÌÐòÉè¼ÆÓïÑÔµÄͳ³Æ¡£
¡¡¡¡she ......
1. Sed¼ò½é
sed ÊÇÒ»ÖÖÔÚÏß±à¼Æ÷£¬ËüÒ»´Î´¦ÀíÒ»ÐÐÄÚÈÝ¡£´¦Àíʱ£¬°Ñµ±Ç°´¦ÀíµÄÐд洢ÔÚÁÙʱ»º³åÇøÖУ¬³ÆÎª“ģʽ¿Õ¼ä”£¨pattern
space£©£¬½Ó×ÅÓÃsedÃüÁî´¦Àí»º³åÇøÖеÄÄÚÈÝ£¬´¦ÀíÍê³Éºó£¬°Ñ»º³åÇøµÄÄÚÈÝËÍÍùÆÁÄ»¡£½Ó×Å´¦ÀíÏÂÒ»ÐУ¬ÕâÑù
1. Sed¼ò½é
sed ÊÇÒ»ÖÖÔÚÏß±à¼Æ÷£¬ËüÒ»´Î´¦ÀíÒ»ÐÐÄÚÈÝ¡£´¦Àíʱ£¬°Ñµ± ......