· 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
If it pours before seven, it has rained by eleven.


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.0182 sec