º¸¾ÈÁ¢¼Ó
°øÁö»çÇ×
Áú¹®°ú ´äº¯
¹ÌÈ®ÀÎÀÔ±ÝÀÚ¸®½ºÆ®
¼¼±Ý°è»ê¼­ ½Åû
Æ®·¡ÇÈ ÃʱâÈ­ ½Åû
ÀÚÁÖÇÏ´Â Áú¹®
ÆÁ&Å×Å©
ÀÚ·á½Ç
  ³×ÀÓ¼­¹ö Á¤º¸
1Â÷ : ns.k2com.co.kr
        211.239.173.145
2Â÷ : ns2.k2com.co.kr
        211.239.112.50
  ¼­ºñ½º ½Åû
  °áÁ¦°èÁ¾ȳ»
°èÁ : 112-910015-50604
ÀºÇà : ÇϳªÀºÇà
¿¹±ÝÁÖ : (ÁÖ)¿»·Î¿ì»è½º
  °í°´»ó´ã¼¾ÅÍ
»ó´ãÀüÈ­ : 02-552-5415
»ó´ã½Ã°£ :
    ¿ù-±Ý¿äÀÏ 09:30~18:30
    Åä,ÀÏ,°øÈÞÀÏ ÈÞ¹«
±âº»¹è³Ê
Home > °í°´Áö¿ø¼¾ÅÍ > ÆÁ&Å×Å©
 
 
     ÆÁ&Å×Å©
ÀÛ ¼º ÀÚ ´ª½º¸Ç ³¯ Â¥ 2005-05-25  Á¶   È¸ 5677 
Á¦    ¸ñ   [¼­¹ö°ü¸®]RHES °è¿­¿¡¼­ BIND¿¡·¯ ¹ß»ý½Ã
RHES ¹× Ŭ·Ð ¹èÆ÷ÆÇÀÎ CentOS, WhiteboxLinux µî »ç¿ë½Ã ±âÁ¸¿¡ ¼³Ä¡µÇ¾îÁø Bind
ÆÐŰÁö¿Í À¥ºê¶ó¿ìÀúÀÎ ¸ðÁú¶ó ½ÇÇà½Ã Segment Fault ¶ó´Â µ¥·¯ ¸Þ½ÃÁö¸¦ »Ñ¸®¸ç 
½ÇÇàµÇÁö ¾Ê´Â °æ¿ì¸¦ ÇØ°áÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù.


1. Ä¿³Î 2.6ÀÇ Çâ»óµÈ ¾²·¹µù ¸ðµ¨°ú NPTL Áö¿ø

¾²·¹µù ÆÛÆ÷¸Õ½º¸¦ Çâ»óÇϱâ À§ÇÑ ¸¹Àº ÀÛ¾÷µéÀÌ 2.5 Ä¿³Î¿¡¼­´Â ¾²·¹µù ÆÛÆ÷¸Õ½º¸¦ Çâ»óÇϱâ À§ÇÑ 
¸¹Àº ÀÛ¾÷µéÀÌ ÀÌ·ç¾îÁ³´Ù. 2.6ÀÇ Çâ»óµÈ ¾²·¹µù ¸ðµ¨ ¶ÇÇÑ Ingo Molnar¿¡ ÀÇÇØ ¼öÇàµÇ¾ú´Ù. 
1:1 ¾²·¹µù ¸ðµ¨¿¡ ±â¹ÝÇÏ¿© »õ·Î¿î Native Posix Threading Library (NPTL)ÀÇ ÀÎÄ¿³Î Áö¿øÀÌ 
Æ÷ÇԵǾîÀÖ´Ù. Ulrich Drepper°ú ÇÔ²² Molnar¿¡ ÀÇÇØ °³¹ßµÇ¾ú´Ù. 
 
¾²·¹µù ½ÇÇà ¼Óµµµµ »¡¶óÁ³´Ù. 2.6 Ä¿³ÎÀº ÀÌÁ¦ 20¾ï PID±îÁö ÇÚµéÇÒ ¼ö ÀÖ´Ù. (IA32). 

¶Ç ´Ù¸¥ º¯È­´Â TLS (Thread Local Storage) ½Ã½ºÅÛ È£ÃâÀÇ µµÀÔÀÌ´Ù. ¾²·¹µå ·¹Áö½ºÅÍ·Î »ç¿ëµÉ
¼ö ÀÖ´Â GDT (Global Descriptor Table) ¿£Æ®¸®¸¦ ÇÑ °³ ÀÌ»ó ÇÒ´ç ÇÒ ¼ö ÀÖ´Ù. GDT´Â CPU ±â¹Ý
ÀÌ°í ¿£Æ®¸®´Â ¾²·¹µå ±â¹ÝÀÌ´Ù. 1:1 ¾²·¹µù ¸ðµ¨ÀÌ ¾²·¹µåÀÇ ¼ýÀÚ Á¦ÇÑ ¾øÀÌ ¸¸µé¾î Áú ¼ö ÀÖ´Ù. 
2.4 Ä¿³ÎÀº ÇÁ·Î¼¼¼­ ´ç ÃÖ´ë 8,192 ¾²·¹µå¸¸À» Çã¿ëÇß´Ù. 

Ŭ·Ð ½Ã½ºÅÛ È£ÃâÀÌ È®´ëµÇ¾î ¾²·¹µå »ý¼ºÀ» ÃÖÀûÈ­ÇÑ´Ù. ÀÌ Ä¿³ÎÀº CLONE_PARENT_SETID Ç÷¡±×
°¡ ¼³Á¤µÇ¸é ÁÖ¾îÁø ¸Þ¸ð¸® À§Ä¡¿¡ ¾²·¹µå ID¸¦ ÀúÀåÇϰí CLONE_CLEARID°¡ ¼³Á¤µÇ¸é ¾²·¹µå Á¾·á 
½Ã ¸Þ¸ð¸® À§Ä¡¸¦ Áö¿î´Ù. ÀÌ´Â »ç¿ëÀÚ ·¹º§ÀÇ ¸Þ¸ð¸® °ü¸®°¡ »ç¿ëµÇÁö ¾ÊÀº ¸Þ¸ð¸® ºí·ÏÀ» ÀνÄÇÒ ¼ö 
ÀÖµµ·Ï µ½´Â´Ù. ¶ÇÇÑ ¾²·¹µå ·¹Áö½ºÅÍÀÇ ½ÅÈ£ º¸¾È ·Îµù Áö¿øÀÌ Ãß°¡µÇ¾ú´Ù. 
Futex (fast user space mutex)´Â pthread_join Á¶Àο¡ ´ëÇØ Ä¿³Î¿¡ ÀÇÇØ ¼öÇàµÈ´Ù. 

POSIX ½Ã±×³Î Çڵ鸵Àº Ä¿³Î °ø°£¿¡¼­ ¼öÇàµÈ´Ù. ½Ã±×³ÎÀº ÇÁ·Î¼¼½º¿¡¼­ »ç¿ë °¡´ÉÇÑ °Í Áß Çϳª¿¡ 
Àü´ÞµÈ´Ù. Ä¡¸íÀû ½Ã±×³ÎÀº Àüü ÇÁ·Î¼¼½º¸¦ Á¾·á½ÃŲ´Ù. ½Ã±×³ÎÀÇ Á¤Áö ¹× Áö¼Ó ¿ª½Ã Àüü ÇÁ·Î¼¼½º
¿¡ ¿µÇâÀ» ÁØ´Ù. ÀÌ´Â ¸ÖƼ¾²·¹µå ÇÁ·Î¼¼½ºÀÇ ÀÛ¾÷ Á¦¾î¸¦ °¡´ÉÇÏ°Ô ÇÑ´Ù. 

Á¾·á ½Ã½ºÅÛ È£ÃâÀÇ º¯ÇüÀÌ µµÀԵǾú´Ù. exit_group()ÀÌ È£ÃâµÇ¸é ÀÌ ½Ã½ºÅÛ È£ÃâÀº Àüü ÇÁ·Î¼¼½º
¿Í ¾²·¹µå¸¦ Á¾·áÇÑ´Ù. ´õ¿íÀÌ Á¾·á Çڵ鸵Àº O(1) ¾Ë°í¸®ÁòÀÇ µµÀÔÀ¸·Î Çâ»óµÇ¾î ¼ö ½Ê¸¸ °³ÀÇ 
¾²·¹µå¸¦ °¡Áø ÇÁ·Î¼¼½º¸¦ 2ÃÊ¿¡ Á¾·áÇÑ´Ù. 

proc ÆÄÀϽýºÅÛµµ º¯°æµÇ¾î ¸ðµç ¾²·¹µå°¡ ¾Æ´Ñ ¿ø·¡ ¾²·¹µå¸¸ º¸°íÇÑ´Ù. ÀÌ´Â /proc ¸®Æ÷ÆÃÀÌ 
´À·ÁÁö´Â °ÍÀ» ¸·´Â´Ù. ÀÌ Ä¿³ÎÀº ¸ðµç ¾²·¹µå°¡ Á¾·áÇÒ ¶§ ±îÁö ¿ø·¡ ¾²·¹µå·Î ³²¾ÆÀÖ´Ù. 



2. ¹®Á¦Á¡

whiteboxlinux 3.0(RHEL 3ÀÇ SRPM±â¹Ý)¿¡¼­ Ä¿³Î 2.4.x¸¦ ÄÄÆÄÀÏ ÇÑ ÈÄ bind(³×ÀÓ¼­¹ö)¸¦ (Àç)½ÃÀÛÇÒ 
¶§ ¼¼Å©¸àÅ×ÀÌ¼Ç ¿À·ù("Segmentation Fault")°¡ ¹ß»ýÇÏ¸ç ¶ÇÇÑ À¥ºê¶ó¿ìÀúÀÎ ¸ðÁú¶ó¸¦ ½ÇÇà½Ã ¿ª½Ã ¿¡·¯
°¡ ¹ß»ýÇÑ´Ù. ÀÌ·± ¿¡·¯ÀÇ ¿øÀÎÀº Ä¿³Î 2.6¿¡¼­ »õ·Ó°Ô Àû¿ëµÈ Native Posix Threading Library 
(NPTL)ÀÌ Redhat Enterprise linux 3(RHEL3)¿¡¼­µµ Àû¿ëÀÌ µÇ¾ú´Ù. ºÒÇàÇϰԵµ ÀÌ·¯ÇÑ ±â´ÉÀº Ä¿³Î 
2.4.x´ë¿¡¼­´Â ȣȯÀÌ ¾ÈµÈ´Ù. ´ç¿¬È÷ RHEL3ÀÇ SRPMÀ¸·Î ¸®ºôµåµÈ whiteboxlinux3.0¿¡¼­ Ä¿³Î 2.4.x
(¼Ò½º)·Î ÄÄÆÄÀÏ ÇÏ¸é ¹®Á¦°¡ ¹ß»ýÇÑ´Ù. 



3. ÇØ°áÃ¥

ÀÌ·¯ÇÑ »õ·Î¿î pthread ¶óÀ̺귯¸®°¡ À§Ä¡ÇÑ µð·ºÅ丮´Â /lib/tlsÀÌ´Ù. 
ù¹øÂ° ÇØ°áÃ¥Àº ´ÙÀ½°ú °°ÀÌ /lib/tlsÀÇ µð·ºÅ丮¸íÀº ¼öÁ¤ÇÏ¸é µÈ´Ù.

]# mv /lib/tls /lib/tls.disable

µÎ¹øÂ° ÇØ°áÃ¥Àº ´ÙÀ½ÀÇ ³»¿ëÀ» /etc/profile¿¡ Ãß°¡½ÃŰ¸é µÈ´Ù.

]# echo "export LD_ASSUME_KERNEL=2.2.5" >> /etc/profile ó·³ Çϰųª Á÷Á¢ profileÀ» ¿­¾î¼­ 
Ãß°¡ÇÏ¸é µÈ´Ù.
(export LD_ASSUME_KERNEL=2.2.5 : Ä¿³ÎÀÇ ¹öÀüÀ» ȣȯ½ÃÄÑÁØ´Ù.) 


Ãâó : À§±ÛÀº www.ilinuxbay.com À±¿µÇÑ´ÔÀÇ Çã¶ôÀ» ¾ò¾î µî·ÏÇÑ ±ÛÀÔ´Ï´Ù.