· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
User Mode Linux

User Mode Linux HOWTO


ÀÛ¼º : User Mode Linux Core Team

2005.1.15 (Åä) 00:52:30 EDT

¹ø¿ª : ±è³²Çü

2005.9.8 (¸ñ) 12:04:00 KST


ÀÌ ¹®¼­´Â Jeff Dike ÀÇ User Mode Linux ÀÇ »ç¿ë¹ýÀ» ¼³¸íÇÑ´Ù: User Mode Linux ¶õ ¸®´ª½º Ä¿³ÎÀ» ÀÏ¹Ý ¸®´ª½º ÇÁ·Î¼¼½ºÃ³·³ Æ÷ÆÃÇÑ °ÍÀÌ´Ù.



1. ¼Ò°³

User Mode Linux ¿¡ ¿Â°ÍÀ» ȯ¿µÇÑ´Ù. ¾ÕÀ¸·Î Áñ°Å¿î ÀϵéÀÌ °¡µæÇÒ °ÍÀÌ´Ù..

1.1. User Mode Linux ¶õ ¹«¾ùÀΰ¡?

User Mode Linux ´Â ¸®´ª½º³»¿¡¼­ ¸®´ª½º¸¦ ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â °ÍÀÌ´Ù! À̷νá ÀüÇô »õ·Î¿î °ÍµéÀ» ½ÇÇèÇØ º¼ ¼ö ÀÖ´Â ÈûÀ» °®°Ô µÈ´Ù. User Mode Linux ´Â ¸®´ª½º¸¦ °¡»óÈ­Çؼ­ (ȤÀº - ÀϺΠ»ç¶÷µéÀÌ ¸»ÇÏ´Â °Íó·³ - ½Ã¹Ä·¹ÀÌÆ®Çؼ­) ¸®´ª½º Àüü¸¦ ±×Àú º¸Åë ÇÁ·Î¼¼½º¸¦ ½ÇÇà½ÃÅ°´Â °Íó·³ ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù.

ÀÌ¹Ì ÀÌ¿Í ºñ½ÁÇÑ ±â´ÉÀ» µé¾îº¸¾ÒÀ» Áöµµ ¸ð¸¥´Ù. µ¿ÀÏÇÑ (ȤÀº ¼­·Î ´Ù¸¥) ¿î¿µÃ¼Á¦¸¦ Áßø (nest) Çϱâ À§ÇÑ ÇÁ·ÎÁ§Æ®°¡ ¸î°¡Áö ÀÖ´Ù: Linux on Linux, Windows on Linux, Linux on Windows, Linux/s390 on Linux/anythingelse µîµî. ȤÀº ±×³É x86 on anything, Áï 'x86' ÇÁ·Î±×·¥ (¿ªÁÖ: ¾Æ¸¶µµ Bochs³ª QEMU°°Àº ÇÁ·Î¼¼¼­ ¿¡¹Ä·¹ÀÌ¼Ç ÇÁ·ÎÁ§Æ®) ÀÌ ¸®´ª½º µîÀÇ ¿î¿µÃ¼Á¦¸¦ ºÎÆà Çϵµ·Ï ¸¸µç ÇÁ·ÎÁ§Æ®µµ ÀÖ´Ù.

x86°ú °ü·ÃµÈ ºÎºÐ¿¡ ¼ö ¸¹Àº ³ë·ÂÀÌ ÁýÁߵǾú´Ù. ÀÌ HOWTO ¹®¼­ÀÇ ¸¶Áö¸· ºÎºÐ¿¡¼­ ´ë¾È (alternative) ÇÁ·ÎÁ§Æ®µéÀÇ ¸®½ºÆ®¸¦ º¸°Ô µÉ °ÍÀÌ´Ù. ¸¸¾à ´ç½ÅÀÇ ¸ñÀûÀÌ ´ÜÁö x86 ¸®´ª½º »ó¿¡ ¶Ç´Ù¸¥ x86 ¸®´ª½º¸¦ °ÅÀÇ ¼Õº¸Áö ¾Ê°í ÃÖ´ëÇÑ »¡¸® ½ÇÇàÇÏ´Â °ÍÀ̶ó¸é ¾Æ¸¶µµ UML (User Mode Linux) º¸´Ù´Â ÀÌ·± ÇÁ·ÎÁ§Æ®µé Áß Çϳª°¡ ´õ ³ªÀ» °ÍÀÌ´Ù.

1.2. User Mode Linux ´Â ¹«¾ùÀÌ ´Ù¸¥°¡?

User Mode Linux (UML) Àº ´Ù¸¥ ¸ðµç (»ó¿ëÀÌµç ¹«·áÀ̵ç) ¸®´ª½º °¡»óÈ­ ÇÁ·ÎÁ§Æ®¿Í´Â ´Ù¸£´Ù. UML Àº °¡´ÉÇÑÇÑ ÀÚ½ÅÀ» ÀϹÝÀûÀÎ ÇÁ·Î±×·¥°ú µ¿ÀÏÇÏ°Ô Ç¥ÇöÇϵµ·Ï ³ë·ÂÇÑ´Ù. ´ÙÀ½Àº ±×·¯ÇÑ Ã¶ÇÐÇÏ¿¡ ÀÌ·ç¾îÁø °á°úµéÀ» º¸¿©ÁØ´Ù:

  1. Good speed with few compromises. UML Àº È£½ºÆ® ¸Ó½Å¿¡¼­ ½ÇÇàµÇ´Â ´Ù¸¥ ÄÄÆÄÀÏµÈ ÇÁ·Î±×·¥Ã³·³ µ¿ÀÛÇϱâ À§ÇØ native machine code ¸¦ µû¸¥´Ù. ±×·¯¹Ç·Î ¼ÒÇÁÆ®¿þ¾îÀûÀ¸·Î Àüü Çϵå¿þ¾î ¾ÆÅ°ÅØó¸¦ ±¸ÇöÇÑ À̽ļºÀÖ´Â °¡»óÈ­ ¸ðµ¨¿¡ ºñÇØ ÈξÀ ºü¸£°Ô µ¿ÀÛÇÑ´Ù. ¶ÇÇÑ, UML Àº ƯÁ¤ CPU ÀÇ ±â´ÉÀ» »ç¿ëÇÑ °¡»ó ½Ã½ºÅÛ°ú ´Þ¸® ±Ø½ÉÇÑ Çϵå¿þ¾î ÀÇÁ¸¼º¿¡ ±¸¾Ö¹ÞÁö ¾Ê´Â´Ù. UML ¿¡¼­ ½ÇÇàµÇ´Â ÀÀ¿ë ÇÁ·Î±×·¥Àº ÀϹÝÀûÀ¸·Î È£½ºÆ® ½Ã½ºÅÛ¿¡¼­ ½ÇÇàµÇ´Â °Íº¸´Ù ÃÖ´ë 20% Á¤µµÀÇ Áö¿¬ÀÌ ÀϾÁö¸¸ ÃÖ½ÅÀÇ Çϵå¿þ¾î¿Í È¿À²ÀûÀÎ ½Ã½ºÅÛ µðÀÚÀο¡¼­´Â ÀÌ Á¤µµ´Â ¹«½ÃµÉ ¼ö ÀÖ´Ù.
  2. Futureproof. ¸Å¹ø ¸®´ª½º°¡ °³¼±µÉ¶§¸¶´Ù ¸®´ª½º ¾È¿¡¼­ ½ÇÇàµÇ´Â ÇÁ·Î±×·¥µé¿¡°Ô À̵æÀ» ÁÖ´Â ¹º°¡ »õ·Ó°í ¶È¶ÈÇÑ ±â´ÉµéÀÌ Á¦°øµÇ´Âµ¥, UMLÀº ÀÚµ¿ÀûÀ¸·Î ÀÌ·± À̵æÀ» º»´Ù. ¿¹ÄÁµ¥, ¼ÒÇÁÆ®¿þ¾î ÁßÁö (suspend), SE Linux ¿Í °°Àº Àß ¼¼ºÐÈ­µÈ º¸¾È °ü¸®, »õ·Î¿î ÆÄÀÏ ½Ã½ºÅÛ ±â´É, Å©°í ºü¸¥ Çϵå¿þ¾îÀÇ Áö¿ø µîµî. È£½ºÆ® ÄÄÇ»ÅÍ »óÀÇ ¸¹Àº º¯È­¸¦ ÇÊ¿ä·Î ÇÏ´Â °¡»óÈ­ ½Ã½ºÅÛµéÀº ±×·¸Áö ¸øÇÏ´Ù.
  3. Flexible code. º¸Åë OS ÀÇ Ä¿³ÎÀº.. Ä¿³ÎÀÌ´Ù. ÀÌ°ÍÀº Çϵå¿þ¾î ȤÀº ¸î¸î °¡»óÈ­µÈ Çϵå¿þ¾î¿Í ´ëÈ­ÇÑ´Ù. ÇÏÁö¸¸ UML Àº ´Ù¸¥ ¹æ½ÄÀ¸·Îµµ º¼ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, UML Àº °øÀ¯ ¶óÀ̺귯¸®·Î »ç¿ëµÉ ¼ö ÀÖÀ¸¹Ç·Î ¸®´ª½º¿¡¼­ Àß Ã³¸®ÇÏ´Â ÀÛ¾÷µéÀ» ÀÌ¿ëÇϱâ À§ÇØ ´Ù¸¥ ÇÁ·Î±×·¥¿¡¼­ UML À» ¸µÅ©ÇÒ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù. UML Àº ±âÁ¸ÀÇ ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¼­ºê½©·Î ½ÃÀÛµÉ ¼ö ÀÖ°í ´Ù¸¥ ÇÁ·Î±×·¥ ó·³ stdin/stdout À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
  4. Portable. Á¤¸» À̽ļºÀÌ ÀÖ´Ù. UMLÀÇ À̽ļºÀº °Ü¿ì ÀÌÁ¦ ¿¬±¸µÇ¾îÁö±â ½ÃÀÛÇßÁö¸¸, x86 Windows, PowerPC Linux, x86 BSD ȤÀº ´Ù¸¥ ½Ã½ºÅ۵鿡 ´ëÇÑ Æ÷Æõµ ¾ÆÁÖ ¿ëÀÌÇÒ °ÍÀ̶ó´Â ±àÁ¤Àû Àü¸ÁÀ» °®°í ÀÖ´Ù.
  5. Mature. UML Àº 1999 ³â ºÎÅÍ °³¹ßµÇ¾îÁ³´Ù. ±× °ß°íÇÔ(robustness)ÀÇ ÁöÇ¥ Áß Çϳª´Â UMLÀº UML ÀڽŠ³»¿¡¼­ ÄÄÆÄÀÏ µÇ°í ½ÇÇàµÉ ¼ö ÀÖ´Ù´Â °Í, Áï 'self-hosting'ÀÌ °¡´ÉÇÏ´Ù´Â °ÍÀÌ´Ù. UMLÀº ½ÇÁ¦ »ý»ê ÇöÀå¿¡¼­µµ »ç¿ëµÇ°í ÀÖ´Ù.
  6. Free Software. UML Àº GPL À» µû¸¥´Ù (¸®´ª½º Ä¿³ÎÀÇ ÀϺημ­ ´ç¿¬È÷ ±×·¡¾ß ÇÑ´Ù).

1.3. UML Àº ¾î¶»°Ô µ¿ÀÛÇϴ°¡?

ÀϹÝÀûÀ¸·Î, ¸®´ª½º Ä¿³ÎÀº Çϵå¿þ¾î (ºñµð¿À Ä«µå, Å°º¸µå, ÇÏµå µå¶óÀÌºê µî) ¿Í Çϵå¿þ¾î¸¦ Á¦¾îÇϱâ À§ÇØ Ä¿³Î¿¡ ¿äûÇÏ´Â ¼ÒÇÁÆ®¿þ¾î¿Í Á÷Á¢ ´ëÈ­ÇÑ´Ù. À̸¦ ±×¸²À¸·Î Ç¥ÇöÇÏ¸é ´ÙÀ½°ú °°´Ù:

  +-----------+-----------+----+
  | Process 1 | Process 2 | ...|
  +-----------+-----------+----+
  |       Linux Kernel         |
  +----------------------------+
  |         Hardware           |
  +----------------------------+
  


UML Ä¿³ÎÀº ÀÌ¿Í ´Þ¶ó¼­ Çϵå¿þ¾î¿Í Á÷Á¢ ´ëÈ­ÇÏ´Â ´ë½Å ´Ù¸¥ ÇÁ·Î±×·¥µé°ú ¸¶Âù°¡Áö·Î ½ÇÁ¦ ¸®´ª½º Ä¿³Î (ÀÌÁ¦ºÎÅÍ È£½ºÆ® Ä¿³Î À̶ó°í ÇÏ°Ú´Ù) °ú ´ëÈ­ÇÑ´Ù. UML »ó¿¡¼­ ½ÇÇàµÇ´Â ÇÁ·Î±×·¥µéÀº ÀÏ¹Ý Ä¿³Î¿¡¼­ ½ÇÇàµÇ´Â °Íó·³ ½ÇÇàµÉ ¼ö ÀÖ´Ù. À̸¦ ±×¸²À¸·Î Ç¥ÇöÇÏ¸é ´ÙÀ½°ú °°´Ù:

              +----------------+
              | Process 2 | ...|
  +-----------+----------------+
  | Process 1 | User-Mode Linux|
  +----------------------------+
  |       Linux Kernel         |
  +----------------------------+
  |         Hardware           |
  +----------------------------+
  


1.4. ¿Ö UML À» ¿øÇϴ°¡?

  1. ¸¸¾à UML ÀÌ Æı«µÇ´õ¶óµµ È£½ºÆ® Ä¿³ÎÀº Àß µ¿ÀÛÇÑ´Ù.
  2. root °¡ ¾Æ´Ñ »ç¿ëÀÚµµ usermode Ä¿³ÎÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Ù.
  3. ÀϹÝÀûÀÎ ÇÁ·Î¼¼½ºÃ³·³ UML À» µð¹ö±× ÇÒ ¼ö ÀÖ´Ù.
  4. gprof (ÇÁ·ÎÆÄÀϸµ) ¿Í gcov (Ä¿¹ö¸®Áö Å×½ºÆ®) ¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Ù.
  5. ´Ù¸¥ °ÍµéÀ» ¸Á°¡¶ß¸®Áö ¾Ê°í Ä¿³Î °ü·Ã ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Ù.
  6. »õ·Î¿î ÀÀ¿ë ÇÁ·Î±×·¥À» Å×½ºÆ®Çϱâ À§ÇÑ sandbox ·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.
  7. ¾ÈÀüÇÏ°Ô »õ·Î¿î Ä¿³ÎÀ» °³¹ßÇÒ ¼ö ÀÖ´Ù.
  8. µ¿½Ã¿¡ ¼­·Î ´Ù¸¥ ¹èÆ÷ÆǵéÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Ù.
  9. ¸Å¿ì Àç¹ÌÀÖ´Ù.


2. Ä¿³Î°ú ¸ðµâÀÇ ÄÄÆÄÀÏ

2.1. Ä¿³Î ÄÄÆÄÀÏÇϱâ

UML Ä¿³ÎÀ» ÄÄÆÄÀÏÇÏ´Â °ÍÀº ´Ù¸¥ Ä¿³ÎÀ» ÄÄÆÄÀÏ ÇÏ´Â °Í°ú µ¿ÀÏÇÏ´Ù. (ÀÌ ±ÛÀ» ¾²´Â ½ÃÁ¡¿¡¼­) ÃֽŠĿ³ÎÀÎ 2.4.0-prelease ¸¦ ¿¹Á¦·Î Çؼ­ ÇÑ ´Ü°è¾¿ »ìÆ캸±â·Î ÇÏÀÚ: (2.6´ë Ä¿³Î »ç¿ëÀÚ´Â ÀÌ¹Ì Ä¿³Î¼Ò½º¿¡ Æ÷ÇԵǾî ÀÖÀ½À¸·Î º°µµÀÇ ÆÐÄ¡¾øÀÌ ¼Ò½º¸¦ ¹Þ¾Æ 5¹øºÎÅÍ ½ÃÀÛÇÑ´Ù)

  1. [http]´Ù¿î·Îµå ÆäÀÌÁö[] ¿¡¼­ ÃֽŠ¹öÀüÀÇ UML ÆÐÄ¡¸¦ ´Ù¿î·Îµå ¹Þ´Â´Ù. ÀÌ ¿¹Á¦¿¡¼­ »ç¿ëµÈ ÆÄÀÏÀº uml-patch-2.4.0-prerelease.bz2 ÀÌ´Ù.
  2. ÁÖ·Î ÀÌ¿ëÇÏ´Â Ä¿³Î ¹Ì·¯ ÆäÀÌÁö¿¡¼­ ÇØ´çÇÏ´Â Ä¿³ÎÀ» ´Ù¿î·Îµå ¹Þ´Â´Ù.
  3. µð·ºÅ丮¸¦ ¸¸µé°í ´Ù¿î¹ÞÀº Ä¿³ÎÀ» ¾ÐÃàÀ» Ǭ´Ù.

    host% mkdir ~/uml
    
    host% cd ~/uml
    
    host% tar -xjvf linux-2.4.0-prerelease.tar.bz2
      


  4. ´ÙÀ½°ú °°ÀÌ ÆÐÄ¡¸¦ Àû¿ëÇÑ´Ù.

    host% cd ~/uml/linux
    
    host% bzcat uml-patch-2.4.0-prerelease.bz2 | patch -p1
      


  5. ÁÖ·Î »ç¿ëÇÏ´Â Ä¿³Î config ¸¦ ½ÇÇàÇÑ´Ù. make xconfig ARCH=um ÀÇ ÇüÅ°¡ °¡Àå Æí¸®ÇÏ´Ù. make config ARCH=um À̳ª make menuconfig ARCH=um µµ Àß µ¿ÀÛÇÒ °ÍÀÌ´Ù. ±âº» ¼³Á¤À¸·Îµµ ÃæºÐÈ÷ À¯¿ëÇÑ Ä¿³ÎÀ» Á¦°øÇÒ °ÍÀÌ´Ù. ¸¸¾à ¹«¾ð°¡¸¦ º¯°æÇϱ⸦ ¿øÇÑ´Ù¸é ±×·¸°Ô Ç϶ó. ±×°ÍÀº ¾Æ¸¶µµ ¾Æ¹«·± ÇÇÇظ¦ ÁÖÁö ¾ÊÀ» °ÍÀÌ´Ù.

    /!\ ÁÖÀÇ: ¸¸¾à È£½ºÆ® Ä¿³ÎÀÇ ÁÖ¼Ò°ø°£ÀÌ ÀϹÝÀûÀÎ 3G/1G ±¸ºÐÀÌ ¾Æ´Ñ 2G/2G ·Î ¼³Á¤µÇ¾î ÀÖ´Ù¸é ÆÐÅ°ÁöÈ­µÈ UML ½ÇÇàÆÄÀϵéÀÌ ½ÇÇàµÇÁö ¾Ê°í segment fault ¸¦ ÀÏÀ¸Å³ °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ½Ã½ºÅÛ¿¡¼­ UML À» µ¿ÀÛ½ÃÅ°±â À§Çؼ­´Â 4Àå 2G/2G È£½ºÆ®¿¡¼­ UML ½ÇÇàÇϱ⠸¦ Âü°íÇ϶ó.

  6. make linux ARCH=um ¸í·ÉÀ» ½ÇÇàÇÑ´Ù: ÀÌ °á°ú·Î linux ¶ó´Â À̸§ÀÇ ÆÄÀÏÀÌ ¼Ò½º Æ®¸®ÀÇ Á¦ÀÏ »óÀ§ µð·ºÅ丮¿¡ »ý¼ºµÈ´Ù. »ý¼ºµÈ ½ÇÇà ÆÄÀÏÀÇ Å©±â´Â ²Ï Å©´Ù´Â °ÍÀ» ¾Ë¾ÆµÎ±â ¹Ù¶õ´Ù (µð¹ö±ë Á¤º¸¸¦ Æ÷ÇÔÇÑ UML Àº 10 MB ÀÌ»óÀÇ Å©±âÀÌ´Ù). ÀÌ°ÍÀº ´ëºÎºÐ ½Éº¼ Á¤º¸¿¡ ÇØ´çÇÑ´Ù. ½ÇÁ¦ ½ÇÇàÆÄÀÏÀÇ Å©±â´Â ¿ø·¡ÀÇ Ä¿³Î°ú ºñ½ÁÇÑ Å©±âÀÌ´Ù. µû¶ó¼­ °Å´ëÇÑ ½ÇÇà ÆÄÀÏÀ» ½ÇÇàÇصµ gdb ¿Í ÇÔ²² UML À» ½ÇÇàÇÏÁö ¾Ê´Â ÇÑ ½Éº¼µéÀº ±×Àú µð½ºÅ© °ø°£À» ¼ÒºñÇÒ »ÓÀÌ°í ¿ÀÁ÷ ½ÇÁ¦ ÄÚµå¿Í µ¥ÀÌÅÍ Á¤º¸¸¸ÀÌ ¸Þ¸ð¸® »ó¿¡ ·ÎµåµÉ °ÍÀÌ´Ù. UML Ä¿³ÎÀÇ ½ÇÁ¦ Å©±â¸¦ ¾Ë¾Æº¸±â À§ÇØ ´ÙÀ½°ú °°ÀÌ strip ¸í·ÉÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Ù:

    host% strip linux
      


ÀÌ Ä¿³ÎÀ» /usr/src/linux µð·ºÅ丮¿¡¼­ ºôµåÇÏÁö ¾Êµµ·Ï ÁÖÀÇÇ϶ó. ƯÁ¤ ¹èÆ÷ÆÇ¿¡¼­´Â /usr/include/asm µð·ºÅ丮°¡ ÀÌ Ç® (pool) À» °¡¸®Å°´Â ¸µÅ©·Î µÇ¾îÀÖÀ¸¹Ç·Î UML À» ÀÌ µð·ºÅ丮¿¡¼­ ºôµåÇÏ°Ô µÇ¸é ¸µÅ©°¡ °¡¸®Å°´Â °÷ÀÇ ³»¿ëÀÌ º¯È­µÇ°í <asm/anything.h> ¸¦ Æ÷ÇÔÇÏ´Â °ÍµéÀº ÄÄÆÄÀÏÀÌ ÁßÁöµÉ °ÍÀÌ´Ù.

¼Ò½º ÆÄÀÏÀº ÀÌ ÇÁ·ÎÁ§Æ®ÀÇ CVS ÆäÀÌÁö¿¡¼­µµ ¾òÀ» ¼ö ÀÖ´Ù. ÀÌ ÆäÀÌÁö¿¡¼­´Â ¼Ò½º¸¦ ¾ò´Â ¹æ¹ýÀ̳ª CVS Ç®¿¡ ´ëÇÑ Á¤º¸µéµµ ¾òÀ» ¼ö ÀÖ´Ù.

cvs -d:pserver:anonymous@www.user-mode-linux.org:/cvsroot/user-mode-linux
cvs command
  


¸¸¾à CVS ·ÎºÎÅÍ ¼Ò½º ÆÄÀÏÀ» ¹Þ±æ ¿øÇÑ´Ù¸é ±×°ÍÀ» ºó µð·ºÅ丮·Î check out ÇؾßÇÒ °ÍÀÌ´Ù. ±×¸®°í´Â °¢ ÆÄÀϵéÀ» ÀûÀýÇÑ Ä¿³Î Ç®ÀÇ ÇØ´çÇÏ´Â µð·ºÅ丮·Î º¹»çÇØ¾ß ÇÑ´Ù.

¸¸¾à ÃÖ½ÅÀÇ Ä¿³Î Ç®À» °¡Áö°í ÀÖÁö ¾Ê´Ù¸é ÇØ´çÇÏ´Â user-mode ¼Ò½º´Â ´ÙÀ½°ú °°ÀÌ ¾òÀ» ¼ö ÀÖ´Ù:

host% cvs co -r v_2_3_x linux
  


¿©±â¼­ x ´Â Ç® (pool) ÀÇ ¹öÀüÀÌ´Ù. ÀÌÈÄÀÇ ¸±¸®Áî¿¡ Æ÷ÇÔµÈ ¹ö±× ¼öÁ¤À̳ª °³¼± »çÇ×µîÀº ¾òÀ» ¼ö ¾ø´Ù´Â °Í¿¡ ÁÖÀÇÇÏÀÚ.

¸¸¾à ÀڽŸ¸ÀÇ Ä¿³ÎÀ» ºôµåÇß°í ±×°ÍÀ» ÀÌ »çÀÌÆ®¿¡¼­ ¹èÆ÷ÇÏ´Â ÆÄÀÏ ½Ã½ºÅÛµé ÁßÀÇ Çϳª¿¡¼­ ºÎÆýÃÅ°°í ½Í´Ù¸é °ÅÀÇ ´ëºÎºÐÀÇ °æ¿ì Ä¿³Î¿¡ devfs ¸¦ Æ÷ÇÔ½ÃÄѼ­ ÄÄÆÄÀÏÇÏ°í ºÎÆýÿ¡ ¸¶¿îÆ®µÇµµ·Ï ¼³Á¤ÇØ¾ß ÇÑ´Ù. ÀÌ¿¡ ´ëÇÑ ¿¹¿Ü°¡ ¹Ù·Î tomsrtbt ÆÄÀÏ ½Ã½ºÅÛÀ¸·Î¼­ ÀÌ °æ¿ì, devfs °¡ Ä¿³Î¿¡ Æ÷ÇԵǾî ÀÖÁö ¾Ê°Å³ª Ä¿³Î ¸í·ÉÇà¿¡¼­ "devfs=nomount" °¡ ¹Ýµå½Ã ÀԷµǾî¾ß ÇÑ´Ù. devfs »ç¿ë¿¡ À־ÀÇ ºÎÆõǴ ÆÄÀÏ ½Ã½ºÅÛ°ú Ä¿³Î °£ÀÇ ºÒÀÏÄ¡´Â single-user mode °¡ ¾Æ´Ò¶§ ºÎÆÃÀÌ µÇÁö ¾Êµµ·Ï ÇÒ °ÍÀÌ´Ù.

¸¸¾à devfs ¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é ´ÙÀ½°ú °°ÀÌ /dev/ubd ÀåÄ¡ ÆÄÀϵéÀ» ¸¸µé¾î¼­ /dev µð·ºÅ丮¿¡ º¹»çÇÏ¸é µÈ´Ù:

UML# for i in 0 1 2 3 4 5 6 7; do mknod ubd$i b 98 $[ $i * 16 ]; done
  


±×¸®°í /etc/fstab °ú /etc/inittab À» ¼öÁ¤ÇÏ¿© devfs °¡ ¾Æ´Ñ ÀåÄ¡¸¦ °¡¸®Å°µµ·Ï ÇÑ´Ù.

2.2. ¸ðµâ ÄÄÆÄÀÏ°ú ¼³Ä¡Çϱâ

UML ÀÇ ¸ðµâÀº È£½ºÆ® Ä¿³ÎÀÇ ¸ðµâ°ú µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î ¼³Ä¡µÈ´Ù. (UML À» À§Çؼ­´Â Ç×»ó ARCH=um À» ¸í½ÃÇØ¾ß ÇÑ´Ù´Â °Í¸¸ÀÌ ´Ù¸£´Ù)

host% make modules ARCH=um
  


ÀÌ Ä¿³Î¿¡ ·ÎµåÇÏ°í ½ÍÀº ¸ðµâµéÀº »ç¿ëÀÚ ¸ðµå Ç®¿¡¼­ ºôµåµÇ¾î¾ß ÇÑ´Ù. È£½ºÆ® Ä¿³Î¿¡¼­ ºôµåµÈ ¸ðµâµéÀº µ¿ÀÛÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ¸¸¾à ¸ðµâÀÇ Å©±â°¡ È£½ºÆ® Ä¿³ÎÀÇ ¸ðµâ¿¡ ºñÇØ Å©´Ù´Â °ÍÀ» ¾Ë¾Ò´Ù¸é, À§ÀÇ UML ½ÇÇàÆÄÀÏÀÇ Å©±â¸¦ ¼³¸íÇÑ ºÎºÐÀ» »ìÆ캸±â ¹Ù¶õ´Ù.

¶Ç´Â ftp ³ª ±×¹ÛÀÇ º¹»ç ÇÁ·Î±×·¥µîÀ» ÀÌ¿ëÇØ °¡»ó ¸Ó½ÅÀ¸·Î º¹»çÇÑ ÈÄ /lib/modules/\uname -r\ µð·ºÅ丮·Î ¿Å°ÜµÎ´Â ¹æ½ÄÀ¸·Îµµ ¸ðµâÀ» ¼³Ä¡ÇÒ ¼ö ÀÖ´Ù.

¶Ç´Â Ä¿³Î ºôµå °úÁ¤¿¡¼­ ´ÙÀ½°ú °°ÀÌ ¼³Ä¡ÇÒ ¼ö ÀÖ´Ù:

  1. Ä¿³ÎÀ» ºÎÆÃÇÏÁö ¾Ê°í, Ä¿³Î Ç®ÀÇ ÃÖ»óÀ§¿¡¼­ ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¶¿îÆ®ÇÑ´Ù.

    host% mount root_fs mnt -o loop
      


  2. ´ÙÀ½À» ½ÇÇàÇÑ´Ù.

    host% make modules_install INSTALL_MOD_PATH=`pwd`/mnt ARCH=um
      


  3. ÆÄÀÏ ½Ã½ºÅÛÀ» ¾ð¸¶¿îÆ®ÇÑ´Ù.

    host% umount mnt
      


  4. ±× À§¿¡ Ä¿³ÎÀ» ºÎÆýÃŲ´Ù.

¾î¶°ÇÑ ÀÌÀ¯·Î (COW ÆÄÀÏÀÎ °æ¿ìó·³) È£½ºÆ® ½Ã½ºÅÛ¿¡ ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¶¿îÆ®½ÃÅ°Áö ¸øÇÑ´Ù¸é, ´Ù¸¥ ¹æ¹ýÀ¸·Î [http]hostfs[] ¸¦ ÀÌ¿ëÇؼ­ È£½ºÆ®ÀÇ UML Ä¿³Î Æ®¸®¸¦ UML ·Î ¸¶¿îÆ®ÇÑ µÚ UML ³»¿¡¼­ modules_install À» ½ÇÇàÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù:

  1. UML À» ºÎÆÃÇÏ°í, È£½ºÆ®ÀÇ Ä¿³Î Æ®¸®¸¦ UML ³»ÀÇ °°Àº À§Ä¡¿¡ ¸¶¿îÆ®ÇÑ´Ù.

    UML# mount none -t hostfs <UML pool ÀÇ °æ·Î> -o <UML pool ÀÇ °æ·Î>
      


  2. make modules_install À» ¼öÇàÇÑ´Ù.

    UML# cd <UML pool ÀÇ °æ·Î> ; make modules_install
      


¸¶Áö¸·ÀÇ depmod ´Â unresolved symbols ¿¡ °üÇÑ ºÒÆòÀ» ÇÒ¼öµµ Àִµ¥ ÀÌ°ÍÀº UML ÆÄÀÏ ½Ã½ºÅÛ ³»¿¡ ¼³Ä¡µÈ System.map ÆÄÀÏÀÌ À߸øµÇ¾ú°Å³ª ¾ø±â ¶§¹®ÀÌ´Ù. ÇÏÁö¸¸ ÀÌ·Î ÀÎÇÑ ¹®Á¦´Â ¾øÀ» °ÍÀÌ´Ù. ÇöÀç insmod ³ª modprobe µîÀº Àß µ¿ÀÛÇÑ´Ù.

½Ã½ºÅÛÀÌ ºÎÆÃµÉ ¶§, Ä¿³Î ³»¿¡ ¸ðµâÀ» ·ÎµåÇϱâ À§Çؼ­ insmod ¸¦ ÁÖ·Î »ç¿ëÇÏ°Ô µÉ °ÍÀÌ´Ù. ¸¹Àº °ÍµéÀÌ (ƯÈ÷ ÆÄÀÏ ½Ã½ºÅÛÀ̳ª ³×Æ®¿öÅ© ÇÁ·ÎÅäÄÝ, ÇÊÅÍ µî) ¸ðµâ·Î¼­ UML ¿¡ ·ÎµåµÈ´Ù. ±×·¯¹Ç·Î ´ëºÎºÐÀÇ ÇÊ¿äÇÑ ½Éº¼µéÀº ¾Æ¸¶µµ ÀͽºÆ÷Æ® µÇ¾î ÀÖÀ» °ÍÀÌ´Ù. ÇÏÁö¸¸ ÀͽºÆ÷Æ® µÉ ÇÊ¿ä°¡ ÀÖ´Â ½Éº¼À» ´õ ã°Ô µÈ °æ¿ì¿¡´Â [http]¿ì¸®[]¿¡°Ô ¾Ë·ÁÁÖ¸é ó¸®Çϵµ·Ï ÇÏ°Ú´Ù.

¸¸¾à UML Æ®¸®³»¿¡ Á¸ÀçÇÏÁö ¾Ê´Â ¿ÜºÎ ¸ðµâÀ» ºôµåÇÑ´Ù¸é, include ÆÄÀϵéÀ» ãÀ» ¼ö ¾ø´Ù°í ¿¡·¯¸¦ ³»¸ç ÄÄÆÄÀϵÇÁö ¾ÊÀ» °ÍÀÌ´Ù. ¸ðµâÀÇ Makefile À̳ª ½ºÅ©¸³Æ®¿¡¼­ ºôµå´Â µÇ¾ú´õ¶óµµ ½ÇÇàµÇÁö ¾Ê´Â CFLAGS ¿¡ °ü·ÃµÈ ¸î°¡Áö ¹®Á¦Á¡µéÀÌ ÀÖ´Ù. À̸¦ ÇØ°áÇϱâ À§Çؼ­´Â UML Ä¿³ÎÀ» ºôµåÇÒ ¶§ »ç¿ëÇß´ø °Í°ú µ¿ÀÏÇÑ CFLAGS ¿É¼ÇÀ» »ç¿ëÇØ¾ß ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.

UML ÀÇ CFLAGS ¸¦ ¾ò´Â ÁÁÀº ¹æ¹ýÀ¸·Î´Â ´ÙÀ½°ú °°Àº °ÍÀÌ ÀÖ´Ù:

cd uml-tree ; make script 'SCRIPT=@echo $(CFLAGS)' ARCH=um
  


¸¸¾à ¸ðµâ ºôµå °úÁ¤¿¡¼­ ´ÙÀ½°ú °°Àº ºÎºÐÀÌ ³ªÅ¸³­´Ù¸é

$(CC) $(CFLAGS) file
  


½ºÅ©¸³Æ® ³»ÀÇ CFLAGS ¸¦ ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù

CFLAGS=`cd uml-tree ; make script 'SCRIPT=@echo $(CFLAGS)' ARCH=um`
  


±×¸®°í Makefile ³»¿¡¼­´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÑ´Ù

CFLAGS=$(shell cd uml-tree ; make script 'SCRIPT=@echo $$(CFLAGS)' ARCH=um)
  


2.3. UML À¯Æ¿¸®Æ¼ ÄÄÆÄÀÏ°ú ¼³Ä¡Çϱâ

UML Ä¿³ÎÀÇ ¸¹Àº ±â´ÉµéÀº »ç¿ëÀÚ °ø°£¿¡¼­ µ¿ÀÛÇÏ´Â µµ¿ì¹Ì ÇÁ·Î±×·¥À» ÇÊ¿ä·Î ÇÑ´Ù. ±×·¯¹Ç·Î ÀÌ·¯ÇÑ ±â´ÉÀ» ¼öÇàÇϱâ À§Çؼ­ Ä¿³Î ÆÐÄ¡¿Í´Â º°µµ·Î uml_utilities ÆÐÅ°Áö°¡ ¹èÆ÷µÈ´Ù. ÀÌ´Â ´ÙÀ½°ú °°Àº °ÍµéÀ» Æ÷ÇÔÇÑ´Ù:

  • port-helper - xterms À̳ª port ¿¡ ¿¬°áµÈ Äֵܼ鿡 ÀÇÇØ »ç¿ëµÊ
  • tunctl - tab ÀåÄ¡µéÀÇ »ý¼º°ú »èÁ¦¸¦ À§ÇÑ ¼³Á¤ µµ±¸
  • uml_net - ÀÚµ¿ tab ÀåÄ¡ ¼³Á¤À» À§ÇÑ setuid ½ÇÇà ÆÄÀÏ
  • uml_switch - daemon transport ¿¡ ÇÊ¿äÇÑ »ç¿ëÀÚ °ø°£ÀÇ °¡»ó ½ºÀ§Ä¡

uml_utilities Æ®¸®´Â ´ÙÀ½°ú °°ÀÌ ÄÄÆÄÀÏ ÇÑ´Ù:

host#  make && make install
  


UML Ä¿³Î ÆÐÄ¡´Â ƯÁ¤ ¹öÀüÀÇ uml_utilities ¹èÆ÷ÆÇÀ» ¿ä±¸ÇÑ´Ù´Â °ÍÀ» À¯ÀÇÇϱ⠹ٶõ´Ù. ¸ÞÀϸµ ¸®½ºÆ®¸¦ »ìÆ캸Áö ¾Ê´Â´Ù¸é, ÇöÀç UML Ä¿³Î¿¡¼­ ¹®Á¦¸¦ °æÇèÇÑ °æ¿ì (ƯÈ÷ ÄÜ¼Ö ÀÛ¾÷À̳ª µµ¿ì¹Ì ÇÁ·Î±×·¥À¸·ÎÀÇ ¸í·ÉÇà ½ºÀ§Ä¡ µîÀ» ´Ù·ê ¶§) ÃֽŠ¹öÀüÀÇ uml_utilities ¸¦ °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇØ º¸±â ¹Ù¶õ´Ù.


3. UML ÀÇ ½ÇÇà°ú ·Î±×ÀÎ Çϱâ

3.1. UML ½ÇÇàÇϱâ

UML Àº Ä¿³Î¹öÀü 2.2.15 ȤÀº ±× ÀÌÈÄÀÇ ¹öÀüÀ̳ª, ¸ðµç 2.4 °ú 2.6 Ä¿³Î¿¡¼­ µ¿ÀÛÇÑ´Ù.

UML ÀÇ ºÎÆÃÀº °£´ÜÇÏ´Ù. ´Ü¼øÈ÷ linux ¶ó°í ÀÔ·ÂÇÏ¸é µÈ´Ù: ÀÌ °æ¿ì UML Àº ÇöÀç µð·ºÅ丮ÀÇ root_fs ¶ó´Â ÆÄÀÏÀ» ¸¶¿îÆ®ÇÏ·Á°í ÇÒ °ÍÀÌ´Ù. ÀÌ ÀÛ¾÷À» root ±ÇÇÑÀ¸·Î ¼öÇàÇØ¾ß ÇÒ ÇÊ¿ä´Â ¾ø´Ù. ¸¸¾à ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀÇ À̸§ÀÌ root_fs °¡ ¾Æ´Ï¶ó¸é ¸í·ÉÇà¿¡¼­ ubd0=root_fs_´Ù¸¥À̸§ À̶ó°í Àû¾îÁÖ¸é µÈ´Ù.

UML À» ºÎÆýÃÅ°±â À§Çؼ­´Â ÆÄÀÏ ½Ã½ºÅÛÀÌ ÇÊ¿äÇÏ´Ù. ÀÌ ÆÄÀÏ ½Ã½ºÅÛµéÀº [http]¿©±â[] ¿¡¼­ ´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖ´Ù. ¹Ìµð¾î·Î ºÎÅÍ Á÷Á¢ UML ¿¡ ȣȯµÇ´Â ÆÄÀÏ ½Ã½ºÅÛ À̹ÌÁö¸¦ »ý¼ºÇØÁÖ´Â [http]¿©·¯°¡Áö µµ±¸µé[] µµ Á¸ÀçÇÑ´Ù.

ÀÌ·¸°Ô Ä¿³ÎÀÌ ºÎÆÃµÇ¸é ·Î±×ÀÎ ÇÁ·ÒÇÁÆ®°¡ ³ªÅ¸³¯ °ÍÀÌ´Ù.

/!\ ÁÖÀÇ: È£½ºÆ® ½Ã½ºÅÛÀÇ ÁÖ¼Ò°ø°£ÀÌ ÀϹÝÀûÀÎ 3G/1G ±¸ºÐÀÌ ¾Æ´Ñ 2G/2G ±¸ºÐÀ¸·Î ¼³Á¤µÇ¾î ÀÖ´Ù¸é ÆÐÅ°Áö·Î µé¾îÀÖ´Â UML ½ÇÇà ÆÄÀϵéÀº µ¿ÀÛÇÏÁö ¾Ê°í ¹Ù·Î segment fault ¸¦ ÀÏÀ¸Å³ °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ½Ã½ºÅÛ¿¡¼­ UML À» ½ÇÇà½ÃÅ°±â À§Çؼ­´Â 4Àå 2G/2G È£½ºÆ®¿¡¼­ UML ½ÇÇàÇϱ⠸¦ Âü°íÇ϶ó.

3.2. ·Î±×ÀÎ Çϱâ

¹Ì¸® ÆÐÅ°Áö·Î ¸¸µé¾îÁø ÆÄÀÏ ½Ã½ºÅÛÀº Æнº¿öµå°¡ root ·Î ¼³Á¤µÈ root °èÁ¤°ú Æнº¿öµå°¡ user ·Î ¼³Á¤µÈ user °èÁ¤À» °¡Áø´Ù. ÀϹÝÀûÀ¸·Î ·Î±×ÀÎ ¹è³Ê°¡ ·Î±×ÀÎÇÏ´Â ¹æ¹ýÀ» ¾Ë·ÁÁÙ °ÍÀÌ´Ù. ±×´ë·Î µû¶óÇÏ¸é °¡»ó ¸Ó½Å »óÀ¸·Î ·Î±×ÀÎÇØ µé¾î°¥ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÀÌ ÆÄÀÏ ½Ã½ºÅÛ¿¡´Â ¸¹Àº Ä¿¸Çµå¿Í µµ±¸µéÀÌ ¼³Ä¡µÇ¾î ÀÖÀ¸¸ç (¶ÇÇÑ ´õ Ãß°¡ÇÏ´Â °Íµµ ¸Å¿ì ½±´Ù), ½Ã½ºÅÛÀ» ÀÚ¼¼È÷ »ìÆ캼 ¼ö ÀÖ´Â ¿©·¯°¡Áö µµ±¸µéµµ °¡Áö°Ô µÉ °ÍÀÌ´Ù.

·Î±×ÀÎÀº ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Îµµ ÇÒ ¼ö ÀÖ´Ù:

  • °¡»ó ÄÜ¼Ö »óÀ¸·Î ·Î±×ÀÎ Çϱâ
    ¼³Á¤µÈ °¢°¢ÀÇ ÄÜ¼Ö (Áï, /dev µð·ºÅ丮 ¹Ø¿¡ ÀåÄ¡ÆÄÀÏÀÌ Á¸ÀçÇÏ°í /etc/inittab ¿¡¼­ ±× À§¿¡ getty °¡ µ¿ÀÛÇϵµ·Ï ÁöÁ¤µÈ ÄܼÖ) ·Î xterm ÀÌ ¿¬°áµÉ ¼ö ÀÖ´Ù. xterm ¿¡ ½ÈÁõ³µ´Ù¸é Äֿܼ¡ È£½ºÆ®ÀÇ pty ¿Í °°Àº ´Ù¸¥ °ÍµéÀ» ¿¬°áÇÏ´Â ¹æ¹ýÀ» À§ÇØ 5Àå ½Ã¸®¾ó ¶óÀΰú ÄÜ¼Ö ¼³Á¤Çϱ⠸¦ Àо±â ¹Ù¶õ´Ù.

  • ½Ã¸®¾ó ¶óÀÎ »óÀ¸·Î ·Î±×ÀÎ Çϱâ
    ºÎÆýÿ¡ ³ª¿À´Â ¸Þ½ÃÁö Áß¿¡ ´ÙÀ½°ú °°Àº ºÎºÐÀ» ã´Â´Ù.

    serial line 0 assigned pty /dev/ptyp1
       


    ÁÖ·Î »ç¿ëÇÏ´Â Å͹̳ΠÇÁ·Î±×·¥À» ÇØ´çÇÏ´Â tty ¿¡ ¿¬°áÇÑ´Ù. minicom ÀÇ °æ¿ì ´ÙÀ½°ú °°Àº ÇüÅ°¡ µÉ °ÍÀÌ´Ù.

    host% minicom -o -p /dev/ttyp1
       


  • ³×Æ®¿öÅ© »óÀ¸·Î ·Î±×ÀÎ Çϱâ
    ³×Æ®¿öÅ©°¡ µ¿ÀÛÇÏ°í ÀÖ´Ù¸é telnet À» ÀÌ¿ëÇØ °¡»ó ¸Ó½ÅÀ¸·Î ·Î±×ÀÎ ÇÒ ¼ö ÀÖ´Ù. 6Àå ³×Å©¿öÅ© ¼³Á¤Çϱ⠺κÐÀ» Àо °¡»ó ³×Æ®¿öÅ©¸¦ ¼³Á¤ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾ÆµÎ±â ¹Ù¶õ´Ù.

½Ã½ºÅÛÀ» ´Ù »ç¿ëÇß´Ù¸é halt ¸¦ ½ÇÇàÇ϶ó. ±×·¯¸é Ä¿³ÎÀº ÀÚ½ÅÀ» Á¾·áÇÏ°í ÇÁ·Î¼¼½º¸¦ Á¾·á½Ãų °ÍÀÌ´Ù.

3.3. ¿¹Á¦

´ÙÀ½Àº ½ÇÁ¦ÀûÀÎ UML µ¿ÀÛÀÇ ¿¹Á¦µéÀÌ´Ù.

4. 2G/2G È£½ºÆ®¿¡¼­ UML ½ÇÇàÇϱâ

4.1. ¼Ò°³

´ëºÎºÐÀÇ ¸®´ª½º ¸Ó½ÅÀº 4G ÀÇ ÁÖ¼Ò°ø°£ Áß¿¡¼­ Ä¿³ÎÀÌ »óÀ§ 1G (0xc0000000 - 0xffffffff) ¸¦ »ç¿ëÇÏ°í, ÇÁ·Î¼¼½º°¡ ÇÏÀ§ 3G (0x00000000 - 0xbfffffff) ¸¦ »ç¿ëÇϵµ·Ï ¼³Á¤µÇ¾î ÀÖ´Ù. ÇÏÁö¸¸ ƯÁ¤ÇÑ ¸Ó½Å¿¡¼­´Â Ä¿³ÎÀÌ »óÀ§ 2G (0x80000000 - 0xffffffff) ¸¦ »ç¿ëÇÏ°í, ÇÁ·Î¼¼½º°¡ ÇÏÀ§ 2G (0x00000000 - 0x7fffffff) ¸¦ »ç¿ëÇÏ´Â 2G/2G ±¸ºÐÀ¸·Î ¼³Á¤µÇ¾î ÀÖ´Ù.

4.2. ¹®Á¦Á¡

UML »çÀÌÆ®¿¡¼­ Á¦°øÇÏ´Â ¹Ì¸® ºôµåµÈ UML ½ÇÇàÆÄÀÏÀº ÀÌ·¯ÇÑ 2G/2G È£½ºÆ®¿¡¼­´Â µ¿ÀÛÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ¿Ö³ÄÇϸé UML Àº ÇÁ·Î¼¼½ºÀÇ 3G ÁÖ¼Ò°ø°£ Áß¿¡¼­ »óÀ§ 0.5G (0xa0000000 - 0xbfffffff) ¸¦ »ç¿ëÇϵµ·Ï ¼³Á¤µÇ¾î Àֱ⠶§¹®ÀÌ´Ù. 2G/2G È£½ºÆ®¿¡¼­ ÀÌ´Â ºÐ¸í Ä¿³Î ÁÖ¼Ò°ø°£ÀÇ ÇÑ°¡¿îµ¥¿¡ À§Ä¡ÇÏ°Ô µÇ¹Ç·Î, UML Àº ·ÎµåµÇÁö ¾Ê°í Áï½Ã segfault ¸¦ ÀÏÀ¸Å³ °ÍÀÌ´Ù.

4.3. ÇØ°áÃ¥

ÀÌ·¯ÇÑ ¹®Á¦Á¡À» ÇØ°áÇϱâ À§Çؼ­´Â UML ¼Ò½º¸¦ ºôµåÇÒ ¶§ (General Setup ¹ØÀÇ) 2G/2G host address space split ¸¦ ¼±ÅÃÇÏ¿© CONFIG_HOST_2G_2G ¸¦ ¼³Á¤ÇÏ¸é µÈ´Ù. ±×·¯¸é UML Àº 2G ·Î ÁÙ¾îµç ÇÁ·Î¼¼½º ÁÖ¼Ò°ø°£ÀÇ »óÀ§ 0.5G ºÎºÐ¿¡ ·ÎµåµÇ¾î µ¿ÀÛÇÒ °ÍÀÌ´Ù. UML À» ¼Ò½º·ÎºÎÅÍ ºôµåÇÏ´Â ¹æ¹ýÀº 2Àå Ä¿³Î°ú ¸ðµâÀÇ ÄÄÆÄÀÏ ºÎºÐÀ» ÂüÁ¶Çϱ⠹ٶõ´Ù.


5. ½Ã¸®¾ó ¶óÀΰú ÄÜ¼Ö ¼³Á¤Çϱâ

¸í·ÉÇà ¿É¼ÇÀ» ÅëÇØ UML ÀÇ ½Ã¸®¾ó ¶óÀΰú ÄܼÖÀ» ¸¹Àº Á¾·ùÀÇ È£½ºÆ® I/O ä³Î (ptys, ttys, ÆÄÀÏ µð½ºÅ©¸³ÅÍ, Æ÷Æ® µî) ¿¡ ¿¬°á (attach) ÇÒ ¼ö ÀÖ´Ù. ÀÌ´Â ´ÙÀ½°ú °°Àº ÀÛ¾÷À» °¡´ÉÇÏ°Ô ÇØÁØ´Ù.

  • »ç¿ëÇÏÁö ¾Ê´Â È£½ºÆ®ÀÇ Äֿܼ¡ UML ÄܼÖÀÌ ³ªÅ¸³ª°Ô ÇÑ´Ù.
  • ÇÑÂÊÀÇ °¡»ó¸Ó½ÅÀº pty ¿¡ ¿¬°áÇÏ°í ´Ù¸¥ ÇϳªÀÇ °¡»ó ¸Ó½ÅÀº ÇØ´ç tty ¿¡ ¿¬°áÇÏ¿© µÎ°³ÀÇ °¡»ó ¸Ó½ÅÀ» ÇÔ²² ÈÄÅ·ÇÑ´Ù.
  • °¡»ó¸Ó½ÅÀÇ ÄܼÖÀ» È£½ºÆ®ÀÇ Æ÷Æ®¿¡ ¿¬°áÇÔÀ¸·Î¼­ °¡»ó ¸Ó½ÅÀ» ³×Æ®¿öÅ©¸¦ ÅëÇØ Á¢±Ù °¡´ÉÇϵµ·Ï ÇÑ´Ù.

¸í·ÉÇà ¿É¼ÇÀÇ ÀϹÝÀûÀÎ ÇüÅ´ ÀåÄ¡=ä³Î ÀÇ ÇüÅÂÀÌ´Ù.

5.1. ÀåÄ¡ ÁöÁ¤Çϱâ

ÀåÄ¡´Â con À̳ª ssl ÀÇ ÇüÅ·ΠÁöÁ¤ÇÑ´Ù (°¢°¢ Äְܼú ½Ã¸®¾ó ¶óÀο¡ ÇØ´ç). ƯÁ¤ ÀåÄ¡¸¦ ÁöÁ¤ÇÏ°í ½ÍÀº °æ¿ì¿¡´Â ¿É¼ÇÀ¸·Î ÀåÄ¡ ¹øÈ£¸¦ ¸í½ÃÇÒ ¼ö ÀÖ´Ù.

´ÜÁö con À̳ª ssl À̶ó°í¸¸ ÁöÁ¤ÇÑ °æ¿ì¿¡´Â ¸ðµç ÄܼÖÀ̳ª ½Ã¸®¾ó ¶óÀÎÀ» ¸»ÇÏ°Ô µÈ´Ù. ¸¸¾à 3¹ø ÄܼÖÀ̳ª 10¹ø ½Ã¸®¾ó ¶óÀÎÀ» ÁöÁ¤ÇÏ°í ½ÍÀº °æ¿ì¶ó¸é con3 À̳ª ssl10 À̶ó°í ¸í½ÃÇØ¾ß ÇÑ´Ù.

ÁöÁ¤µÈ ÀåÄ¡ À̸§Àº ÀϹÝÀûÀÎ con= À̳ª ssl= ÀÇ ¼³Á¤À» µ¤¾î¾²°Ô (override) µÉ °ÍÀÌ´Ù. ¿¹¸¦ µé¾î óÀ½ÀÇ 2°³¸¦ Á¦¿ÜÇÑ ½Ã¸®¾ó ¶óÀÎÀ» pty ¿¡ ÇÒ´çÇÏ°í ½ÍÀº °æ¿ì´Â ´ÙÀ½°ú °°ÀÌ ÇÒ ¼ö ÀÖ´Ù:

ssl=pty ssl0=tty:/dev/tty0 ssl1=tty:/dev/tty1
  


¼³Á¤½Ã ¸í·ÉÇà¿¡¼­ ³ªÅ¸³ª´Â ¼ø¼­¿¡ »ó°ü¾øÀÌ ÀåÄ¡ÀÇ À̸§¸¸À¸·Î ÁöÁ¤µÈ´Ù.

5.2. ä³Î ÁöÁ¤Çϱâ

UML ÀåÄ¡°¡ ¿¬°áµÉ ¼ö ÀÖ´Â ¿©·¯ ŸÀÔÀÇ Ã¤³ÎµéÀÌ ÀÖ°í, °¢°¢Àº Á¤È®È÷ ¾î¶² ÀåÄ¡µéÀÌ ¿¬°áµÉ Áö¸¦ ÁöÁ¤ÇÏ´Â ¹æ¹ýÀÌ ¼­·Î ´Ù¸£´Ù.

  • °¡»ó Å͹̳Π- ÀåÄ¡=pty, pts Å͹̳Π- ÀåÄ¡=pts ÀÌ´Â UML ÀÌ ÇØ´ç ÀåÄ¡¸¦ À§ÇÑ È£½ºÆ®ÀÇ ÀÌ¿ë°¡´ÉÇÑ °¡»ó Å͹̳ÎÀ» ÇÒ´çÇϵµ·Ï ÇÑ´Ù. ¾ò¾îÁø Å͹̳ΠÁ¤º¸´Â ºÎÆ® ·Î±×¿¡ Ç¥½ÃµÉ °ÍÀÌ´Ù. Å͹̳ΠÇÁ·Î±×·¥À» ÇØ´çÇÏ´Â tty ¿¡ ¿¬°áÇÔÀ¸·Î¼­ ¿©±â¿¡ Á¢±ÙÇÒ ¼ö ÀÖ°Ô µÈ´Ù.

    • screen /dev/pts/n
    • screen /dev/ttyxx
    • minicom -o -p /dev/ttyxx - minicom ÇÁ·Î±×·¥Àº pts ÀåÄ¡¸¦ ´Ù·ê ¼ö ¾ø´Â °Í °°´Ù.
    • kermit - ½ÃÀÛÇÑ ÈÄ ÀåÄ¡¸¦ open ÇÏ°í connect ÇÑ´Ù.

  • Å͹̳Π- ÀåÄ¡=tty:ttyÀåÄ¡ÆÄÀÏ ÀÌ´Â UML ÀÌ ÇØ´ç ÀåÄ¡¸¦ ÁöÁ¤µÈ tty ¿¡ ¿¬°áÇϵµ·Ï ÇÑ´Ù (¾Æ·¡ÀÇ ¿¹Á¦´Â 1¹ø ÄܼÖÀ» È£½ºÆ®ÀÇ /dev/tty3 ¿¡ ¿¬°áÇÒ °ÍÀÌ´Ù).

    con1=tty:/dev/tty3
        


  • ¸¸¾à ÁöÁ¤ÇÑ tty °¡ tty/pty ½ÖÀÇ ½½·¹À̺ê¶ó¸é ´Ù¸¥ °÷¿¡¼­ ÇØ´ç pty ¸¦ ÀÌ¹Ì open ÇÑ »óÅ¿©¾ß µ¿ÀÛÇÒ °ÍÀÌ´Ù..?? - If the tty that you specify is the slave end of a tty/pty pair, something else must have already opened the corresponding pty in order for this to work.

  • xterm - ÀåÄ¡=xterm UML Àº xterm À» ½ÇÇà½ÃÅ°°í ÀåÄ¡°¡ xterm ¿¡ ¿¬°áµÉ °ÍÀÌ´Ù.

  • Æ÷Æ® - ÀåÄ¡=port:Æ÷Æ® ¹øÈ£ ÀÌ´Â UML ÀÇ ÀåÄ¡¸¦ È£½ºÆ®ÀÇ ÁöÁ¤µÈ Æ÷Æ®¿¡ ¿¬°áÇÒ °ÍÀÌ´Ù. 1¹ø ÄܼÖÀ» È£½ºÆ®ÀÇ 9000 ¹ø Æ÷Æ®¿¡ ¿¬°áÇϱâ À§Çؼ­´Â ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù:

    con1=port:9000
        


  • ¸ðµç ½Ã¸®¾ó ¶óÀÎÀ» 9000 ¹ø Æ÷Æ®¿¡ ¿¬°áÇÏ´Â °Íµµ µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î ÇÒ ¼ö ÀÖ´Ù:

    ssl=port:9000
        


    ÀÌ ÀåÄ¡¿¡ Á¢±ÙÇϱâ À§Çؼ­´Â telnet À» ÀÌ¿ëÇØ ÇØ´ç Æ÷Æ®·Î Á¢¼ÓÇÏ¸é µÈ´Ù. °¢°¢ÀÇ È°¼ºÈ­µÈ ÅÚ³Ý ¼¼¼ÇÀº ¼­·Î ´Ù¸¥ ÀåÄ¡¸¦ ¾ò°Ô µÈ´Ù. ¸¸¾à ¿¬°áµÈ ÀåÄ¡º¸´Ù ¸¹Àº ÅÚ³Ý Á¢¼ÓÀÌ ¿äûµÈ´Ù¸é ÀÌÈÄÀÇ ÅÚ³Ý ¼¼¼ÇµéÀº ±âÁ¸ÀÇ Á¢¼ÓÀÌ ÇØÁ¦µÇ°Å³ª (/etc/inittab ¿¡ ÀÇÇØ ÁöÁ¤µÈ) ´Ù¸¥ ÀåÄ¡°¡ È°¼ºÈ­ µÉ ¶§±îÁö ºí·°µÈ´Ù.

    ÀÌ·¯ÇÑ Ã¤³ÎÀº ¿©·¯ UML ÀåÄ¡µéÀ» Çϳª¿¡ ¿¬°áÇÒ ¼ö ÀÖ°Ô ÇÏ°í UML ºÎÆ® ·Î±×¸¦ ÀÐÁö ¾Ê°íµµ Á¢±ÙÇÏ´Â ¹æ¹ýÀ» ¾Ë ¼ö ÀÖ°Ô ÇÏ´Â µÎ°¡Áö ÀåÁ¡À» °¡Áø´Ù. ¶ÇÇÑ UML ÀÌ ³×Æ®¿öÅ©¿¡ ¹°·ÁÀÖÁö ¾ÊÀº »óÅ¿¡¼­µµ ¿ø°Ý ¸Ó½Å¿¡¼­ UML ¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ Á¸ÀçÇÑ´Ù. ÀÌ´Â UML ¿¡ °ø°³ÀûÀ¸·Î Á¢±Ù (public access) ÇÒ ¼ö ÀÖµµ·Ï ÇÒ ¶§ À¯¿ëÇÏ°Ô »ç¿ëµÉ ¼ö ÀÖ´Ù. ¿Ö³ÄÇÏ¸é ³×Æ®¿öÅ©¸¦ ÅëÇØ UML¿¡ Á¢±ÙÇÒ ¼ö ÀÖÁö¸¸ UML ÀÚü·Î´Â ³×Æ®¿öÅ©¿¡ ¿¬°áµÇÁö ¾ÊÀº »óÅÂÀ̱⠶§¹®¿¡ ÀÌ¿¡ ´ëÇÑ ¾î¶² ³×Æ®¿öÅ© ÇÊÅ͸µµµ ¼öÇàÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù.

    ¸¸¾à ¸ÞÀÎ ÄܼÖÀ» portal(Æ÷Æ®?) ¿¡ ¿¬°áÇÑ´Ù¸é UML ºÎÆÃÀº ¸ØÃçÀÖ°Ô (hang) µÉ °ÍÀÌ´Ù. ½ÇÁ¦·Î ÀÌ°ÍÀº ÅÚ³Ý Á¢¼ÓÀ» ±â´Ù¸®°Ô µÇ°í Á¢¼ÓÀÌ ÀÌ·ç¾îÁö´Â ½ÃÁ¡¿¡¼­ ºÎÆÃÀº °è¼Ó ÁøÇàµÉ °ÍÀÌ´Ù.

  • ÀÌ¹Ì Á¸ÀçÇÏ´Â ÆÄÀÏ µð½ºÅ©¸³ÅÍ - ÀåÄ¡=fd:ÆÄÀÏ µð½ºÅ©¸³ÅÍ ¸¸¾à UML ¸í·ÉÇà¿¡¼­ ÆÄÀÏ µð½ºÅ©¸³Å͸¦ ¼³Á¤ÇÑ´Ù¸é ÇØ´ç ÆÄÀÏ µð½ºÅ©¸³ÅÍ¿¡ UML ÀåÄ¡¸¦ ¿¬°áÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº ´ÙÀ½°ú °°ÀÌ ´Ù¸¥ ÄֵܼéÀ» ¼³Á¤ÇÏ°í ¸ÞÀÎ ÄܼÖÀ» Ç¥ÁØ ÀԷ°ú Ç¥ÁØ Ãâ·ÂÀ¸·Î ´Ù½Ã ÁöÁ¤ÇÏ´Â °æ¿ì¿¡ ÁÖ·Î »ç¿ëµÈ´Ù:

    con0=fd:0,fd:1 con=pts
        


  • ¾øÀ½ (nothing) - ÀåÄ¡=null ÀÌ°ÍÀº none °ú ´Þ¸® ÀåÄ¡¸¦ ¿­·ÁÀÖ°Ô ÇÑ´Ù. ÇØ´ç ÀåÄ¡¿¡ ´ëÇÑ Àб⠿¬»êÀº ºí·°µÇ°í ¾²±â ¿¬»êÀº ¼º°øÇÏ°Ô µÇÁö¸¸ ¾²¿©Áø ¸ðµç µ¥ÀÌÅÍ´Â ¹ö·ÁÁú °ÍÀÌ´Ù.

  • ¾øÀ½ (none) - ÀåÄ¡=none ÀÌ°ÍÀº ÀåÄ¡¸¦ »ç¶óÁö°Ô ÇÑ´Ù. devfs ¸¦ »ç¿ëÇÏ´Â °æ¿ì¶ó¸é, /dev ¹Ø¿¡ ÀåÄ¡µéÀÌ º¸ÀÌÁö ¾Ê°Ô µÈ´Ù. ±×·¸Áö ¾Ê´Ù¸é ÇØ´ç ÀåÄ¡¸¦ open ÇÏ·Á´Â ½Ãµµ´Â -ENODEV ¸¦ ¹ÝȯÇÒ °ÍÀÌ´Ù.

¶ÇÇÑ Äĸ¶ (,) ¸¦ ÅëÇØ ÀԷ ä³Î°ú Ãâ·Â ä³ÎÀ» ±¸ºÐÇÏ¿© ¼­·Î ´Ù¸£°Ô ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù.

ssl3=tty:/dev/tty2,xterm
  


À§ÀÇ °æ¿ì 3¹ø ½Ã¸®¾ó ¶óÀÎÀº È£½ºÆ®ÀÇ /dev/tty2 À» ÅëÇØ ÀÔ·ÂÀ» ¹Þ¾ÆµéÀÌ°í xterm ¿¡ Ãâ·ÂÀ» º¸¿©ÁÙ °ÍÀÌ´Ù. À§ÀÇ ¿¹Á¦´Â ¼³¸íÀ» À§ÇØ µç °ÍÀÏ »ÓÀÌ°í ÀÌ·¯ÇÑ ±â´ÉÀ» ÁÖ·Î »ç¿ëÇÏ´Â °ÍÀº À§¿¡¼­ ¼³¸íÇßµíÀÌ ¸ÞÀÎ ÄܼÖÀ» Ç¥ÁØ ÀÔÃâ·ÂÀ¸·Î ´Ù½Ã ÁöÁ¤ÇÒ ¶§ÀÌ´Ù.

¸¸¾à ¸ÞÀÎ ÄܼÖÀ» Ç¥ÁØ ÀÔÃâ·Â¿¡¼­ Á¦°ÅÇϱâ·Î Çß´Ù¸é ÃʱâÀÇ ºÎÆ® ¸Þ½ÃÁö´Â UML ÀÌ µ¿ÀÛÇÏ´Â Å͹̳Π»ó¿¡ Ç¥½ÃµÉ °ÍÀÌ´Ù. ÇÏÁö¸¸ ÄÜ¼Ö µå¶óÀ̹ö°¡ Á¤½ÄÀ¸·Î ÃʱâÈ­ µÇ¸é ºÎÆ® ¸Þ½ÃÁö´Â 0¹ø ÄַܼΠÁöÁ¤ÇÑ °÷À¸·Î Ãâ·ÂµÉ °ÍÀÌ´Ù. ÀÌÈÄÀÇ ¸ðµç Ãâ·ÂÀº ÇØ´ç ÀåÄ¡°¡ ¹Þ°ÔµÉ °ÍÀÌ´Ù.

5.3. ¿¹Á¦

ÀÌ·¯ÇÑ ±â´ÉÀ» ÀÌ¿ëÇØ ÇÒ ¼ö ÀÖ´Â ¸î°¡Áö Èï¹Ì·Î¿î ÀϵéÀÌ ÀÖ´Ù.

¸ÕÀú ¸Þ½ÃÁö°¡ ³ÑÃijª´Â ÄÜ¼Ö Å͹̳Π(bleeding console xterm) À» È£½ºÆ® °¡»ó Å͹̳ο¡ ¿¬°áÇÔÀ¸·Î¼­ Á¦°ÅÇÏ´Â ¹æ¹ýÀÌ´Ù:

con=pty con0=fd:0,fd:1
  


¾Æ·¡´Â È£½ºÆ®ÀÇ »ç¿ëµÇÁö ¾Ê´Â °¡»ó ÄܼÖÀ» UML ÀÌ »ç¿ëÇϵµ·Ï ÁöÁ¤ÇÏ´Â ¹æ¹ýÀÌ´Ù. ÀÌÈÄ¿¡ ÇØ´ç Äֿܼ¡ ´ëÇÑ Á¢±ÙÀº È£½ºÆ®ÀÇ ·Î±×ÀÎ ÇÁ·ÒÇÁÆ®°¡ ¾Æ´Ñ UML ·Î±×ÀÎ ÇÁ·ÒÇÁÆ®¸¦ º¸¿©ÁÙ °ÍÀÌ´Ù:

con1=tty:/dev/tty6
  


µÎ°³ÀÇ °¡»ó ¸Ó½ÅÀ» ½Ã¸®¾ó ¶óÀÎÀ» ÅëÇØ ÇÔ²² ¿¬°á½ÃÅ°´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù:

¸ÕÀú ÇϳªÀÇ UML À» pty ¿¡ ¿¬°áµÈ ½Ã¸®¾ó ¶óÀÎÀ¸·Î µ¿ÀÛ½ÃŲ´Ù.

ssl1=pty
  


ºÎÆ® ·Î±×¸¦ »ìÆì¼­ ¾î¶² pty ¸¦ ¾ò¾ú´ÂÁö ¾Ë¾Æº»´Ù. (ÀÌ ¿¹Á¦¿¡¼­´Â /dev/ptyp1 À» ¾ò¾ú´Ù°í °¡Á¤ÇÑ´Ù)

¶Ç´Ù¸¥ UML À» ÇØ´çÇÏ´Â tty ¿¡ ½Ã¸®¾ó ¶óÀÎÀ» ¿¬°áÇÏ¿© ºÎÆÃÇÑ´Ù

ssl1=tty:/dev/ttyp1
  


·Î±×ÀÎ Çؼ­ ÇØ´ç ½Ã¸®¾ó ¶óÀο¡ getty °¡ ¿¬°áµÇ¾î ÀÖÁö ¾ÊÀ½À» È®ÀÎÇÏ°í, minicom °ú °°Àº Å͹̳ΠÇÁ·Î±×·¥À» ÇØ´ç ½Ã¸®¾ó ¶óÀÎÀ¸·Î ¿¬°áÇÏ¸é ´Ù¸¥ °¡»ó ¸Ó½ÅÀÇ ·Î±×ÀÎ ÇÁ·ÒÇÁÆ®¸¦ º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù.


6. ³×Æ®¿öÅ© ¼³Á¤Çϱâ

À̹ø Àý¿¡¼­´Â ´Ù¾çÇÑ Àü¼Û ¹æ¹ýÀÇ ¼³Á¤°ú UML ÇÁ·Î±×·¥À» È£½ºÆ®³ª ·ÎÄà ³×Æ®¿öÅ© »óÀÇ ´Ù¸¥ ¸Ó½Åµé, ±×¸®°í ÀÎÅÍ³Ý »óÀÇ ¸Ó½Åµé¿¡¼­ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ¼³Á¤ÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.

Ä¿³Î ¹öÀü 2.4.5 ¿¡ À̸£·¯ UML ³×Æ®¿öÅ·Àº ¼³Á¤À» °£ÆíÇÏ°Ô ÇÏ°í ¹ö±×¸¦ ¼öÁ¤ÇÏ°í »õ·Î¿î ±â´ÉÀ» Ãß°¡ÇÏ¿© ¿ÏÀüÈ÷ »õ·Î ¾²¿©Á³´Ù.

»õ·Î¿î ÇïÆÛ ÇÁ·Î±×·¥À¸·Î uml_net ÀÌ À־, È£½ºÆ®ÀÇ ¼³Á¤À» µµ¿ÍÁÖ¸ç À̸¦ ½ÇÇàÇϱâ À§Çؼ­´Â ¼öÆÛ À¯Àú ±ÇÇÑÀÌ ÇÊ¿äÇÏ´Ù.

ÇöÀç´Â UML °¡»ó ¸Ó½ÅÀÌ ´Ù¸¥ È£½ºÆ®¿Í ÆÐŶÀ» ±³È¯Çϱâ À§ÇÑ ¹æ¹ýÀ¸·Î 5 °¡ÁöÀÇ Àü¼Û ŸÀÔÀÌ ÀÖ´Ù:

  • ethertap
  • TUN/TAP
  • ¸ÖƼ ij½ºÆ®
  • switch ´ë¸ó
  • slip
  • slirp
  • pcap

TUN/TAP, ethertap, slip, slirp Àü¼ÛÀº UML ÇÁ·Î±×·¥°ú È£½ºÆ® °£ÀÇ ÆÐŶ ±³È¯À» °¡´ÉÇÏ°Ô ÇÑ´Ù. À̵éÀº È£½ºÆ®¿¡ Á÷Á¢ ¿¬°áµÇ°Å³ª È£½ºÆ®°¡ ´Ù¸¥ °¡»ó ȤÀº ½ÇÁ¦ ¸Ó½Å¿¡ ´ëÇÑ Á¢±Ù ¹æ¹ýÀ» Á¦°øÇÏ´Â ¶ó¿ìÅͷμ­ µ¿ÀÛÇϵµ·Ï ÇÑ´Ù.

pcap Àü¼ÛÀº ÅëÇÕÀûÀÎ Àбâ Àü¿ë ÀÎÅÍÆäÀ̽º·Î¼­ libpcap ÀÇ ÆÄÀÏÀ» ÀÌ¿ëÇÏ¿© È£½ºÆ®ÀÇ ÀÎÅÍÆäÀ̽º¿¡¼­ ÆÐŶÀ» ¸ð¾Æ¼­ ÇÊÅ͸µÇÑ´Ù. ÀÌ°ÍÀº ¹Ì¸® ¼³Á¤µÈ Æ®·¡ÇÈ ¸ð´ÏÅͳª ½º´ÏÆÛ¸¦ ±¸ÃàÇϴµ¥ À¯¿ëÇÏ´Ù.

´ë¸ó°ú ¸ÖƼ ij½ºÆ® Àü¼ÛÀº ´Ù¸¥ °¡»ó ¸Ó½Å¿¡ ´ëÇÑ ¿ÏÀüÇÑ °¡»ó ³×Æ®¿öÅ©¸¦ Á¦°øÇÑ´Ù. ÀÌ·¯ÇÑ ³×Æ®¿öÅ©´Â ÇϳªÀÇ °¡»ó ¸Ó½ÅÀÌ °ÔÀÌÆ® ¿þÀ̷μ­ µ¿ÀÛÇÏÁö ¾Ê´Â ÇÑ ½ÇÁ¦ÀÇ ³×Æ®¿öÅ©¿Í ¿ÏÀüÈ÷ ºÐ¸®µÈ´Ù.

ÀÌ·¸°Ô ¸¹Àº Àü¼Û ŸÀÔ Áß¿¡¼­ ¾î¶°ÇÑ °ÍÀ» »ç¿ëÇÏ¿©¾ß ÇÒ±î? ¿©±â¿¡ °¢ »óȲ¿¡ ¸Â°Ô »ç¿ëÇÒ ¼ö Àִ ŸÀÔ¿¡ ´ëÇÑ ¼³¸íÀÌ ÀÖ´Ù:

  • ethertap - È£½ºÆ®ÀÇ ³×Æ®¿öÅ·¿¡ Á¢±ÙÇÒ ¼ö ÀÖ°í 2.2 ¹öÀü¿¡¼­ µ¿ÀÛÇÏ´Â °æ¿ì
  • TUN/TAP - È£½ºÆ®ÀÇ ³×Æ®¿öÅ·¿¡ Á¢±ÙÇÒ ¼ö ÀÖ°í 2.4 ¹öÀü¿¡¼­ µ¿ÀÛÇÏ´Â °æ¿ì. ¶ÇÇÑ TUN/TAP Àü¼ÛÀº ¹Ì¸® ¼³Á¤µÈ ÀåÄ¡¸¦ »ç¿ëÇÒ ¼ö ÀÖ°í, setuid °¡ ¼³Á¤µÈ uml_net ÇÁ·Î±×·¥À» ÀÌ¿ëÇÏÁö ¾Ê¾Æµµ µÇ¹Ç·Î º¸¾È »óÀÇ ÀÌÁ¡ÀÌ ÀÖ´Ù.
  • ¸ÖƼij½ºÆ® - ¼ø¼öÇÑ °¡»ó ³×Æ®¿öÅ©¸¦ ¿øÇϸç UML ÀÌ¿ÜÀÇ ´Ù¸¥ ¾î¶² °Íµµ ¼³Á¤ÇÏ°í ½ÍÁö ¾ÊÀº °æ¿ì
  • switch ´ë¸ó - ¼ø¼öÇÑ °¡»ó ³×Æ®¿öÅ©¸¦ ¿øÇÏ¸ç ¼º´É »óÀÇ ÀÌÁ¡ÀÌ Áß¿äÄ¡ ¾ÊÀº °æ¿ì
  • slip - ethertap À̳ª TUN/TAP °¡ µ¿ÀÛÇÏÁö ¾Ê°í slip ¹é¿£µå¸¦ µ¿ÀÛ½Ãų Ưº°ÇÑ ÀÌÀ¯°¡ ¾ø´Â °æ¿ì
  • slirp - È£½ºÆ®ÀÇ ³×Æ®¿öÅ©¸¦ ¼³Á¤ÇÑ ±ÇÇÑÀ» °¡Áö°í ÀÖÁö ¾Ê°Å³ª UML ¿¡ IP ¸¦ ÇÒ´çÇÏ°í ½ÍÁö ¾ÊÀº °æ¿ì
  • pcap - ½ÇÁ¦·Î ³×Æ®¿öÅ©¿¡ ¿¬°áµÉ ÇÊ¿ä°¡ ¾øÀÌ È£½ºÆ®ÀÇ Æ®·¡ÇÈÀ» °¨½ÃÇÏ°í ½ÍÀº °æ¿ì

ethertap Àº ÀÌÁ¦ 2.4 ¹öÀü¿¡¼­µµ ÀÌ¿ë°¡´ÉÇÏ¸ç ½ÇÁ¦·Î Àß µ¿ÀÛÇÑ´Ù. ÇÏÁö¸¸ ethertap Àº °ø½ÄÀûÀ¸·Î 2.4 ¹öÀü¿¡¼­ Á¦¿ÜµÇ¾ú°í ¼º´É»óÀÇ ÀÌÀ¯·Î Çؼ­ TUN/TAP ÀÌ ´õ ¼±È£µÈ´Ù. ¶ÇÇÑ ethertap ¿¡¼­´Â ¸ðµç ÆÐŶÀ» ó¸®ÇÒ ¶§ ¸¶´Ù ·çÆ® »ç¿ëÀÚ ±ÇÇÑÀÌ ÇÊ¿äÇÑ ¹Ý¸é TUN/TAP ¿¡¼­´Â °¡²û¾¿¸¸ ÇÊ¿äÇÏ°Ô µÈ´Ù. ±×·¯¹Ç·Î ¾ÇÀǸ¦ °¡Áø UML »ç¿ëÀÚ°¡ ÇïÆÛ ÇÁ·Î±×·¥ÀÇ ·çÆ® ±ÇÇÑÀ» ¾òÀ¸·Á°í ÇÏ´Â ½Ãµµ¿¡ ´ëÇÑ ±âȸ¸¦ ÁÙÀÌ°Ô µÇ¹Ç·Î ¾à°£ÀÇ º¸¾È »óÀÇ ÀÌÁ¡µµ ¾òÀ» ¼ö ÀÖ´Ù.

6.1. ÀÏ¹Ý ¼³Á¤

¸ÕÀú UML ³»ÀÇ °¡»ó ³×Æ®¿öÅ©¸¦ ¼³Á¤ÇØ¾ß ÇÑ´Ù. ÀÌ ½ÎÀÌÆ®¿¡¼­ ¹Ì¸® ºôµåµÈ Ä¿³ÎÀ» ¹Þ¾Æ¼­ »ç¿ëÇÑ´Ù¸é ÀÌ¹Ì ¸ðµç °ÍÀÌ ¼³Á¤µÇ¾î ÀÖÀ» °ÍÀÌ´Ù. ¸¸¾à ½º½º·Î Ä¿³ÎÀ» ºôµåÇÏ´Â °æ¿ì¶ó¸é "Network device menu" ¾Æ·¡ÀÇ "Network device menu" °ú ¼¼°¡Áö Àü¼Û ŸÀÔ¿¡ ´ëÇÑ ¿É¼ÇÀ» ¼±ÅÃÇÏÀÚ.

´ÙÀ½ ´Ü°è´Â °¡»ó ¸Ó½Å¿¡°Ô ³×Æ®¿öÅ© ÀåÄ¡¸¦ Á¦°øÇÏ´Â ÀÏÀÌ´Ù. ÀÌ°ÍÀº Ä¿³ÎÀÇ ¸í·ÉÇà ¿É¼ÇÀ» ÅëÇØ °¡´ÉÇϸç ÀϹÝÀûÀÎ ÇüÅ´ ¾Æ·¡¿Í °°´Ù:

eth <n> = <Àü¼Û ŸÀÔ> , <Àü¼Û ŸÀÔ¿¡ µû¸¥ ÀÎÀÚ>
   


¿¹¸¦ µé¾î °¡»óÀÇ ÀÌ´õ³Ý ÀåÄ¡¸¦ È£½ºÆ®ÀÇ ethertap ÀåÄ¡¿¡ ¿¬°á(attach)Çϱâ À§Çؼ­´Â ´ÙÀ½°ú °°ÀÌ ÇÒ ¼ö ÀÖ´Ù:

eth0=ethertap,tap0,fe:fd:0:0:0:1,192.168.0.254
   


À§ÀÇ °æ¿ì °¡»ó ¸Ó½ÅÀÇ eth0 ÀåÄ¡¸¦ È£½ºÆ®ÀÇ /dev/tap0 ÀåÄ¡¿¡ ¿¬°áÇÏ°í, eth0 ÀåÄ¡ÀÇ ÀÌ´õ³Ý ÁÖ¼Ò¿Í È£½ºÆ®ÀÇ tap0 ÀåÄ¡ÀÇ IP ÁÖ¼Ò¸¦ ÇÒ´çÇÑ´Ù.

¿©±â¼­ ÁÖÀÇÇÒ °ÍÀº È£½ºÆ® ÃøÀÇ tap ÀåÄ¡¿¡ ÇÒ´çÇÑ IP ÁÖ¼Ò¿Í UML ³»ÀÇ eth ÀåÄ¡¿¡ ÇÒ´çÇÑ IP ÁÖ¼Ò°¡ ¹Ýµå½Ã ´Þ¶ó¾ß ÇÑ´Ù´Â Á¡ÀÌ´Ù. ¸¸¾à IP ÁÖ¼Ò°¡ ºÎÁ·ÇÏ¿© UML ´ç 2 °³ÀÇ IP ÁÖ¼Ò¸¦ ÇÒ´çÇÏ°í ½ÍÁö ¾ÊÀº °æ¿ì¿¡´Â È£½ºÆ® ÃøÀÇ tap ÀåÄ¡¿¡ È£½ºÆ®ÀÌ eth ÀåÄ¡¿Í °°Àº IP ÁÖ¼Ò¸¦ ÇÒ´çÇÒ ¼ö ÀÖ´Ù. ³»ºÎÀûÀ¸·Î °¢°¢ÀÇ UML Àº ÀÚ½ÅÀÇ eth ÀåÄ¡¿¡ ´ëÇØ °íÀ¯ÇÑ IP ÁÖ¼Ò¸¦ °¡Á®¾ß ÇÑ´Ù. ¶ÇÇÑ UML ÀåÄ¡¿¡°Ô »ç¼³ IP (192.168.x.x ȤÀº 10.x.x.x) ¸¦ ÇÒ´çÇÏ°í È£½ºÆ®¿¡¼­ À̸¦ ¸Å½ºÄ¿·¹À̵ù(masquerading) ÇÏ´Â ¹æ¹ýµµ °¡´ÉÇÏ´Ù. ÀÌ ¹æ¹ýÀ» ÀÌ¿ëÇÏ¸é ¿ÜºÎ·Î ³ª°¡´Â ÆÐŶ¿¡ ´ëÇؼ­´Â Àß µ¿ÀÛÇÏÁö¸¸ Æ÷Æ® Æ÷¿öµù°ú °°ÀÌ ³»ºÎ·Î µé¾î¿À´Â ÆÐŶ¿¡ ´ëÇؼ­´Â µ¿ÀÛÇÏÁö ¾Ê°Ô µÈ´Ù.

±×¸®°í È£½ºÆ® ÃøÀÇ ÀåÄ¡µéÀ» ¼³Á¤ÇÒ ¶§´Â, ±×°ÍÀÌ °ÔÀÌÆ® ¿þÀÌ·Î µ¿ÀÛÇÑ´Ù´Â °ÍÀ» ¸í½ÉÇÏÀÚ. ÇØ´ç ÀåÄ¡¿¡ ´ëÇØ ·ÎÄÿ¡¼­ ping À» º¸³»¸é ÀÀ´äÀ» ÇÏÁö¸¸, ÀÌ°ÍÀº È£½ºÆ® ÀåÄ¡À̱⠶§¹®¿¡ ¾Æ¹« Àǹ̰¡ ¾ø´Ù. Áï, ÀÌ ÀåÄ¡¸¦ ÅëÇØ ping À» º¸³»´õ¶óµµ UML °ú Åë½ÅÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó´Â ¸»ÀÌ´Ù.

¶ÇÇÑ UML ÀÌ µ¿ÀÛÇÏ´Â Áß¿¡µµ µ¿ÀûÀ¸·Î ÀåÄ¡¸¦ Ãß°¡Çϰųª Á¦°ÅÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº °ü¸® ÄÜ¼Ö ºÎºÐÀ» ÂüÁ¶Çϱ⠹ٶõ´Ù.

´ÙÀ½¿¡ ³ª¿À´Â Àý¿¡¼­´Â °¢°¢ÀÇ ¹æ¹ý¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸íÀ» ÇÒ °ÍÀÌ´Ù.

ÀÏ´Ü ÀåÄ¡¸¦ ¾î¶»°Ô ¼³Á¤ÇÒ Áö °áÁ¤Çß´Ù¸é, UML À» ºÎÆýÃÅ°°í ·Î±×ÀÎ ÇÏ¿© UML ÃøÀÇ ÀåÄ¡¸¦ ¼³Á¤ÇÑ µÚ, ¿ÜºÎ·Î ³ª°¡´Â ¶ó¿ìÆà Á¤º¸¸¦ ¼³Á¤ÇÑ´Ù. ÀÌ ¶§ºÎÅÍ ³×Æ®¿öÅ© »óÀÇ ´Ù¸¥ ¸Ó½Åµé(°¡»óÀÌ°Ç ½ÇÁ¦ ¸Ó½ÅÀÌ°Ç)°ú Åë½ÅÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

¸¸¾à UML ³»ÀÇ ifconfig ¸í·ÉÀÌ ½ÇÆÐÇÏ°í ³×Æ®¿öÅ© ±â´ÉÀÌ µ¿ÀÛÇÏÁö ¾Ê´Â´Ù¸é, dmesg ¸í·ÉÀ» ½ÇÇàÇÏ¿© ¸Ç ¸¶Áö¸· ºÎºÐÀÇ Ä¿³Î ·Î±×¸¦ »ìÆ캸±â ¹Ù¶õ´Ù. º¸ÅëÀÇ ¹®Á¦µéÀº ¿©±â¿¡¼­ ¿øÀÎÀ» ãÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù.

6.2. »ç¿ëÀÚ ¿µ¿ª µ¥¸ó

¾Æ¸¶µµ setuid µµ¿ì¹Ì ÇÁ·Î±×·¥À̳ª, ½ºÀ§Ä¡ µ¥¸ó, ȤÀº µÑ ´Ù°¡ ÇÊ¿äÇÒ °ÍÀÌ´Ù. À̵éÀº RPM °ú deb ¸¦ ÅëÇØ ¼³Ä¡µÇ¹Ç·Î, µÑ ÁßÀÇ Çϳª¸¦ ÅëÇØ ¼³Ä¡Çß´Ù¸é ÀÌ ÀýÀÇ ³ª¸ÓÁö ºÎºÐÀº °Ç³Ê¶Ù¾îµµ ÁÁ´Ù.

±×·¸Áö ¾Ê´Ù¸é CVS ¿¡¼­ üũ ¾Æ¿ôÇؼ­ ºôµåÇÑ ÈÄ¿¡ ¼³Ä¡ÇØ¾ß ÇÑ´Ù. µµ¿ì¹Ì ÇÁ·Î±×·¥Àº uml_net ÀÌ°í CVS ³»ÀÇ /tools/uml_net ¿¡¼­ ¹ÞÀ» ¼ö ÀÖÀ¸¸ç, ½ºÀ§Ä¡ µ¥¸óÀº uml_switch ÀÌ°í CVS ³»ÀÇ /tools/uml_router ¿¡¼­ ¹ÞÀ» ¼ö ÀÖ´Ù. À̵éÀº ¸ðµÎ ´Ü¼øÈ÷ make ¸í·ÉÀ» ÅëÇؼ­ ºôµåµÈ´Ù. À̵éÀº ´ç½ÅÀÇ path ¿¡ ÁöÁ¤µÈ µð·ºÅ丮 ³»¿¡ ¼³Ä¡µÇ¾î¾ß ÇÑ´Ù - /usr/bin À» Ãßõ. ±×¸®°í ¹«¾ùº¸´Ù uml_net Àº setuid root ±ÇÇÑÀÌ ÇÊ¿äÇÏ´Ù.

6.3. ÀÌ´õ³Ý ÁÖ¼Ò ÁöÁ¤Çϱâ

ÀÌÈÄÀÇ TUN/TAP, ethertap, µ¥¸ó ÀÎÅÍÆäÀ̽º¿¡ ´ëÇÑ ºÎºÐ¿¡¼­ °¡»óÀÇ ÀÌ´õ³Ý ÀåÄ¡¿¡ ´ëÇØ Çϵå¿þ¾î ÁÖ¼Ò¸¦ ÁöÁ¤ÇÏ´Â °ÍÀ» º¸°Ô µÉ °ÍÀÌ´Ù. ÀÌ°ÍÀº ÀϹÝÀûÀ¸·Î ºÒÇÊ¿äÇÑ ºÎºÐÀÌ´Ù. ¸¸¾à Çϵå¿þ¾î ÁÖ¼Ò¸¦ ÁöÁ¤ÇØ¾ß Çϴ Ưº°ÇÑ ÀÌÀ¯¸¦ °¡Áö°í ÀÖÁö¸¸ ¾Ê´Ù¸é ÁöÁ¤ÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. ¸í·ÉÇà¿¡¼­ Çϵå¿þ¾î ÁÖ¼Ò¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é µå¶óÀ̹ö´Â ÀåÄ¡ÀÇ IP ÁÖ¼Ò¸¦ ÅëÇØ ÀÚµ¿ÀûÀ¸·Î Çϵå¿þ¾î ÁÖ¼Ò¸¦ ÇÒ´çÇÑ´Ù. ¸¸¾à ÀåÄ¡ÀÇ IP ÁÖ¼Ò°¡ nn.nn.nn.nn ÀÎ °æ¿ì¿¡´Â fe:fd:nn:nn:nn:nn ¿Í °°Àº ÇüÅ·ΠÁÖ¼Ò°¡ ÇÒ´çµÈ´Ù. °ÅÀÇ ´ëºÎºÐÀÇ °æ¿ì ÀÌ ¹æ¹ýÀ» ÅëÇØ ÀåÄ¡¿¡°Ô °íÀ¯ÇÑ Çϵå¿þ¾î ÁÖ¼Ò¸¦ ºÎ¿©ÇÏ´Â °ÍÀÌ °¡´ÉÇÏÁö¸¸ ´ÙÀ½°ú °°Àº ¿¹¿Ü »çÇ×ÀÌ ÀÖ´Ù:

  • ¶Ç´Ù¸¥ °¡»ó ÀÌ´õ³Ý ÀåÄ¡µéÀÌ °°Àº ³×Æ®¿öÅ© »ó¿¡ ÀÖ°í À̵éÀÌ UML IP ÁÖ¼Ò ±â¹ÝÀÇ ¹æ½Ä(scheme)°ú Ãæµ¹À» ÀÏÀ¸Å³ ¸¸ÇÑ ´Ù¸¥ ¹æ½ÄÀ» »ç¿ëÇÏ¿© Çϵå¿þ¾î ÁÖ¼Ò¸¦ ÇÒ´ç¹ÞÀº °æ¿ì
  • IP ³×Æ®¿öÅ·¿¡ »ç¿ëÇÏÁö ¾ÊÀ» ÀåÄ¡À̱⠶§¹®¿¡ IP ÁÖ¼Ò¸¦ ÇÒ´çÇÏÁö ¾ÊÀº °æ¿ì

Çϵå¿þ¾î ÁÖ¼Ò¸¦ µå¶óÀ̹ö¿¡¼­ ÀÚµ¿À¸·Î ÇÒ´çÇϵµ·Ï ÇÏ·Á¸é, ÀåÄ¡°¡ »ç¿ëµÇ±â Àü¿¡ ÀåÄ¡¿¡ ´ëÇÑ IP ÁÖ¼Ò°¡ ¸ÕÀú ÇÒ´çµÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. UML ¿¡¼­´Â ´ÙÀ½°ú °°ÀÌ ÇÒ ¼ö ÀÖ´Ù:

UML# ifconfig eth0 192.168.0.250 up
   


½º½º·Î Çϵå¿þ¾î ÁÖ¼Ò¸¦ ÁöÁ¤ÇÏ´Â °æ¿ì¿¡´Â ù¹ø° ¹ÙÀÌÆ® °ªÀÌ Â¦¼ö°¡ µÇµµ·Ï ÇØ¾ß ÇÑ´Ù. ù¹ø° ¹ÙÀÌÆ®°¡ Ȧ¼öÀÎ °æ¿ì¿¡´Â ºê·Îµå ij½ºÆ® ÁÖ¼Ò¸¦ ¸»ÇÏ´Â °ÍÀ̱⠶§¹®¿¡ ÀåÄ¡¿¡ ÇÒ´çÇÏ¸é ¾ÈµÈ´Ù.

6.4. UML ÀÎÅÍÆäÀ̽º ¼³Á¤

ÀÏ´Ü ³×Æ®¿öÅ© ÀåÄ¡°¡ ¸í·ÉÇà ¿É¼ÇÀ¸·Î ÁöÁ¤µÇ¸é UML À» ºÎÆÃÇÏ°í ·Î±×ÀÎ ÇÑ´Ù.

¸ÕÀú ÀåÄ¡¸¦ ½ÃÀÛ½ÃŲ´Ù.

UML# ifconfig ethn ip-address up
   


ÀÌÁ¦ºÎÅÍ È£½ºÆ®¿Í ping ÀÌ °¡´ÉÇØ Áø´Ù.

¿ÜºÎÀÇ ³×Æ®¿öÅ©¿¡ ¿¬°áÇϱâ À§Çؼ­´Â ±âº» ¶ó¿ìÅ͸¦ È£½ºÆ®·Î ¼³Á¤ÇÑ´Ù.

UML# route add default gw <È£½ºÆ®ÀÇ IP ÁÖ¼Ò>
   


Áï, È£½ºÆ®ÀÇ IP ÁÖ¼Ò°¡ 192.168.0.4 ¶ó¸é ¾Æ·¡¿Í °°ÀÌ ¼³Á¤ÇÑ´Ù:

UML# route add default gw 192.168.0.4
   


ÀÌ ¹®¼­¿¡¼­´Â ³×Æ®¿öÅ© ¶ó¿ìÆà Á¤º¸¸¦ ¼³Á¤ÇÒ ¶§ ÁÖ·Î ·ÎÄà ³×Æ®¿öÅ©¸¦ »ç¿ëÇϵµ·Ï ÃßõÇÏ°í ÀÖ´Ù. ÀÌ°ÍÀº À߸øµÈ °ÍÀÌ´Ù. UML Àº ·ÎÄà ³×Æ®¿öÅ© ³»ÀÇ ¸Ó½ÅµéÀÇ Çϵå¿þ¾î ÁÖ¼Ò¸¦ ¾Ë¾Æ³»±â À§ÇØ È£½ºÆ®¿¡ ¿¬°áµÈ ÀåÄ¡¸¦ ÅëÇØ arp ¿äûÀ» º¸³»Áö¸¸ ±âº»ÀûÀ¸·Î ÇϳªÀÇ ÀåÄ¡¿¡ µÎ °³ÀÇ ³ëµå(È£½ºÆ®¿Í UML)°¡ ¿¬°áµÈ ÇüÅÂÀ̱⠶§¹®¿¡ arp ¿äûÀº ³×Æ®¿öÅ©·Î Àü¼ÛµÉ ¼ö ¾ø°í ¾î¶°ÇÑ ÀÀ´äµµ ¹ÞÀ» ¼ö ¾ø°Ô µÈ´Ù. ±×·¡¼­ UML ¿¡¼­´Â ±×Àú ¸ðµç ÆÐŶÀ» È£½ºÆ®¿¡°Ô ³Ñ°ÜÁÖ°í È£½ºÆ®¿¡¼­ ¸ðµç ÀÏÀ» ÇØ ÁÖ±æ ¹Ù¶ö °ÍÀÌ´Ù.

ÁÖÀÇ: ¸¸¾à ½ÇÁ¦ ÀÌ´õ³Ý »óÀÇ ´Ù¸¥ È£½ºÆ®µé°ú Åë½ÅÇÒ ¼ö ¾ø´Ù¸é, ¾Æ¸¶µµ ÀÚµ¿ ¼³Á¤µÈ ³×Æ®¿öÅ© ¶ó¿ìÆ® Á¤º¸ ¶§¹®ÀÏ °ÍÀÌ´Ù. route -n ¸í·ÉÀ» ½ÇÇàÇÏ¸é ´ÙÀ½°ú °°Àº ³»¿ëÀÌ Ç¥½ÃµÈ´Ù:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0      0   eth0
   


¸¶½ºÅ© °ªÀÌ 255.255.255.255 °¡ ¾Æ´Ï¸é, È£½ºÆ®¿¡ ´ëÇÑ ¶ó¿ìÆà Á¤º¸·Î ´ëüÇÑ´Ù.

UML# route del -net 192.168.0.0 dev eth0 netmask 255.255.255.0

UML# route add -host 192.168.0.4 dev eth0
   


ÀÌ°Í°ú ±âº» ¶ó¿ìÅ͸¦ È£½ºÆ®·Î ¼³Á¤Çϸé, UML ¿¡¼­µµ ÀÌ´õ³Ý »óÀÇ ´Ù¸¥ È£½ºÆ® µé°ú Åë½ÅÇÒ ¼ö ÀÖ°Ô µÈ´Ù.

6.5. ¸ÖƼij½ºÆ®

¿©·¯ °³ÀÇ UML °£ÀÇ °¡»ó ³×Æ®¿öÅ©¸¦ ¼³Á¤ÇÏ´Â °¡»ó ½¬¿î ¹æ¹ýÀº ¸ÖƼij½ºÆ® Àü¼ÛÀ» ÀÌ¿ëÇÏ´Â °ÍÀÌ´Ù. ÀÌ°ÍÀº Harald Welte °¡ ÀÛ¼ºÇÏ¿´À¸¸ç, UML ¹öÀü 2.4.5-5um ÀÌÈÄ¿¡¼­ »ç¿ë°¡´ÉÇÏ´Ù. À̸¦ À§Çؼ­´Â ½Ã½ºÅÛÀÇ Ä¿³ÎÀÌ ¸ÖƼij½ºÆ®¸¦ Áö¿øÇØ¾ß Çϸç È£½ºÆ®ÀÇ ³×Æ®¿öÅ© ÀåÄ¡¿¡¼­µµ ¸ÖƼij½ºÆ®¸¦ Áö¿øÇØ¾ß ÇÑ´Ù. ¿©±â¿¡¼­´Â eth0 À» °¡Áö°í ¼³¸íÇßÁö¸¸ ÀϹÝÀûÀ¸·Î È£½ºÆ® ³»¿¡ ÀÌ´õ³Ý ÀåÄ¡°¡ ¾ø´Â °æ¿ì¿¡´Â UML »ó¿¡¼­ ÀåÄ¡¸¦ È°¼ºÈ­ ½Ãų ¶§ (bring up) ÀÌ»óÇÑ ¿¡·¯ ¸Þ½ÃÁö¸¦ º¸°Ô µÉ °ÍÀÌ´Ù.

À̸¦ »ç¿ëÇϱâ À§Çؼ­´Â ´ÙÀ½°ú °°Àº ¸í·ÉÇà ¿É¼ÇÀ» ÁÖ¾î UML À» ½ÃÀÛÇÑ´Ù:

eth0=mcast
   


±×¸®°í ·Î±×ÀÎ Çؼ­, °¢°¢ÀÇ ¸Ó½Å¿¡ ´ëÇØ °íÀ¯ÇÑ IP ÁÖ¼Ò¸¦ ÁÖ¾î ÀåÄ¡¸¦ ¼³Á¤ÇÑ´Ù.

UML1# ifconfig eth0 192.168.0.254

UML2# ifconfig eth0 192.168.0.253
   


±×·¯¸é ÀÌÁ¦ºÎÅÍ °¢ ÀåÄ¡µé °£¿¡ »óÈ£ Åë½ÅÀÌ °¡´ÉÇÒ °ÍÀÌ´Ù.

ÀÌ Àü¼Û ŸÀÔ¿¡ ´ëÇÑ ¿ÏÀüÇÑ ¸í·ÉÇà ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù:

ethn=mcast,<ÀÌ´õ³Ý ÁÖ¼Ò>,<¸ÖƼij½ºÆ® ÁÖ¼Ò>,<¸ÖƼij½ºÆ® Æ÷Æ®>,ttl
   


ÀÌ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ »çÇ×°ú, ¸î °¡Áö ´Ù¸¥ À̽´µéÀ» ´Ù·é Harald ÀÇ ¿øº» README ¹®¼­´Â [http]¿©±â ¿¡¼­ º¼ ¼ö ÀÖ´Ù.

6.6. uml_helper ¸¦ ÀÌ¿ëÇÑ TUN/TAP

TUN/TAP Àº 2.4 ¹öÀü¿¡¼­ È£½ºÆ®¿Í Åë½ÅÇÏ´Â °æ¿ì¿¡ »ç¿ëÇÏ´Â ´õ ³ªÀº ¹æ¹ýÀÌ´Ù. TUN/TAP ¹é¿£µå´Â 2.4.9-3um ¹öÀüºÎÅÍ UML ³»¿¡ Æ÷ÇԵǾú´Ù.

ÀÌ°ÍÀ» ¼³Á¤ÇÏ°í µ¿ÀÛ½ÃÅ°´Â °¡Àå ½¬¿î ¹æ¹ýÀº setuid °¡ ¼³Á¤µÈ uml_net À̶ó´Â µµ¿ì¹Ì ÇÁ·Î±×·¥À» ÀÌ¿ëÇÏ¿© È£½ºÆ®¸¦ ¼³Á¤ÇÏ´Â °ÍÀÌ´Ù. ÀÌ°ÍÀº ÇÊ¿äÇÑ °æ¿ì tun.o ¸ðµâÀ» insmod ÇÏ°í, ÀåÄ¡¸¦ ¼³Á¤ÇÑ ÈÄ¿¡ IP Æ÷¿öµù, ¶ó¿ìÆÃ, ÇÁ·Ï½Ã arp µîÀ» ¼³Á¤ÇÑ´Ù. óÀ½ UML ³×Æ®¿öÅ·À» »ç¿ëÇÏ´Â °æ¿ì¿¡´Â ¸ÕÀú ÀÌ ¹æ¹ýÀ» »ç¿ëÇϱ⸦ ±ÇÇÑ´Ù. ¸¸¾à ÀÌ setuid µµ¿ò¹Ì ÇÁ·Î±×·¥À¸·Î ÀÎÇÑ º¸¾È »óÀÇ ¹®Á¦¸¦ °í·ÁÇÏ´Â °æ¿ì¿¡´Â, ¿ì¼± À̸¦ ÀÌ¿ëÇÏ¿© ¼³Á¤ ÀÛ¾÷°ú µ¿ÀÛÀ» ½ÃŲ ÈÄ, ´ÙÀ½ Àý¿¡ ³ª¿À´Â uml_net À» »ç¿ëÇÏÁö ¾Ê°í ¹Ì¸® ¼³Á¤µÈ tap ÀåÄ¡¸¦ »ç¿ëÇÏ´Â ¹ýÀ» Àо±â ¹Ù¶õ´Ù.

¸¸¾à È£½ºÆ® Ãø ÀåÄ¡ÀÇ IP ÁÖ¼Ò¸¦ ÁöÁ¤ÇÑ °æ¿ì¿¡´Â, uml_net µµ¿ì¹Ì ÇÁ·Î±×·¥Àº È£½ºÆ® ¼³Á¤¿¡ ÇÊ¿äÇÑ ¸ðµç ÀÛ¾÷À» ó¸®ÇØ ÁÙ °ÍÀÌ´Ù - ¿ÀÁ÷ ÇÊ¿äÇÑ °ÍÀº Ä¿³Î¿¡ Æ÷ÇÔµÈ ÇüÅÂÀ̵ç tun.o ¸ðµâÀÇ ÇüÅÂÀ̵ç Ä¿³Î¿¡¼­ TUN/TAP À» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ¼³Á¤ÇÏ´Â ÀÏÀÌ´Ù.

TUN/TAP ÀåÄ¡¿¡ ÀåÄ¡¸¦ ¿¬°áÇÏ´Â ¸í·ÉÇà ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù:

eth <n> =tuntap,,, <È£½ºÆ® IP ÁÖ¼Ò>
   


¿¹¸¦ µé¾î, ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÑ °æ¿ì¶ó¸é UML ÀÇ eth0 ÀåÄ¡¸¦ ÀÌ¿ë°¡´ÉÇÑ tap ÀåÄ¡¿¡ ¿¬°áÇÏ°í, È£½ºÆ® ÃøÀÇ tap ÀåÄ¡¿¡´Â IP ÁÖ¼Ò 192.168.0.254 ¸¦ ÇÒ´çÇÏ°í, UML ³»ÀÇ ifconfig ·Î ÇÒ´çÇÑ IP ÁÖ¼Ò¸¦ ±â¹ÝÀ¸·Î ÇÏ¿© ÀÌ´õ³Ý ÁÖ¼Ò¸¦ ÇÒ´çÇÑ´Ù.

eth0=tuntap,,,192.168.0.254
   


ÀÌ ¿¹Á¦¿¡¼­¿Í °°ÀÌ È£½ºÆ® Ãø ³×Æ®¿öÅ© ¼³Á¤À» À§Çؼ­ uml_net À» »ç¿ëÇÑ °æ¿ì¿¡´Â UML ÀÇ IP ÁÖ¼Ò¸¦ ¹Ù²Ù°Ô µÇ¸é uml_net Àº ¸ÅÄ¡¸¦ À§ÇÑ È£½ºÆ®ÀÇ ¶ó¿ìÆà Á¤º¸¿Í arp Á¤º¸¸¦ ¹Ù²Ù°Ô µÈ´Ù. ±×·¡¼­ UML ³»¿¡ ¾ÇÀÇ°¡ ÀÖ´Â »ç¿ëÀÚ°¡ ÀÖ´Â °æ¿ì, uml_net À» »ç¿ëÇÏ´Â °ÍÀº À§ÇèÀÇ ¿ä¼Ò¸¦ Æ÷ÇÔÇÏ°Ô µÈ´Ù. uml_net À» »ç¿ëÇÏ´Â °ÍÀº Æí¸®ÇÏÁö¸¸ UML À» ³×ÀÓ ¼­¹ö³ª ¸ÞÀÏ ¼­¹öó·³ º¸ÀÌ°Ô ÇÒ ¼öµµ ÀÖ´Ù. ÀÌ °æ¿ì È£½ºÆ®´Â ¿©ÀüÈ÷ ±×·¯ÇÑ ¼­¹ö¿¡°Ô ÆÐŶÀ» º¸³»·Á°í ÇÏÁö¸¸ ÀÌ´Â UML ·Î Àü´ÞµÉ °ÍÀÌ´Ù. º¸¾ÈÀ» °í·ÁÇÏ¿© ³×Æ®¿öÅ©¸¦ ¼³Á¤ÇÏ·Á°í ÇÑ´Ù¸é ´ÙÀ½ ÀýÀ» Àо±â ¹Ù¶õ´Ù.

2.4 ¹öÀüÀÇ È£½ºÆ® Ä¿³Î¿¡¼­ TUN/TAP Àü¼ÛÀ» »ç¿ëÇÏ´Â °Í¿¡´Â µÎ °¡ÁöÀÇ ÀáÀçÀûÀÎ ¹®Á¦Á¡ÀÌ ³²¾Æ ÀÖ´Ù:

  • TUN/TAP Àº 2.4.3 ÀÌÀü ¹öÀü¿¡¼­´Â µ¿ÀÛÇÏÁö ¾Ê´Â´Ù. ÀÌ °æ¿ì È£½ºÆ® Ä¿³ÎÀ» ¾÷±×·¹À̵å Çϰųª ethertap À» »ç¿ëÇØ¾ß ÇÑ´Ù.
  • Ä¿³ÎÀ» ¾÷±×·¹À̵åÇÏ¸é ´ÙÀ½°ú °°Àº ¿¡·¯¸¦ º¸À̸ç TUN/TAP Àº ½ÇÆÐÇÒ °ÍÀÌ´Ù:
    File descriptor in bad state
       


    ÀÌ°ÍÀº ¾÷±×·¹À̵åµÈ Ä¿³Î°ú ¿ø·¡ ¼³Ä¡µÇ¾î ÀÖ´ø Ä¿³Î °£¿¡ Çì´õ°¡ ÀÏÄ¡ÇÏÁö ¾Ê¾Æ »ý±â´Â ¹®Á¦ÀÌ´Ù. ÀÌ °æ¿ì /usr/src/linux °¡ ÇöÀç ½ÇÇà ÁßÀÎ Ä¿³ÎÀÇ µð·ºÅ丮¸¦ °¡¸®Å°µµ·Ï ¼öÁ¤ÇÑ´Ù.

ÀÌ°ÍÀº [http]Tim Robinson ÀÌ http://www.geocrawler.com/lists/3/SourceForge/597/0/ ¿¡¼­ ÁöÀûÇÑ ³»¿ëÀÌ´Ù.

ID
Password
Join
The wise shepherd never trusts his flock to a smiling wolf.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2007-07-26 06:51:08
Processing time 0.0164 sec