ÔÚLinuxÉÏÕÒ³ö²¢½â¾ö³ÌÐò´íÎóµÄÖ÷Òª·½·¨
À´Ô´£ºhttp://www.y768.com/content/view/5755/109/
Steve Best£¨sbest@us.ibm.com£©
JFS ºËÐÄС×é³ÉÔ±£¬IBM
2002 Äê 8 ÔÂ
Äú¿ÉÒÔÓø÷ÖÖ·½·¨À´¼à¿ØÔËÐÐ×ŵÄÓû§¿Õ¼ä³ÌÐò£º¿ÉÒÔΪÆäÔËÐе÷ÊÔÆ÷²¢µ¥²½µ÷ÊԸóÌÐò£¬Ìí¼Ó´òÓ¡Óï¾ä£¬»òÕßÌí¼Ó¹¤¾ßÀ´·ÖÎö³ÌÐò¡£±¾ÎÄÃèÊöÁ˼¸ÖÖ¿ÉÒÔÓÃÀ´µ÷ÊÔÔÚ Linux ÉÏÔËÐеijÌÐòµÄ·½·¨¡£ÎÒÃǽ«»Ø¹ËËÄÖÖµ÷ÊÔÎÊÌâµÄÇé¿ö£¬ÕâЩÎÊÌâ°üÀ¨¶Î´íÎó£¬ÄÚ´æÒç³öºÍй©£¬»¹ÓÐ¹ÒÆð¡£
±¾ÎÄÌÖÂÛÁËËÄÖÖµ÷ÊÔ Linux ³ÌÐòµÄÇé¿ö¡£ÔÚµÚ 1 ÖÖÇé¿öÖУ¬ÎÒÃÇʹÓÃÁËÁ½¸öÓÐÄÚ´æ·ÖÅäÎÊÌâµÄÑù±¾³ÌÐò£¬Ê¹Óà MEMWATCH ºÍ Yet Another Malloc Debugger£¨YAMD£©¹¤¾ßÀ´µ÷ÊÔËüÃÇ¡£ÔÚµÚ 2 ÖÖÇé¿öÖУ¬ÎÒÃÇʹÓÃÁË Linux ÖÐµÄ strace ʵÓóÌÐò£¬ËüÄܹ»¸ú×Ùϵͳµ÷ÓúÍÐźţ¬´Ó¶øÕÒ³ö³ÌÐò·¢Éú´íÎóµÄµØ·½¡£ÔÚµÚ 3 ÖÖÇé¿öÖУ¬ÎÒÃÇʹÓà Linux ÄÚºËµÄ Oops ¹¦ÄÜÀ´½â¾ö³ÌÐòµÄ¶Î´íÎ󣬲¢ÏòÄúչʾÈçºÎÉèÖÃÄÚºËÔ´´úÂë¼¶µ÷ÊÔÆ÷£¨kernel source level debugger£¬kgdb£©£¬ÒÔʹÓà GNU µ÷ÊÔÆ÷£¨GNU debugger£¬gdb£©À´½â¾öÏàͬµÄÎÊÌ⣻kgdb ³ÌÐòÊÇʹÓô®ÐÐÁ¬½ÓµÄ Linux ÄÚºËÔ¶³Ì gdb¡£ÔÚµÚ 4 ÖÖÇé¿öÖУ¬ÎÒÃÇʹÓà Linux ÉÏÌṩµÄħÊõ¼ü¿ØË³Ðò£¨magic key sequence£©À´ÏÔʾÒý·¢¹ÒÆðÎÊÌâµÄ×é¼þµÄÐÅÏ¢¡£
³£¼ûµ÷ÊÔ·½·¨
µ±ÄúµÄ³ÌÐòÖаüº¬´íÎóʱ£¬ºÜ¿ÉÄÜÔÚ´úÂëÖÐij´¦ÓÐÒ»¸öÌõ¼þ£¬ÄúÈÏΪËüÎªÕæ£¨true£©£¬µ«Êµ¼ÊÉÏÊǼ٣¨false£©¡£ÕÒ³ö´íÎóµÄ¹ý³ÌÒ²¾ÍÊÇÔÚÕÒ³ö´íÎóºóÍÆ·ÒÔǰһֱȷÐÅÎªÕæµÄij¸öÌõ¼þ¹ý³Ì¡£
ÒÔϼ¸¸öʾÀýÊÇÄú¿ÉÄÜÈ·ÐųÉÁ¢µÄÌõ¼þµÄһЩÀàÐÍ£º
ÔÚÔ´´úÂëÖеÄij´¦£¬Ä³±äÁ¿ÓÐÌØ¶¨µÄÖµ¡£
ÔÚ¸ø¶¨µÄµØ·½£¬Ä³¸ö½á¹¹Òѱ»ÕýÈ·ÉèÖá£
¶ÔÓÚ¸ø¶¨µÄ if-then-else Óï¾ä£¬if ²¿·Ö¾ÍÊDZ»Ö´ÐеÄ·¾¶¡£
µ±×ÓÀý³Ì±»µ÷ÓÃʱ£¬¸ÃÀý³ÌÕýÈ·µØ½ÓÊÕµ½ÁËËüµÄ²ÎÊý¡£
ÕÒ³ö´íÎóÒ²¾ÍÊÇҪȷ¶¨ÉÏÊöËùÓÐÇé¿öÊÇ·ñ´æÔÚ¡£Èç¹ûÄúÈ·ÐÅÔÚ×ÓÀý³Ì±»µ÷ÓÃʱij±äÁ¿Ó¦¸ÃÓÐÌØ¶¨µÄÖµ£¬ÄÇô¾Í¼ì²éÒ»ÏÂÇé¿öÊÇ·ñÈç´Ë¡£Èç¹ûÄúÏàÐÅ if ½á¹¹»á±»Ö´ÐУ¬ÄÇôҲ¼ì²éÒ»ÏÂÇé¿öÊÇ·ñÈç´Ë¡£Í¨³££¬ÄúµÄ¼ÙÉè¶¼»áÊÇÕýÈ·µÄ£¬µ«×îÖÕÄú»áÕÒµ½Óë¼ÙÉè²»·ûµÄÇé¿ö¡£½á¹û£¬Äú¾Í»áÕÒ³ö·¢Éú´íÎóµÄµØ·½¡£
µ÷ÊÔÊÇÄúÎÞ·¨ÌӱܵÄÈÎÎñ¡£½øÐе÷ÊÔÓкܶàÖÖ·½·¨£¬±ÈÈ罫ÏûÏ¢´òÓ¡µ½ÆÁÄ»ÉÏ¡¢Ê¹Óõ÷ÊÔÆ÷£¬»òÖ»ÊÇ¿¼ÂdzÌÐòÖ´ÐеÄÇé¿ö²¢×ÐϸµØ´§Ä¦ÎÊÌâËùÔÚ¡£
ÔÚÐÞÕýÎÊÌâ֮ǰ£¬Äú±ØÐëÕÒ³öËüµÄÔ´Í·¡£¾ÙÀýÀ´Ëµ£¬¶ÔÓڶδíÎó£¬ÄúÐèÒªÁ˽â¶Î´íÎó·¢ÉúÔÚ´úÂëµÄÄÄÒ»ÐС£Ò»µ©Äú·¢ÏÖÁË´úÂëÖгö´íµÄÐУ¬ÇëÈ·¶¨¸Ã·½·¨ÖбäÁ¿µÄÖµ¡¢·½·¨±»µ÷Óõķ½Ê½ÒÔ¼°¹ØÓÚ´íÎóÈçºÎ·¢ÉúµÄÏêϸÇé¿ö
Ïà¹ØÎĵµ£º
Ò»¡¢ÒýÑÔ
UDPÊÇTCP/IPÐÒéÖеĴ«Êä²ãÐÒéµÄÒ»ÖÖ£¬±¾ÎĽéÉÜÁËÔÚLinuxϱàд»ùÓÚUDPÐÒéµÄClient/ServerÄ£Ð͵ijÌÐòµÄ·½·¨£¬²¢¸ø³öÁËÒ»¸öecho Client/ServerÀý×Ó³ÌÐò¡£
¶þ¡¢UDPÐÒé¼ò½é
UDPÊÇÒ»ÖÖ¼òµ¥ ......
½øÈëviµÄÃüÁî
vi filename :´ò¿ª»òн¨Îļþ£¬²¢½«¹â±êÖÃÓÚµÚÒ»ÐÐÊ×
vi +n filename £º´ò¿ªÎļþ£¬²¢½«¹â±êÖÃÓÚµÚnÐÐÊ×
vi + filename £º´ò¿ªÎļþ£¬²¢½«¹â±êÖÃÓÚ×îºóÒ»ÐÐÊ×
vi +/pattern filename£º´ò¿ªÎļþ£¬²¢½«¹â±êÖÃÓÚµÚÒ»¸öÓëpatternÆ¥ÅäµÄ´®´¦
vi -r filename £ºÔÚÉÏ´ÎÕýÓÃvi±à¼Ê±·¢Éúϵͳ±ÀÀ££¬»Ö¸´filen ......
ÄãÊÇ·ñÏë½øÈëǶÈëʽ¸ßнÁìÓò£¬È´¸Ð¾õÎÞ´ÓÏÂÊÖ£¿
ÄãÊÇ·ñÔÚ¿´Êé¡¢²é×ÊÁÏ¡¢ÂÛ̳ÌáÎÊÖлºÂý¶ø³ÔÁ¦µÄǰÐУ¿
ʱ¼ä±ãÊdzɱ¾£¡Ñ§Ï°µÄ·ÉÏ£¬ÎÒÃǸüÐèҪר¼ÒϵͳµÄÖ¸Òý£¬ÕâÑù»áʰ빦±¶£¡
»ªÇåÔ¶¼û—ǶÈëʽLinuxÈëÃÅʵսÃâ·ÑÌåÑéÈÕ£¬Ò»ÌìµÄʱ¼ä£¬½â¾öÄúµÄ·³ÄÕ£¬¾ø¶Ô³¬ÖµµÄ»Ø±¨£¡
ÓÅÊÆ/ÌØÉ«£º
¡ñ ÄÚÈÝ£¬´«ÊÚ×îϵͳ£¬×îʵÓÃµÄ ......
±¾ÎĽéÉÜÔÚGNU/Linux»·¾³ÏÂÒ»¸öC³ÌÐòÓÉÔ´´úÂëµ½³ÌÐò£¬µ½¼ÓÔØÔËÐУ¬×îºóÖÕÖ¹µÄ¹ý³Ì¡£Í¬Ê±ÒԴ˹ý³ÌÎªÔØÌ壬½éÉÜGNU/Linuxƽ̨ÏÂÈí¼þ¿ª·¢¹¤¾ßµÄʹÓá£
±¾ÎÄÒÔÎÒÃÇ×î³£¼ûµÄhello, world!ΪÀý£º
#include <stdio.h>
main ()
{
printf(“hello, world!\n” ......
ʲôÊÇϵͳµ÷ÓÃ
¹ËÃû˼Ò⣬ϵͳµ÷ÓÃ˵µÄÊDzÙ×÷ϵͳÌṩ¸øÓû§³ÌÐòµ÷ÓõÄÒ»×é“ÌØÊ┽ӿڡ£Óû§³ÌÐò¿ÉÒÔͨ¹ýÕâ×é“ÌØÊ┽ӿÚÀ´»ñµÃ²Ù×÷ϵͳÄÚºËÌṩµÄ·þÎñ£¬±ÈÈçÓû§¿ÉÒÔͨ¹ýÎļþϵͳÏà¹ØµÄµ÷ÓÃÇëÇóϵͳ´ò¿ªÎļþ¡¢¹Ø±ÕÎļþ»ò¶ÁдÎļþ£¬¿ÉÒÔͨ¹ýʱÖÓÏà¹ØµÄϵͳµ÷ÓûñµÃϵͳʱ¼ä»òÉèÖÃÏµÍ ......