¿ù°£ Àα⠰Խù°

°Ô½Ã¹° 1,358°Ç
   
Apache DSO / Static
±Û¾´ÀÌ : ÃÖ°í°ü¸®ÀÚ ³¯Â¥ : 2010-02-11 (¸ñ) 11:05 Á¶È¸ : 9076
±ÛÁÖ¼Ò :
                                

DSO(Dynimic Shared Object) ¹æ½ÄÀº mod_so.c ÀÇ ¸ðµâÀ» ±â¹ÝÀ¸·Î ¾ÆÆÄÄ¡ ¸ðµâÀÌ °³º°ÀûÀ¸·Î ·Îµå µÇ¾î Áú ¼ö ÀÖµµ·Ï ÇØÁÖ´Â ¹æ½ÄÀÌ´Ù. Áï, Ãß°¡·Î ¸ðµâÀ» ¼³Ä¡Çϱâ À§ÇØ ¾ÆÆÄÄ¡¸¦ ÀçÄÄÆÄÀÏ ÇÏÁö ¾Ê°í ¸ðµâ¸¸ ¿Ã·Á¼­ ÀÌ¿ëÇÒ¼ö ÀÖ´Â ¹æ½ÄÀÌ´Ù.

DSO´Â ¾ÆÆÄÄ¡¿¡ ¼³Ä¡µÈ ¸ðµâÀÌ ÇÊ¿äÇÒ ¶§ ½Ã½ºÅÛ¿¡ ÀûÀçµÈ´Ù. À̴ Ŭ¶óÀ̾ðÆ®ÀÇ ¿äû¿¡ ÀÀ´äÇÏ´Â ¿äû½Ã°£ÀÌ ´Ù¼Ò ´À¸± ¼ö ÀÖÁö¸¸, Çϵå¿þ¾îÀÇ ¼Óµµ°¡ µÞ¹ÞħµÈ´Ù¸é ÇØ°áÀÌ µÉ ¼ö ÀÖ´Â ºÎºÐÀÌ´Ù.
ÇöÀç´Â ÀϹÝÀûÀ¸·Î ¼±È£ÇÏ´Â ¹æ½ÄÀ¸·Î ½Ã½ºÅÛÀÇ ¸®¼Ò½º(¸Þ¸ð¸®, CPU)µéÀ» ÀûÀýÇÏ°Ô È¿À²ÀûÀ¸·Î »ç¿ëÇÑ´Ù°í º¼ ¼ö ÀÖ´Ù.


¶Ç ´Ù¸¥ ¹æ½ÄÀÎ Static ¹æ½ÄÀº DSO¿Í´Â ´Ù¼Ò Â÷ÀÌ°¡ ÀÖ´Ù.
ÀÌ ¹æ½ÄÀº ¾ÆÆÄÄ¡¿¡ Ãß°¡µÈ ¸ðµâÀÌ ¾ÆÆÄÄ¡ÀÇ ±âµ¿°ú ÇÔ²² ¸ðµç ¸ðµâÀ» Æ÷ÇÔÇÏ¿© ½Ã½ºÅÛ¿¡ ÀûÀçÇÑ´Ù.
¸¸¾à ¾ÆÆÄÄ¡ÀÇ ±âµ¿°ú ÇÔ²² ÀûÀçµÈ ¾î¶² ¸ðµâÀÌ Å¬¶óÀ̾ðÆ®¿¡ ÀÇÇØ °ÅÀÇ ¾²Áö ¾Ê´Â´Ù¸é ¾µµ¥¾øÀÌ ½Ã½ºÅÛ ¸®¼Ò½º¸¦ Á¡À¯ÇÏ°í ÀÖÀ¸¹Ç·Î ÀÌ´Â ºñÈ¿À²ÀûÀÌ¶ó º¼ ¼ö ÀÖ´Ù. ¶ÇÇÑ ¾ÆÆÄÄ¡¿Í °¢ ¸ðµâµéÀº ¼³Ä¡½Ã º¹ÀâÇÏ´Ù.
°¢ ¸ðµâ°ú ¼³Á¤µÈ ¾ÆÆÄÄ¡¿¡ ¶Ç ´Ù½Ã ¸ðµâÀ» Ãß°¡ÇÏ·Á ÇÒ ¶§ ¾ÆÆÄÄ¡¿Í ¸ðµâÀ» ´Ù½Ã ÄÄÆÄÀÏÇÏ¿©¾ß ÇÑ´Ù.


¡Ø DSO ¹æ½Ä¿¡ configure --enable-rule=SHARED_CORE...·Î ÄÄÆÄÀÏµÈ °æ¿ì, ½ÇÇà ÆÄÀÏÀÌ libhttpd.ep°¡ µË´Ï´Ù.



Àå´ÜÁ¡

¾Õ¿¡¼­ ¸»ÇÑ DSO¸¦ »ç¿ëÇÏ¸é ´ÙÀ½°ú °°Àº ÀåÁ¡ÀÌ ÀÖ´Ù:

  • ½ÇÁ¦ ¼­¹ö ÇÁ·Î¼¼½º°¡ ÄÄÆÄÀϽà configure ¿É¼Ç´ë½Å httpd.confÀÇ LoadModuleÀ» »ç¿ëÇÏ¿© ½ÇÇàÁß¿¡ °áÇյǹǷΠ¼­¹ö ÆÐÅ°Áö ½ÇÇàÀÌ ´õ À¯¿¬ÇÏ´Ù. ¿¹¸¦ µé¾î ÇѹøÀÇ ¾ÆÆÄÄ¡ ¼³Ä¡¸¸À¸·Î ´Ù¸¥ ¼­¹ö(Ç¥ÁØ ¹öÀü°ú SSL ¹öÀü, ÃÖ¼ÒÈ­ ¹öÀü°ú ±â´ÉÃß°¡ ¹öÀü [mod_perl, PHP3] µî)¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Ù.
  • ¼­¹ö´Â ¼³Ä¡ÈÄ¿¡µµ Á¦»ïÀÚ°¡ ¸¸µç ¸ðµâÀ» »ç¿ëÇÏ¿© ½±°Ô È®ÀåÇÒ ¼ö ÀÖ´Ù. ÃÖ¼ÒÇÑ ±â¾÷ÀÇ ÆÐÅ°Áö Á¦ÀÛÀÚ´Â ¾ÆÆÄÄ¡ ÇÙ½É ÆÐÅ°Áö¿Í º°µµ·Î PHP3, mod_perl, mod_fastcgi µîÀ» Ãß°¡ ÆÐÅ°Áö·Î ¸¸µé ¼ö À־ Å« À̵æÀÌ´Ù.
  • DSO¿Í apxs¸¦ °¡Áö°í ¾ÆÆÄÄ¡ ¼Ò½º Æ®¸® ¹Û¿¡¼­ ÀÛ¾÷ÇÏ°í apxs -i¿Í apachectl restart ¸í·É¾î¸¸À¸·Î ÇöÀç °³¹ßÇÑ ¸ðµâÀÇ »õ ¹öÀüÀ» ½ÇÇàÁßÀÎ ¾ÆÆÄÄ¡ ¼­¹ö¿¡ ¹Ý¿µÇÒ ¼ö À־ ´õ ½±°Ô ¾ÆÆÄÄ¡ ¸ðµâÀ» °³¹ßÇÒ ¼ö ÀÖ´Ù.

DSO´Â ´ÙÀ½°ú °°Àº ´ÜÁ¡ÀÌ ÀÖ´Ù:

  • ÇÁ·Î±×·¥ÀÇ ÁÖ¼Ò°ø°£¿¡ Äڵ带 µ¿ÀûÀ¸·Î ÀоîµéÀÌ´Â ±â´ÉÀ» Áö¿øÇÏÁö¾Ê´Â ¿î¿µÃ¼Á¦°¡ Àֱ⠶§¹®¿¡ ¸ðµç Ç÷¡Æû¿¡¼­ DSO¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù.
  • À¯´Ð½º ·Î´õ°¡ ½Éº¼À» ã¾Æ¾ßÇϱ⠶§¹®¿¡ ¼­¹ö ½ÃÀÛÀÌ ¾à 20% Á¤µµ ´Ê¾îÁø´Ù.
  • ¼­¹ö´Â À§Ä¡µ¶¸³ÄÚµå(position independent code, PIC) ¶§¹®¿¡ Àý´ëÁÖ¼ÒÁöÁ¤(absolute addressing)º¸´Ù ´À¸° »ó´ëÁÖ¼ÒÁöÁ¤(relative addressing)ÀÇ º¹ÀâÇÑ ¾î¼Àºí·¯ ±â¹ýÀÌ ÇÊ¿äÇϹǷΠ¾î¶² Ç÷¡Æû¿¡¼­ ½ÇÇà½Ã ¾à 5% Á¤µµ ´Ê´Ù.
  • DSO ¸ðµâÀ» ´Ù¸¥ DSO±â¹Ý ¶óÀ̺귯¸®(ld -lfoo)¿¡ ¸µÅ©ÇÒ ¼ö ¾ø´Â Ç÷¡ÆûÀÌ Àֱ⶧¹®¿¡ (¿¹¸¦ µé¾î ELF±â¹Ý Ç÷¡ÆûÀº Áö¿øÇÏÁö¸¸ a.out±â¹Ý Ç÷¡ÆûÀº º¸Åë ÀÌ ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù) ¸ðµç Á¾·ùÀÇ ¸ðµâ¿¡ DSO¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù. ´Ù¸¥ ¸»·Î DSO ÆÄÀÏ·Î ÄÄÆÄÀÏÇÏ´Â ¸ðµâÀº ¾ÆÆÄÄ¡ Çٽɰú ¾ÆÆÄÄ¡ ÇÙ½ÉÀÌ »ç¿ëÇÏ´Â C ¶óÀ̺귯¸®(libc)¿Í ´Ù¸¥ µ¿Àû/Á¤Àû ¶óÀ̺귯¸®, À§Ä¡µ¶¸³Äڵ带 ´ã°í ÀÖ´Â Á¤Àû ¶óÀ̺귯¸® ¾ÆÄ«À̺ê(libfoo.a)ÀÇ ½Éº¼¸¸À» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´Ù¸¥ Äڵ带 »ç¿ëÇÏ·Á¸é ¾ÆÆÄÄ¡ ÇÙ½ÉÀÌ ±×°ÍÀ» ÂüÁ¶ÇÏ´øÁö, dlopen()À¸·Î Á÷Á¢ Äڵ带 Àоîµé¿©¾ß ÇÑ´Ù.

À̸§ Æнº¿öµå
ºñ¹Ð±Û (üũÇÏ¸é ±Û¾´À̸¸ ³»¿ëÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.)
¿ÞÂÊÀÇ ±ÛÀÚ¸¦ ÀÔ·ÂÇϼ¼¿ä.
   

 



 
»çÀÌÆ®¸í : ¸ðÁö¸®³× | ´ëÇ¥ : ÀÌ°æÇö | °³ÀÎÄ¿¹Â´ÏƼ : ·©Å°´åÄÄ ¿î¿µÃ¼Á¦(OS) | °æ±âµµ ¼º³²½Ã ºÐ´ç±¸ | ÀüÀÚ¿ìÆí : mojily°ñ¹ðÀÌchonnom.com Copyright ¨Ï www.chonnom.com www.kyunghyun.net www.mojily.net. All rights reserved.