¸®´ª½º ¹®Á¦ ºÐ¼®°ú ÇØ°á

¾Æ¹«µµ °¡¸£ÃÄÁÖÁö ¾Ê¾Ò´ø ¸®´ª½º ½ÇÀü ³ëÇÏ¿ì

¿ø¼­¸í : Self-Service Linux: Mastering the Art of Problem Determination
Mark Wilding, Dan Behman ÁöÀ½
¹ÚÀçÈ£, ÀÌÇØ¿µ ¿Å±è

¿ÀǼҽº ÇÁ·Î±×·¡¹Ö ½Ã¸®Áî
ISBN : 8989975999
28,000¿ø | 2006³â 9¿ù 28ÀÏ Æì³¿
ÆäÀÌÆÛ¹é | 472ÂÊ | 190*250mm
Ã¥ ¼Ò°³
¸ðµç ¸®´ª½º °ü¸®ÀÚ, °³¹ßÀÚ, Áö¿ø ºÎ¼­, °í±Þ »ç¿ëÀÚ¸¦ ±«·ÓÇô¿Ô´ø ºÒ°¡°áÀÇ ¹®Á¦ ÇØ°á ±æÀâÀ̰¡ µåµð¾î Ãâ°£µÇ¾ú´Ù. ¿À·ù, ºñÁ¤»ó Á¾·á, Á¤Áö, ¼º´É ÀúÇÏ, ±â´ëÇÏÁö ¾ÊÀº Çൿ ¾ç½Ä, ±â´ëÇÏÁö ¾ÊÀº °á°ú¸¦ ½Ã½ºÅÛÀûÀ¸·Î ÆÄÇìÄ¡¸ç, strace, gdb, kdb, SysRq, /proc µî ÇÙ½ÉÀûÀÎ ¸®´ª½º ¹®Á¦ ÇØ°á µµ±¸¿¡ Åë´ÞÇÏ´Â ¹æ¹ýÀ» ¾Ë·ÁÁØ´Ù.


[ ÀÌ Ã¥ÀÇ Æ¯Â¡ ]

µåµð¾î ¸ðµç °í±Þ »ç¿ëÀÚ, °ü¸®ÀÚ, °³¹ßÀÚ¸¦ À§ÇÑ ±¸Á¶ÀûÀÌ¸ç ½ÇÁúÀûÀÎ ¸®´ª½º ¹®Á¦ ÇØ°á»ç°¡ µîÀåÇß´Ù. IBMÀÇ ¼±µµ ¸®´ª½º Àü¹®°¡ µÎ ¸íÀº ÀÌ Ã¥¿¡¼­ ¿À·ù, ºñÁ¤»ó Á¾·á, Á¤Áö, ¼º´É ÀúÇÏ, ±â´ëÇÏÁö ¾ÊÀº Çൿ ¾ç½Ä, ±â´ëÇÏÁö ¾ÊÀº °á°ú¿Í °°Àº ¸ðµç À¯ÇüÀÇ ¸®´ª½º °ü·Ã ½Ã½ºÅÛÀ̳ª ÀÀ¿ëÇÁ·Î±×·¥ ¹®Á¦¸¦ ã¾Æ¼­ ÇØ°áÇϱâ À§ÇÑ ³× ´Ü°è ¹æ¹ý·ÐÀ» ¼Ò°³ÇÑ´Ù. ¸®´ª½ºÀÇ ÇÙ½É ¹®Á¦ÇØ°á µµ±¸¸¦ »ç¿ëÇØ¼­ Á¤È®ÇÏ°Ô ¹®Á¦¸¦ ¼Õ¼ö ÇØ°áÇÏ¸ç ¸®´ª½º °øµ¿Ã¼¿¡ ÆÛÁ®ÀÖ´Â Áö½ÄÀ» È¿°úÀûÀ¸·Î Ȱ¿ëÇÏ´Â ¹æ¹ýÀ» ¹è¿öº¸ÀÚ.

¸®´ª½º¸¦ ¾÷¹«¿¡¼­ Ȱ¿ëÇÏ´Â »ç¶÷À̶ó¸é, ÀÌ Ã¥Àº È¿À²¼º, »ý»ê¼º, ½ÃÀ强À» ³î¶ö ¸¸Å­ ³ô¿©ÁÙ ¼ö ÀÖ´Ù. ȸ»ç¿¡¼­ ¸®´ª½º¸¦ ¹èÆ÷Çϰųª °ü¸®ÇÏ´Â ¾÷¹«¸¦ ¸Ã°í ÀÖ´Ù¸é, ÀÌ Ã¥Àº ¿î¿µ ºñ¿ëÀ» Àý°¨Çϰí, Áß´Ü ½Ã°£À» ÁÙÀ̰í, ROI¸¦ ³ôÀÌ´Â °úÁ¤¿¡¼­ µµ¿òÀ» ÁØ´Ù.

¢Æ ¸®´ª½º ȯ°æ¿¡¼­ ¹®Á¦¸¦ ÆÄ¾ÇÇÏ´Â Áõ¸íµÈ ¿ì¼ö ±â¹ýÀ» ã´Â´Ù
¢Æ ´Ù¸¥ Ç÷§Æû¿¡¼­ ½ÀµæÇÑ ¹®Á¦ ÇØ°á Áö½ÄÀ» Áö·¿´ë·Î »ï´Â´Ù
¢Æ ¸®´ª½º ¹®Á¦ ÇØ°á µµ±¸ Áß¿¡¼­ °¡Àå ³Î¸® »ç¿ëÇÏ´Â strace·Î ¹®Á¦¸¦ ã´Â ¹æ¹ýÀ» ¹è¿î´Ù
¢Æ /procÀ» Ȱ¿ëÇØ¼­ Çϵå¿þ¾î, Ä¿³Î, ÇÁ·Î¼¼½º¿¡ ¾ôÈù Áß¿äÇÑ Á¤º¸¸¦ ã¾Æ³½´Ù
¢Æ ¿ÀÇ ¼Ò½º ÀÀ¿ë ÇÁ·Î±×·¥¿¡ µð¹ö±× Á¤º¸¸¦ ºÙ¿©¼­ »õ·Î ÄÄÆÄÀÏÇÑ´Ù
¢Æ C++¿Í ½º·¹µå ÀÀ¿ë ÇÁ·Î±×·¥À» Æ÷ÇÔÇÏ¿© gdb·Î ÀÀ¿ë ÇÁ·Î±×·¥À» µð¹ö±×ÇÑ´Ù
¢Æ Ä¿³Î ºñÁ¤»ó Á¾·á¿Í Á¤Áö¸¦ Çѹø¿¡ ÇÑ ´Ü°è¾¿ µð¹ö±ëÇÑ´Ù
¢Æ ELF¸¦ ÀÌÇØÇÏ°í ´õ È¿À²ÀûÀÎ µð¹ö±ë °úÁ¤¿¡ ÀÌ Áö½ÄÀ» Ȱ¿ëÇÑ´Ù
¢Æ Áß¿äÇÑ ÀÓ¹«¿¡ ÅõÀÔÇÑ ¸®´ª½º ½Ã½ºÅÛÀ» µð¹ö±ëÇÏ´Â °úÁ¤¿¡¼­ ¸î ½Ã°£À̳ª ¸çÄ¥À» Àý¾àÇϵµ·Ï »ó¿ë ȯ°æ¿¡ ¹Ù·Î ÅõÀÔ °¡´ÉÇÑ ÀÚ·á ¼öÁý ½ºÅ©¸³Æ®¸¦ Á¦°øÇÑ´Ù


[ ÀÌ Ã¥ÀÇ ±¸¼º ]

ÀÌ Ã¥Àº ¸®´ª½º ȯ°æ¿¡¼­ ¹ß»ýÇÏ´Â ¹®Á¦¸¦ È¿°úÀûÀ̸鼭µµ È¿À²ÀûÀ¸·Î Áø´ÜÇÏ´Â ¹æ¹ýÀ» ´Ù·é´Ù. ÀÎÅÍ³Ý »ó¿¡ ÀÖ´Â Á¤º¸¿Í ÀÚ¿øÀ» Ȱ¿ëÇÏ´Â ¹æ¹ý µî ¿ì¼öÇÑ Á¶»ç ±â¹ýÀ» ¼Ò°³Çϰí, ¸®´ª½º°¡ Á¦°øÇÏ´Â °¡Àå Áß¿äÇÑ ¹®Á¦ Áø´Ü ºÐ¼®°ú ÇØ°á µµ±¸ÀÇ »ç¿ë¹ýÀ» »ó¼¼È÷ ´Ù·é´Ù.

1ÀåÀº È¿°úÀûÀÎ ¹®Á¦ Áø´Ü ºÐ¼®°ú ÇØ°á ±â¹ýÀ» ´Ù·ç´Â ÁýÁß °­ÁÂÀÌ´Ù. ÀÌ ÀåÀ» ÀÍÈ÷°í ³ª¸é Àü¹®°¡Ã³·³ ¹®Á¦¸¦ Áø´ÜÇÒ ¼ö ÀÖ´Ù. ÈçÈ÷ ¹ß»ýÇÏ´Â ¹®Á¦ À¯ÇüÀ» Á¶»çÇÏ´Â ¹æ¹ý°ú ´õºÒ¾î, ÀÎÅÍ³Ý ¾îµð¿¡¼­ ¾î¶»°Ô Á¤º¸¸¦ ã¾Æ¾ß ÇÏ´ÂÁö¸¦ ¼³¸íÇÑ´Ù.

2ÀåÀº ¸®´ª½º¿¡¼­ ¹®Á¦ Áø´Ü ºÐ¼®°ú ÇØ°á °úÁ¤¿¡ °¡Àå ÈçÈ÷ »ç¿ëÇÏ´Â µµ±¸ÀÎ strace¸¦ ´Ù·é´Ù. 2Àå¿¡¼­´Â strace°¡ µ¿ÀÛÇÏ´Â ¹æ½ÄÀ» »ó¼¼È÷ ¼Ò°³ÇÒ »Ó¸¸ ¾Æ´Ï¶ó ½Ç¿ëÀûÀÎ »ç¿ë¹ý Á¤º¸µµ ´Ù·é´Ù. ¶ÇÇÑ °£´ÜÇÑ strace µµ±¸ÀÇ ¼Ò½ºÄڵ带 ¼Ò°³Çϸç, ±â¹Ý ±â´ÉÀÎ ptrace ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ Ä¿³Î°ú µ¿ÀÛÇÏ´Â ¹æ½ÄÀ» »ó¼¼È÷ ¼³¸íÇÑ´Ù.

3ÀåÀº ÇöÀç ½Ã½ºÅÛ¿¡¼­ ½ÇÇà ÁßÀÎ Çϵå¿þ¾î, Ä¿³Î, ÇÁ·Î¼¼½º¿¡ °ü·ÃÇÏ¿© ¹æ´ëÇÑ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â /proc ÆÄÀÏ ½Ã½ºÅÛ¿¡ °üÇÑ ³»¿ëÀÌ´Ù. ÁÖ·Î ¹®Á¦ Áø´Ü ºÐ¼®°ú ÇØ°áÀ» ºñ·ÔÇÏ¿© ½Ã½ºÅÛ Áø´Ü¿¡ °ü·ÃÇÑ °í±Þ ±â´É°ú ±â±³¸¦ ¼Ò°³ÇÏ°í »ìÆìº»´Ù. ¿¹¸¦ µé¾î, /proc/sys/kernel/sysrq·Î SysRq Ä¿³Î ¸¶¹ý ۸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ´Ù·é´Ù.

4ÀåÀº ÄÄÆÄÀÏÀ» ´Ù·é´Ù. µð¹ö±ë Á¤º¸¸¦ Æ÷ÇÔÇϵµ·Ï ¿ÀÇ ¼Ò½º ÀÀ¿ë ÇÁ·Î±×·¥À» ´Ù½Ã ÄÄÆÄÀÏÇØ¾ß ÇÒÁö(´ë°³´Â ´Ù½Ã ÄÄÆÄÀÏÇØ¾ß ÇÑ´Ù), ¾î·Á¿î ¹®Á¦ÀÏ °æ¿ì ¾î¼Àºí¸® ÄÚµå ¸ñ·ÏÀ» »ý¼ºÇØ¾ß ÇÒÁö(ÀÌ ¹æ¹ýÀ¸·Î Æ®·¦ÀÌ °É¸° ÄÚµå ÇàÀ» ã´Â´Ù), ¸®´ª½º Ä¿³Î ÀÚü¸¦ ´Ù½Ã ÄÄÆÄÀÏÇÏ´Â °úÁ¤¿¡¼­ ¾î¶² ¹®Á¦°¡ ¹ß»ýÇÏ´ÂÁö µî¿¡ °üÇØ ±ä¿äÇÑ Á¤º¸¸¦ Á¦°øÇÑ´Ù.

5ÀåÀº ÄÄÇ»ÅÍ ½Ã½ºÅÛ¿¡¼­ °¡Àå Áß¿äÇÏ°íµµ ±âº»ÀûÀÎ °³³ä Áß ÇϳªÀÎ ½ºÅÃÀ» ¼Ó¼ÓµéÀÌ »ìÆìº»´Ù. (¸®´ª½º Àü¹®°¡¶ó¸é ¹Ýµå½Ã ¾Ë¾Æ¾ß ÇÒ) ½ºÅà ±¸Á¶Ã¼¸¦ »ó¼¼È÷ ¼³¸íÇϸç, ¶ÇÇÑ µ¶ÀÚ°¡ ÀÚ½ÅÀÇ µµ±¸¿Í ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ ½ºÅà ÃßÀûÀ» »ý¼ºÇϱâ À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Â ¼Ò½º Äڵ带 ¼Ò°³ÇÏ°í ¼³¸íÇÑ´Ù.

6ÀåÀº GNU µð¹ö°ÅÀÎ GDB·Î ÀÀ¿ë ÇÁ·Î±×·¥À» µð¹ö±ëÇÏ´Â ¹æ¹ýÀ» »ó¼¼ÇÏ°íµµ ½Éµµ ÀÖ°Ô »ìÆìº»´Ù. ¶ÇÇÑ ±×·¡ÇÈ À¯Àú ÀÎÅÍÆäÀ̽ºÀÎ DDD(Data Display Debugger)µµ °£·«ÇÏ°Ô ¼Ò°³ÇÑ´Ù. ¶ÇÇÑ C++ ÀÀ¿ë ÇÁ·Î±×·¥ µð¹ö±ë, ½º·¹µå ÀÀ¿ë ÇÁ·Î±×·¥ µð¹ö±ë, ´Ù¾çÇÑ ÃÖ°í µð¹ö±ë ±â¹ý µî ÈçÈ÷ Á¢Çϱ⠾î·Á¿î Á¤º¸¸¦ »ó¼¼È÷ ´Ù·é´Ù.

7ÀåÀº ½Ã½ºÅÛ Ãæµ¹°ú Áß´ÜÀ» »ó¼¼È÷ »ìÆìº»´Ù. ¡®Á÷·Ä ÄܼÖÀ» ¿¬°áÇÏ´Â ¹æ¹ý¡¯ºÎÅÍ ¡®Ä¿³Î Æ®·¦(¡°¿ó½º Oops¡±)À» »ç¿ëÇÏ¿© ÄÚµå ÇàÀ» ã´Â ¹æ¹ý¡¯±îÁö ÇÊ¿äÇÑ ³»¿ëÀ» ´Ù·é´Ù.

8ÀåÀº Ä¿³Î µð¹ö±ë, Áï Ä¿³Î µð¹ö°Å kdb¸¦ »ç¿ëÇÑ µð¹ö±ëÀ» Á»´õ »ó¼¼È÷ ´Ù·é´Ù. ½Ã½ºÅÛ¿¡¼­ kdb¸¦ ȯ°æ ¼³Á¤Çϰí Ȱ¼ºÈ­ÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇϸç, Ä¿³Î Àü¹®°¡°¡ µÇÁö ¾Ê°íµµ ´ë´Ù¼ö ¸®´ª½º »ç¿ëÀÚ°¡ Ȱ¿ëÇÒ ¼ö ÀÖ´Â ½Ç¿ëÀûÀÎ ¸í·ÉÀ» ¼Ò°³ÇÑ´Ù.

9ÀåÀº ELF(Executable and Linking Format)¸¦ »ó¼¼ÇÏ°Ô ÆÄÇìÄ£´Ù. ±âº»ÀûÀÎ ELF ÆÄÀÏ Çü½Ä¿¡ °üÇØ ÀÚ¼¼ÇÏ°íµµ ½Ç¿ëÀûÀÎ Á¤º¸¸¦ Á¦°øÇϸç, ±Ø¼Ò¼ö °³¹ßÀÚ¸¸ÀÌ ¾Ë°í ÀÖ´Â ºñ°á°ú ±â±³¸¦ ¼Ò°³ÇÑ´Ù. ½ÉÁö¾î LD_PRELOAD(À¸)·Î ÇÔ¼ö¸¦ ÀçÁ¤ÀÇÇÏ´Â ¹ý, GOT(global offset table)¿Í GDB µð¹ö°Å·Î ÇÔ¼ö¸¦ Á÷Á¢ °¡·Îä¼­ µð¹ö±× ¹öÀüÀ¸·Î º¸³»´Â ¹ý µîÀ» ¿¹Á¦ ÄÚµå¿Í ´õºÒ¾î ´Ü°èº°·Î ¼³¸íÇÑ´Ù.

ºÎ·Ï A´Â ¸®´ª½º¿¡¼­ °¡Àå À¯¿ëÇÑ µµ±¸, ±â´É, ÆÄÀÏÀ» °³°ýÀûÀ¸·Î ¼Ò°³ÇÏ´Â µð¹ö±ë µµ±¸ »óÀÚÀÌ´Ù. °¢ µµ±¸¸¶´Ù ¾ðÁ¦ »ç¿ëÇϸé ÁÁÀºÁö ±×¸®°í ¾îµð¼­ ÃֽйöÀüÀ» ¾òÀ» ¼ö ÀÖ´ÂÁö¸¦ ¼³¸íÇϰí ÀÖ´Ù.

ºÎ·Ï B´Â °ð¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ÀÚ·á ¼öÁý ½ºÅ©¸³Æ®¸¦ Á¦°øÇÑ´Ù. ÁÖ¿ä ÇÙ½É ¾÷¹«¸¦ ´Ù·ç´Â ½Ã½ºÅÛÀ̳ª ¸®´ª½º »ó¿¡¼­ ¿ø°ÝÀ¸·Î °í°´À» Áö¿øÇÏ´Â »ç¿ëÀÚ¿¡°Ô ƯÈ÷ À¯¿ëÇÏ´Ù. ÀÚ·á ¼öÁý ½ºÅ©¸³Æ®¸¸ À־, ¿ø°Ý¿¡¼­ ¹ß»ýÇÑ ¹®Á¦¸¦ µð¹ö±ëÇÏ´Â µ¥ µå´Â ½Ã°£À» Å©°Ô ÁÙÀÏ ¼ö ÀÖ´Ù.


[ ÀÌ Ã¥ÀÇ ´ë»ó ]

ÀÌ Ã¥Àº ¸ðµç ¸®´ª½º »ç¿ëÀÚ¿¡°Ô À¯¿ëÇÑ Á¤º¸¸¦ Á¦°øÇÏÁö¸¸, ƯÈ÷ ¸®´ª½º Àü¹®°¡¸¦ ¿°µÎ¿¡ µÎ°í ÀÖ´Ù. ¿©±â¿¡´Â ¸®´ª½º °í±Þ »ç¿ëÀÚ, ¸®´ª½º °ü¸®ÀÚ, ¸®´ª½º¿ë ¼ÒÇÁÆ®¿þ¾î °³¹ßÀÚ, ¸®´ª½º Á¦Ç° Áö¿ø Àη µîÀÌ Æ÷ÇԵȴÙ. °¡Á¤¿¡¼­ Àç¹Ì»ï¾Æ ¸®´ª½º¸¦ »ç¿ëÇÏ´Â µ¶ÀÚ¿¡°Ôµµ µµ¿òÀÌ µÈ´Ù. ¹°·Ð ¸®´ª½º¿¡ ´ëÇÑ ±âº»ÀûÀÎ ÀÌÇØ°¡ Àְųª Àû¾îµµ ¹è¿ì·Á´Â ÀÇÁö°¡ ÀÖ¾î¾ß ÇÑ´Ù. ¿©±â¼­ ÈÄÀÚ°¡ ´õ Áß¿äÇÏ´Ù.