ÀÌ ±ÛÀº ¸¶ÀÌÅ©·Î ¼ÒÇÁÆ®¿þ¾î 95³â 9¿ùÈ£¿¡ ½Ç·ÁÀÖ´Â ±ÛÀ» ÆíÁýÇÑ °ÍÀÔ´Ï´Ù.
½éÅ© - Win16 °ú Win32 °£ÀÇ Å뿪»ç
(1) ½éÅ©¶õ ¹«¾ùÀΰ¡?
½éÅ©´Â ÀϹÝÀûÀÎ Win API¿¡ ºñÇØ »ç¿ë¹ýÀÌ ±î´Ù·Ó°í, ¾î¶² ¶§¿¡´Â °³¹ßÀÚµéÀ» ¾ÆÁÖ °ïȤ½º·´°Ô ¸¸µå´Â °ÍÁßÀÇ ÇϳªÀÌ´Ù.
¿ì¼± ½éÅ©°¡ ¹«¾ùÀÎÁö ¾Ë¾Æº¸ÀÚ. ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®ÀÇ Áö½Ä º£À̽º(Knowledge Base)¿¡ º¸¸é ½éÅ©¿¡ ´ëÇØ ¾ÆÁÖ °£°áÇÏ°Ô Á¤ÀÇÇÑ ±¸ÀýÀÌ ÀÖ´Ù.
½éÅ©´Â 16ºñÆ®¿Í 32ºñÆ® ÇÁ·ÎÆä½ºÀÇ °æ°è¼±ÀÇ ÇÑÂÊ¿¡ ÀÖ´Â Äڵ尡 °æ°è¼± °Ç³ÊÆíÀÇ Äڵ带 È£ÃâÇÒ ¼ö ÀÖµµ·Ï Çã¿ëÇÏ´Â °ÍÀÌ´Ù. (Thunk allow code on one side of the 16-32 process boundary to call into code on the other side of boundary)
ÀÌ ¸»À» º¸´Ù ½±°Ô ÀÌÇØÇÏ·Á¸é "½éÅ©ÀÇ Àü¼³"À̶õ ¾Æ¸§´Ù¿î ¾ê±â¸¦ ÇÏÁö ¾ÊÀ» ¼ö ¾ø´Ù.
½éÅ©ÀÇ Àü¼³
ÅÂÃÊ¿¡ 16ºñÆ® ÄÚµåµéÀÌ ³ª¶ó¸¦ ÀÌ·ï ÇູÇÏ°Ô ¸ð¿©»ì°í ÀÖ¾ú´Ù. ±×·¯³ª 16ºñÆ® ³ª¶ó´Â ¹ßÀüÀ» °ÅµìÇÑ ³¡¿¡ ¾î´À ¼ø°£ºÎÅÍ ¿µµµÀÇ ºñÁ¼À½À» Àý°¨ÇÏ°Ô µÇ¾úÁö¸¸ °Å´ëÇÑ »ê¸ÆÀ¸·Î µÑ·¯½Î¿© ÀÖ´Â Å¿¿¡ °í½º¶õÈ÷ °¤Çô Áö³»¾ß¸¸ Çß´Ù.
±×·¯´ø ¾î´À ³¯ ÁøÈµÈ ¸î¸î ÄÚµåµéÀÌ »õ·Î¿î ¼¼°è·Î ¿Å°Ü °¥ °ÍÀ» °áÀÇÇϰí, 'Æ÷ÆÃ'À̶ó´Â ºñÁ¼°í À§ÇèÇÑ µ¿±¼À» ÅëÇØ °Å´ëÇÑ »ê¸ÆÀ» °Ç³Ê°¡±â·Î ¸¶À½¸Ô¾ú´Ù. ±×¸®ÇÏ¿© 32ºñÆ®¶ó´Â À̸§ÀÇ ½Å´ë·úÀ» ¹ß°ßÇϰí dz¿ä·Î¿î ³ª¶ó¸¦ °Ç¼³ÇÏ¿© ±×µéÀº ÀÌÁ¦ 32ºñÆ® ÄÚµå¶ó°í ºÒ¸®´Â ¹ÎÁ·ÀÌ µÇ¾ú´Ù.
ÇÏÁö¸¸ »õ·Î Ãâ¹ßÇÑ 32ºñÆ® ³ª¶óÀÇ ¹ÎÁ·Àº Èûµµ ¼¼°í, ÁöÇý·Î¿üÁö¸¸, ¿À·£ ÀüÅëÀÇ 16ºñÆ® ³ª¶óó·³ ¿ª»ç°¡ ³²°ÜÁØ À¯»êÀÌ Àý´ëÀûÀ¸·Î ºÎÁ·Çß´Ù. Çѵ¿¾È µÎ ³ª¶ó »çÀÌ¿¡´Â ±æµµ ¾ø´Â °Å´ëÇÑ »ê¸ÆÀ¸·Î ÀÎÇØ Á¤º¸¿Í ¹®¹°À» ±³È¯ÇÒ ¹æ¹ýÀÌ ¾ø¾ú´Ù. ´õ¿íÀÌ Æ÷ÆÃÀ̶ó´Â À̸§ÀÇ µ¿±¼Àº ÀüÁø¸¸ ÇÒ ¼ö ÀÖ°í, µ¹¾Æ°¥ ¼ö ¾ø´Â ±æÀ̾ú´Ù. ±×·¯³ª µÎ°í¿Â °íÇâÀ» ¿°µÎ¿¡ µÎ°í ÀÖ´ø ¸î¸î ¼±±¸ÀÚµéÀº ±×µéÀÌ Ãâ¹ßÇÒ ¶§ ±æ°¡¿¡ '½éÅ© ³ª¹«(Thunk Tree)'ÀÇ ¾¾¾ÑÀ» »Ñ¸®¸é¼ ¿Ô´Âµ¥, ½Ã°£ÀÌ Áö³ª ½éÅ© ³ª¹«°¡ ÀÚ¶óÀÚ ÀÌ ³ª¹«µéÀÇ ½Åºñ·Î¿î ÈûÀ¸·Î ÀÎÇØ 16ºñÆ® ³ª¶ó¿Í 32ºñÆ® ³ª¶ó°¡ ¼·Î ÀÚÀ¯·Ó°Ô ¿Õ·¡ÇÒ ¼ö ÀÖ´Â ±æÀÌ ¿·È´Ù.
- X - X - X -
½éÅ©ÀÇ Àü¼³À» ÀÐÀ¸¸é ±× ¾î·Á¿î ½éÅ©¶ó´Â °ÍÀ» Á» ´õ ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
16ºñÆ®¿¡¼ 32ºñÆ®·ÎÀÇ Æ÷ÆÃÀº ½éÅ©ÀÇ Àü¼³Ã³·³ 'µÇµ¹¾Æ °¥ ¼ö ¾ø´Â ±æ'¿¡ ºñÀ¯ÇÒ ¼ö ÀÖ´Ù. ±×¸®°í 16ºñÆ®ÀÇ 32ºñÆ® »çÀÌ¿¡´Â Á¤¸» °Å´ëÇÑ »ê¸ÆÃ³·³ Å« °æ°è°¡ ³õ¿© ÀÖ¾î¼ ÀÚÀ¯·Ó°Ô ¿Õ·¡ÇÒ ¼öÁ¶Â÷ ¾ø´Ù . ±×·¸Áö¸¸ ½éÅ©¶ó´Â ½Åºñ·Î¿î ÈûÀ» ÀÌ¿ëÇϸé, ÀÌ °Å´ëÇÑ »ê¸ÆÀ» ³Ñ¾î ÀÚÀ¯·Ó°Ô À̵¿ÇÒ ¼ö ÀÖ´Ù.
ÇÏÁö¸¸ ´ñ°¡°¡ ¾ø´Â °ÍÀº ¾Æ´Ï´Ù. ½éÅ©¸¦ ÀÌ¿ëÇÒ ¶§¸é À̵¿ÇÒ ¶§¸¶´Ù ÇÁ·Î¼¼½º ÀÚü¿¡ ½éÅ©·¹À̾ Åë°úÇÏ´Â ¸¸ÅÀÇ °úºÎÇÏ(Overload)°¡ °É¸®°Ô µÈ´Ù. µû¶ó¼ ¾ÆÁÖ °£´ÜÇÑ ±â´ÉÀ» ´Ü¼øÈ÷ ÀçÀÛ¼ºÇϱ⠽ȴٴ ÀÌÀ¯¸¸À¸·Î ½éÅ©¸¦ ÅëÇØ È£ÃâÇÏ°Ô µÇ¸é, ±× ±â´É Â÷üº¸´Ù ½éÅ©¿¡ ¼Ò¸ðÇÏ´Â CPUÀÇ ºÎÇϰ¡ ÈξÀ ´õ Ä¿Áú ¼öµµ ÀÖ´Ù´Â »ç½Ç¿¡ ÁÖÀÇÇØ¾ß ÇÑ´Ù.
(2) ½éÅ©´Â ¿Ö ÇÊ¿äÇѰ¡ ?
¾î´À³¯ °©ÀÚ±â 16ºñÆ®·Î Àß ÆÈ¸®´ø ¾î¶² ÅëÇÕ ¼ÒÇÁÆ®¿þ¾î¸¦ 32ºñÆ®·Î Æ÷ÆÃÇ϶ó´Â ¿ä±¸°¡ µé¾î¿Ô´Ù°í ÇÏÀÚ. ¶óÀÎ ¼ö°¡ 30¸¸ ¶óÀÎÂë µÇ°í, °³¹ßÀÚ´Â 2¸í, ±×·¸´Ù¸é °ú¿¬ ¾ó¸¶¸¸¿¡ 32ºñÆ® ¹öÀüÀ» Ãâ½ÃÇÒ ¼ö ÀÖÀ»±î?
ÃÖ´ëÇÑ »¡¸® ³¡³»±â À§Çؼ ¿ì¼± ¸ÞÀÎ ÇÁ·Î±×·¥À» 32ºñÆ®·Î ¹Ù²Ù°í, °¡Àå Áß¿äÇÑ ¸ðµâ DLLµéÀº 32ºñÆ®·Î ¼öÁ¤ÇÏ°í ¹Ø¹Ù´ÚÀÇ ¿£Áø ºÎºÐÀº 16ºñÆ®·Î °¡¸¸ ³öµÐ ä·Î ½éÅ©(Thunk)¸¦ ÀÌ¿ëÇØ¼ ºÒ·¯¾²´Â ¼ö¹ýÀ¸·Î Æ÷ÆÃÀÛ¾÷À» 1Â÷·Î ³¡³»¼ Ãâ½ÃÇÒ °ÍÀÌ´Ù. ÀÌ·¸°Ô ÇÏ¸é µÎ´ÞÁ¤µµ °É¸± °ÍÀÌ´Ù.
¹°·Ð Ä¡»çÇÑ(?) ¹æ¹ýÀÌÁö¸¸, ÀÌ ¹æ¹ýÀÌ ±× Á¤µµ ÀοøÀ» °®°í ¹ßÈÖÇÒ ¼ö ÀÖ´Â ÃÖ»óÀÇ ¼ö¿ÏÀÌ´Ù. ¾î·µç 32ºñÆ® ¿î¿µÃ¼Á¦¿¡¼ µ¿ÀÛÇÏ´Â 32ºñÆ® ÇÁ·Î±×·¥À̴ϱî! À©µµ¿ìÁî 95 ±× ÀÚüµµ 16ºñÆ® ¸ðµâµéÀ» ¾öû³ª°Ô ¸¹ÀÌ ÀÌ¿ëÇϰí ÀÖÁö ¾ÊÀº°¡ ¸»ÀÌ´Ù.
±× ´ÙÀ½ °è¼Ó ³²¾ÆÀÖ´Â ¸ðµâµéÀ» 32ºñÆ®·Î Çϳª¾¿ Æ÷ÆÃÇÏ¸é¼ ³ª¸ÓÁö 10´ÞÂëÀ» ¼Ò¸ðÇÒ °ÍÀ̶ó°í ¿¹»óµÈ´Ù. Æ÷ÆÃÀÛ¾÷ÀÌ´Ï±î µÎ »ç¶÷ÀÌ ÇÑ´Þ¿¡ 2~3¸¸ ¶óÀÎ Á¤µµ´Â ¼öÁ¤ÇÒ ¼ö ÀÖÀ» Å×°í, ±×·¯¸é °ÅÀÇ 1³âÀº ²¿¹Ú Àâ¾Æ¸Ô°Ô µÈ´Ù.
ÀÌ·¸°Ô ÇÏÁö ¾Ê°í, µÎ ´Þµ¿¾È 30¸¸ ¶óÀÎÀ» Æ÷ÆÃÇÏ·Á¸é °³¹ßÀÚ°¡ 20¸í Á¤µµ´Â ÇÊ¿äÇÏ´Ù. ¹°·Ð °³¹ßÀÚµéÀÌ ¸ðµÎ Win16 ¿¡ Á¤ÅëÇϸç Win32 µµ Àß ¾Ë°íÀÖ´Â À̵éÀ̾î¾ß Çϴµ¥, ÀÌ´Â Çѱ¹ÀÇ ¾î´À ¼ÒÇÁÆ®¿þ¾î ¾÷ü¿¡¼µµ °¡´ÉÇÑ ÀÏÀÌ ¾Æ´Ï´Ù.
½éÅ©¸¦ ½á¾ßÇÏ´Â ÀÌÀ¯·Î´Â, »ó¿ë °³¹ßÀÚµéÀÌ »õ·Î¿î 32ºñÆ® Äڵ嵵 ÁÁÁö¸¸ ±âÁ¸ÀÇ 16ºñÆ® Äڵ忡¼µµ ÃÖ´ëÇÑ ºÎ°¡°¡Ä¡¸¦ Áã¾îÂ¥·Á ÇÑ´Ù´Â °ÍÀÌ´Ù.
°¡Àå ±ú²ýÇÑ ¹æ¹ýÀ¸·Î´Â ´çºÐ°£ 16ºñÆ®¿Í 32ºñÆ® ¹öÀüÀÇ ¼ÒÇÁÆ®¿þ¾î¸¦ µû·Î À¯ÁöÇÏ´Â °ÍÀÌ´Ù. ±×·¯³ª, À̰ÍÀº °³¹ßÀÚÀÇ ÀÔÀå¿¡¼ º¸¸é ¼Ò½ºÄڵ带 µÎ °¡Áö¾¿ À¯ÁöÇÏ°í °¢Á¾ ¹öÀüÀ» µÎ °¡Áö·Î ¸¸µç´Ù´Â °ÍÀº ¾öû³ª°Ô ±«·Î¿î ÀÏÀÌ´Ù.
¶Ç Çϳª, Çö½ÇÀûÀÎ ¹®Á¦´Â Á¦ÇÑµÈ °³¹ßÀοøÀ¸·Î °©Àڱ⠰ö¹è±â·Î ´Ã¾î³ª´Â À¯Áöº¸¼ö¸¦ °¨´çÇÏ´Â °ÍÀÌ Èûµé´Ù´Â »ç½ÇÀÌ´Ù. ÀÌ·± ÀÌÀ¯·Î ÇØ¼ ¸¹Àº °³¹ßÀÚµéÀÌ 16ºñÆ® ½ÃÀåÀ» ¾Æ¿¹ ±ú²ýÀÌ Æ÷±âÇϰí, 32ºñÆ® ¼ÒÇÁÆ®¿þ¾îÀÇ °³¹ß¿¡ ¹ã³·ÀÌ ¹Ù²ï »ýȰÀ» ÇÏ´Â °ÍÀÌ´Ù.
±×·¸Áö¸¸, ½éÅ©¸¦ ½á¾ßÇÏ´Â °¡Àå Å« ÀÌÀ¯´Â ÀÌ·¸°Ô ±Þ¹ÚÇÏ°Ô µ¹¾Æ°¡´Â ¼ÒÇÁÆ®¿þ¾î ¾÷°èÀ» À§ÇÑ ÃÖ¼±ÀÇ ¹æÃ¥À̱⵵ ÇÏÁö¸¸, Á»´õ ÀÚ¼¼È÷ µ¹¾Æº¸¸é °ú°ÅÀÇ ¸¹Àº À¯»êµéÀ» ±×´ë·Î ¹ö¸®°í °¥ ¼ö ¾ø´Ù´Â µ¥¼ Ãâ¹ßÇÑ´Ù. »ç½Ç À̹ÌÁö ÆÄÀÏÀ» ÇØ¼®ÇÏ´Â DLLµéÀ̳ª ½ºÄ³³Ê, ÇÁ¸°ÅÍ µî ÁÖº¯±â±â¸¦ ±¸µ¿ÇÏ´Â DLLµéÀº ±»ÀÌ 32ºñÆ®·Î Æ÷ÆÃÇØ¾ß ÇÒ ÀÌÀ¯°¡ º°·Î ¾ø´Â °ÍÀÌ´Ù. ¶ÇÇÑ ¿äÁò µé¾î ¼ÒÇÁÆ®¿þ¾î ºÎǰÀ¸·Î ¸¹ÀÌ È°¿ëµÇ°í ÀÖ´Â °¢Á¾ DLLÀÇ 32ºñÆ® ¹öÀüµéÀÌ 16ºñÆ® ¹öÀü¿¡ ºñÇØ ÃæºÐÈ÷ ¾ÈÁ¤ÈµÇ¾î ÀÖÁö ¸øÇϸ鼵µ °¡°ÝÀº ¸î °öÀý ºñ½Ñ °Íµµ ½éÅ©¸¦ ½á¾ß ÇÒ ÃæºÐÇÑ ÀÌÀ¯°¡ µÈ´Ù.
(3) ½éÅ©ÀÇ Á¾·ù
Win32 Ç÷§ÆûÀº ÇöÀç±îÁö 3°¡Áö Á¾·ù°¡ »ç¿ë°¡´ÉÇѵ¥, ±âÁ¸ÀÇ À©µµ¿ìÁî 3.1¿¡¼ Win32 API¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô ÇØ ÁÖ´Â Win32s, À©µµ¿ìÁî 3.1ÀÇ ¾÷±×·¹À̵åÆÇÀÎ À©µµ¿ìÁî 95, µµ½º³ª À©µµ¿ìÁî¿Í´Â »Ñ¸®ºÎÅÍ ¿ÏÀüÈ÷ ´Ù¸¥ ¿î¿µÃ¼Á¦ÀÌÁö¸¸ À©µµ¿ìÁî ÀÎÅÍÆäÀ̽º¸¦ ºÙ¿©¼ ³ª¿Â À©µµ¿ìÁî NT ±îÁö ÇØ¼ ¸ðµÎ 3°¡ÁöÀÌ´Ù.
±×·±µ¥ ½éÅ© ¶ÇÇÑ Ç÷§Æû º°·Î 3°¡Áö Á¾·ù°¡ »ç¿ë °¡´ÉÇØ¼ ¹®Á¦¸¦ º¹ÀâÇÏ°Ô ¸¸µé°í ÀÖ´Ù. À¯´Ï¹ö¼³ ½éÅ©(Universal Thunk, ÀÌÇÏ UT), Á¦³Ê¸¯ ½éÅ©(Generic Thunk, ÀÌÇÏ GT), Ç÷§ ½éÅ©(Flat Thunk, ÀÌÇÏ FT) µîÀε¥, °¢°¢ Win32s¿ë, NT ¿ë, À©µµ¿ìÁî 95 ¿ëÀ¸·Î »ý°¢ÇÏ¸é µÈ´Ù.
´Ù¸¸ GT´Â NT ¿Ü¿¡ À©µµ¿ìÁî 95¿¡¼µµ »ç¿ëÀÌ °¡´ÉÇÏ´Ù´Â ÀåÁ¡ÀÌ ÀÖ´Ù. ±×·¡¼ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®´Â À©µµ¿ìÁî 95¿Í NT ¸ðµÎ¿¡¼ ÀÛµ¿ÇØ¾ß ÇÏ´Â ÀÀ¿ë ¼ÒÇÁÆ®¿þ¾î´Â GT¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù°í ÁÖÀåÇÏÁö¸¸, GT°¡ ½ÇÁ¦·Î ¾²ÀÌ´Â ¿¹´Â ¿î¿ëüÁ¦ ±× ÀÚü¸¦ Á¦¿ÜÇϰí´Â ÀÀ¿ë ¼ÒÇÁÆ®¿þ¾î¿¡¼´Â °ÅÀÇ Ã£¾Æº¸±â Èûµé´Ù.
´ÙÀ½ Ç¥¸¦ º¸¸é ½éÅ© ¹æ¹ý°ú Ç÷§Æû °£ÀÇ ´ëÀÀ°ü°è¸¦ ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù.
| ¡¡ | Win32s | À©µµ¿ì95 | À©µµ¿ìNT |
| Á¦³Ê¸¯ ½éÅ© | ¡¡ | o | o |
| À¯´Ï¹ö¼³ ½éÅ© | o | ¡¡ | ¡¡ |
| Ç÷§ ½éÅ© | ¡¡ | o | ¡¡ |
±×·¸´Ù¸é ¿Ö ÀÌ·¸°Ô ½éÅ© ¹æ¹ýÀÌ ´Ù¾çÇÒ±î. ¿ì¼± ½éÅ©¸¦ ÇÏ´Â ¸ñÀûÀÌ °¢°¢ ´Ù¸£±â ¶§¹®ÀÌ´Ù. ½éÅ©°¡ ÃâÇöÇÑ ¼ø¼´ë·Î ¾Ë¾Æº¸ÀÚ.
Á¦³Ê¸¯ ½éÅ© (GT)
¿ì¼± Á¦³Ê¸¯ ½éÅ©´Â NT¿Í À©µµ¿ìÁî 95¿¡¼ µ¿ÀÛÇÏ´Â Win16 ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ Win32¿ëÀÇ °¢Á¾ DLLÀ» ·ÎµåÇϰí, È£ÃâÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇÏ´Â µ¥ ¸ñÀûÀ» µÎ°í ÀÖ´Ù. µû¶ó¼ ÀÌ ¹æ¹ýÀº ÇÁ·Î±×·¥À» ±âÁ¸ÀÇ À©µµ¿ìÁî 3.1¿¡ ±â¹ÝÇÑ ÇüÅ·ΠÀÛ¼ºÇÏ¸é¼ Win32ÀÇ ¸·°ÇÑ ½Å±Ô APIµéÀ» »ç¿ëÇϰíÀÚ ÇÒ ¶§ ÀÌ¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù. ³Ê¹« ¹Ùºü¼ Win32/¸¦ »õ·Î ¹è¿ï Æ´ÀÌ ¾ø´Ùµç°¡, 16ºñÆ®·Î ÀÛ¼ºÇØ ³õÀº ÄÚµåÀÇ ºÐ·®ÀÌ ³Ê¹« ¸¹Àºµ¥ Æ÷ÆÃÇÒ »ç¶÷°ú ½Ã°£µµ ¾ø´Âµ¥ »õ·Î¿î Win32 API µéÀ» ²À ¾²°í ½Í´Ùµç°¡ ÇÒ ¶§ ¾²´Â ¹æ¹ýÀÌ´Ù. ¿¹¸¦ µé¾î, ÇÁ·Î±×·¥Àº 16ºñÆ®·Î Â¥´Âµ¥ Win32¿¡¼ Áö¿øµÇ´Â 3Â÷¿ø ±×·¡ÇÈ ¶óÀ̺귯¸®¸¦ ¾²°í ½Í´ÙµçÁö ÇÒ ¶§ »ç¿ëÇÏ´Â °ÍÀ» »ý°¢ÇÒ ¼ö ÀÖ°Ú´Ù.
À¯´Ï¹ö¼³ ½éÅ© (UT)
Á¦³Ê¸¯ ½éÅ©¿Í´Â Á¤¹Ý´ë·Î ÀÛµ¿ÇÏ´Â °ÍÀÌ À¯´Ï¹ö¼³ ½éÅ©ÀÌ´Ù. 16ºñÆ® ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ 32ºñÆ® Äڵ带 ºÎ¸£´Â °ÍÀÌ ¾Æ´Ï¶ó, 32ºñÆ® ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ 16ºñÆ® Äڵ带 ºÎ¸£´Â °ÍÀÌ ÁÖ ¸ñÀûÀÌ´Ù. Ç÷§Æû ¶ÇÇÑ NTÀÇ WOW (À©µµ¿ìÁî on À©µµ¿ìÁî) ¿Í °°Àº 32ºñÆ® ¿î¿ëüÁ¦ ³»ÀÇ 16ºñÆ® ȯ°æÀÌ ¾Æ´Ñ, 16ºñÆ® À©µµ¿ìÁî¿¡ ¾ñÇô µ¹¾Æ°¡´Â 32ºñÆ® ȯ°æ¿¡¼ »ç¿ëÇÏ´Â °ÍÀ̱⠶§¹®ÀÌ´Ù.
Win32s ´Â 16ºñÆ® API¸¸ Áö¿øÇÏ´Â À©µµ¿ìÁî 3.x »ó¿¡¼ Win32 API¸¦ Áö¿øÇÏ´Ù º¸´Ï Ç÷§Æû¿¡ ºÒ¿ÏÀüÇÑ ±¸¼®ÀÌ ÀÖ´Ù. ±×·¡¼ 32ºñÆ® ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ 16ºñÆ® DLLÀ» Á÷Á¢ ·ÎµåÇϰí È£ÃâÇÏ´Â µîÀÇ ÀÛ¾÷À» ÇØ¾ß ÇÒ °æ¿ì°¡ ¸¹´Ù.
Ç÷§ ½éÅ© (FT)
¸¶Áö¸·À¸·Î Ç÷§ ½éÅ©´Â À©µµ¿ìÁî 95¿Í ÇÔ²² È·ÁÇÏ°Ô µ¥ºßÇÑ ½Å±â¼úÀε¥, ÀÚÀ¯·Ó°Ô 16ºñÆ®¿Í 32ºñÆ® »çÀ̸¦ ¿À°¥ ¼ö ÀÖ´Ù.
Ç÷§½éÅ©´Â À¯´Ï¹ö¼³ ½éũó·³ ÁÖ·Î 16ºñÆ® DLLÀ» 32ºñÆ® ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ºÒ·¯¾µ ¶§ »ç¿ëÇÏ°Ô µÈ´Ù. ÇÏÁö¸¸ À¯´Ï¹ö¼³ ½éÅ©´Â 32UT.DLL, 16UT DLL °ú °°Àº µÎ ¸íÀÇ Å뿪»ç¸¦ ÇÊ¿ä·Î Çϸç, ±× µÎ Å뿪»ç¸¦ ¼öÀÛ¾÷À¸·Î ÇϳªÇϳª ¸¸µé¾î ÁÖ¾î¾ß ÇÏ´Â ´ÜÁ¡ÀÌ ÀÖ´Ù. µû¶ó¼ 10°³ÂëÀÇ 16ºñÆ® DLL À» 32ºñÆ®¿¡¼ »ç¿ëÇϰí, Çϳª Çϳª¾¿ µð¹ö±ëÇÏ·Á¸é ¼÷·ÃµÈ ÇÁ·Î±×·¡¸Ó¶óµµ ³Ë³ËÀâ¾Æ 1ÁÖÀÏ Á¤µµ´Â °É¸°´Ù.
±×·¸Áö¸¸ Ç÷§ ½éÅ©´Â ½éÅ© ½ºÅ©¸³Æ®¸¦ ¸¸µé¾î ÁÖ¸é ½éÅ© ÀÛ¾÷¿¡ ÇÊ¿äÇÑ ¾î¼Àºí¸® ¼Ò½º¸¦ ¸¸µé¾î ÁØ´Ù. À̸¦ ¾î¼ÀºíÇØ¼ ³ª¿Â µÎ °³ÀÇ OBJ ÆÄÀÏÀ» 32ºñÆ® Âʰú 16ºñÆ® ÂÊÀÇ DLL ¿¡ ÇÕÃÄ Áֱ⸸ Çϸé ÀÛ¾÷Àº ³¡ÀÌ´Ù.
»ç½Ç À¯´Ï¹ö¼³ ½éÅ©´Â 16ºñÆ® DLL À» 32ºñÆ®·Î Æ÷ÆÃÇÏÁö ¾Ê°í ÆíÇÏ°Ô ±×´ë·Î ¾²ÀÚ´Â °Ô ¸ñÀûÀε¥, À̸¦ À§ÇØ »ó´çÈ÷ ¹ø°Å·Î¿î ÀÛ¾÷À» ÇØ¾ß ÇÑ´Ù. ÀÌ¿¡ ¹ÝÇØ Ç÷§ ½éÅ©´Â 'ÀÛÀº ³ë·Â, Å« ±â»Ý' ÇÏ´Â ½ÄÀ¸·Î ½±°Ô ¾µ ¼ö ÀÖ´Ù. ½ÇÁ¦·Î À©µµ¿ìÁî 95 ³»ºÎÀÇ ¸¹Àº ºÎºÐÀÌ 16ºñÆ® Äڵ带 ±×´ë·Î ÀÌ¿ëÇϰí ÀÖÀ¸¸ç, ÀÌ °úÁ¤¿¡¼ °ü¿©Çϰí ÀÖ´Â ½éÅ· ¹æ¹ýÀÌ ¹Ù·Î ÀÌ Ç÷§ ½éÅ©ÀÎ °ÍÀÌ´Ù.
(4) ½éÅ©¸¦ ¾µ ¶§ ÁÖÀÇÇÒ Á¡
½éÅ©ÀÇ À¯¿ë¼º ¸øÁö ¾Ê°Ô »ç¿ë½ÃÀÇ Á¶½ÉÇØ¾ß ÇÒ Á¡µµ ¸¹´Ù. ¿ì¼± °¡Àå ¸¹Àº °æ¿ì°¡ ¸ÞÀÎ ÇÁ·Î±×·¥Àº 32ºñÆ®ÀÇ ÀåÁ¡À» »ì¸®±â À§ÇØ 32ºñÆ®·Î »õ·Î ÀÛ¼ºÇÏÁö¸¸, ´ëºÎºÐÀÇ DLL ȤÀº ÀϺÎÀÇ DLL À» 16ºñÆ®·Î »ç¿ëÇÏ´Â °æ¿ìÀÌ´Ù.
ÀÌ ¶§ º¯ÇÏ´Â ¿î¿µÃ¼Á¦¸¦ °í·ÁÇÏÁö ¾Ê°í À¯´Ï¹ö¼³ ½éÅ©¸¸À» Áö¿øÇÑ´Ù¸é, Win32s ¿¡¼´Â Àß µµ´Â ÇÁ·Î±×·¥ÀÌ À©µµ¿ìÁî 95³ª À©µµ¿ìÁî NT¿¡¼´Â ÀüÇô ÀÛµ¿ÇÏÁö ¾Ê´Â´ÙµçÁö ÇÏ´Â ¹®Á¦°¡ ¹ß»ýÇÑ´Ù. ¸¶Âù°¡Áö·Î Ç÷§ ½éÅ©¸¸ Áö¿øÇÒ °æ¿ì, À©µµ¿ìÁî 95¿¡¼´Â Àß µ·´Ù. ÇÏÁö¸¸ Win32s ¸¦ µ¹¸®±â¿¡ ¿©·¯°¡Áö ÀÚ¿øÀÌ ºÎÁ·ÇÑ »ç¶÷ÀÌ À©µµ¿ìÁî 3.1°ú Win32s ¸¦ ÀÌ¿ëÇØ¼ »ç¿ëÇÏ±æ ¿øÇÒ °æ¿ì¿¡´Â ÀüÇô ÀÛµ¿ÇÏÁö ¾Ê°Ô µÈ´Ù.
ÀÌ·± ¹®Á¦ÀÇ ¿¹°¡ Ãʱâ¹öÀüÀÇ ¾Æ·¡ÇÑ±Û 3.0 À©µµ¿ìÁî¿ëÀε¥, À¯´Ï¹ö¼³ ½éÅ©¸¸À» °í·ÁÇÑ ¶§¹®¿¡ À©µµ¿ìÁî 3.1°ú Win32s ¿¡¼´Â Àß ÀÛµ¿ÇßÁö¸¸, À©µµ¿ìÁî 95³ª NT ¿¡¼´Â µ¿ÀÛÇÏÁö ¾Ê°í ÇØ´çȯ°æ¿ëÀ¸·Î ¸®ºôµå(rebuild) ÇØ¾ß¸¸ Çß´Ù.
¹Ý´ë·Î 16ºñÆ® ÇÁ·Î±×·¥À» À©µµ¿ìÁî 95¿¡¼ ÀÛ¾÷Çϵµ·Ï ±ÞÇÏ°Ô ¼öÁ¤ÇÏ¸é¼ °¡Àå ¼Õ½±°Ô ¾µ ¼ö ÀÖ´Â Ç÷§ ½éÅ©¸¦ ½á¼ ÀÛ¾÷Çß´Ù°í ÇÏÀÚ. ÀÌ·± °æ¿ì NT¿¡¼´Â µ¿ÀÛÇÏÁö ¾ÊÀ¸¸ç, NT¿¡¼ µ¿ÀÛÇÏÁö ¾Ê´Â ÇÁ·Î±×·¥Àº 'Microsoft Windows 95 Compatible' ·Î°í¸¦ »ç¿ëÇÒ ¼ö ¾ø°Ô µÈ´Ù.(À©µµ¿ìÁî 95¿¡¼´Â ¾Æ¹« ¹®Á¦¾øÀÌ µ¿ÀÛÇÔ¿¡µµ ºÒ±¸Çϰí)