| OSXDEV.ORG Mac OS X °³¹ßÀÚ Æ÷·³ |
|
»ç½ÇÀº ÀÌ·¸´Ù¾ÖÇÃÀÇ Á¦½ºÃò¾î°¡ °¡²ûÀº Á» °úÀåµÈ °æÇâÀÌ ÀÖÁö¸¸ ±×·¸´Ù°í °ÅÁþ¸»À» ÀÏ»ï´Â ȸ»ç´Â ¾Æ´Ï´Ù. ¾ÖÇÃÀº ¸Å¿ì °ø°³ÀûÀÎ ÀÚ¸®´Â ¾Æ´ÏÁö¸¸ °ø½Ä ÀÎÅÍºä °°Àº ÀÚ¸®¿¡¼ ºÐ¸íÈ÷ ÆÒ¼°¡ 64ºñÆ® OS°¡ ¾Æ´Ï¶ó°í ¾ð±ÞÇß´Ù. ±×¸®°í ¾î¶² °ø½Ä ¹®¼¿¡¼µµ ÆÒ¼°¡ 64ºñÆ®¶ó°í ¾ð±ÞÇÑ Àûµµ ¾ø´Ù.´ÜÁö ¸î¸î ¹®¼¿¡¼ (ƯÈ÷ G5 ¿ÉƼ¸¶ÀÌ¡ ¹®¼) 64ºñÆ® ¿ÉƼ¸¶ÀÌ¡À̶õ Ç¥ÇöÀ» ¾²±â´Â ÇÏÁö¸¸ À̰ÍÀÌ ÆÒ¼°¡ 64ºñÆ®¶ó´Â Áõ°Å°¡ µÉ ¼ö´Â ¾ø´Ù. ¹«¾ùÀ» 64ºñÆ® OS¶ó°í º¼ °ÍÀΰ¡64ºñÆ® OS¿¡ ´ëÇÑ À̾߱⸦ Çϱâ Àü¿¡ ¹«¾ùÀ» 64ºñÆ® OS¶ó°í º¼ °ÍÀΰ¡ ÇÏ´Â ±âÁØÀÌ Áß¿äÇÒ °ÍÀ̶ó »ý°¢ÇÑ´Ù. ÇÊÀÚ°¡ Âü°í ÇϰíÀÚ ÇÏ´Â °ÍÀº Opengroup¿¡¼ ±¸ºÐÇÑ ¹æ½ÄÀ¸·Î ±× ÇÁ·Î±×·¡¹Ö ¸ðµ¨¿¡ ´ëÇÑ ºÐ·ù ¹æ¹ýÀº ¾Æ·¡ Ç¥¿Í °°´Ù.Datatype LP64 ILP64 LLP64 ILP32 LP32 char 8 8 8 8 8 short 16 16 16 16 _int32 32 int 32 64 32 32 16 long 64 64 32 32 32 long long 64 pointer 64 64 64 32 32 ÀÌ Ç¥¿¡¼ 64ºñÆ® ¸ðµå ÇÁ·Î±×·¡¹Ö ¸ðµ¨À̶ó°í º¼ ¼ö ÀÖ´Â °ÍÀº LP64, ILP64, LLP64¶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. intÀ¸ Å©±â°¡ Ç×»ó 64ºñÆ®°¡ ¾Æ´Ô¿¡ À¯ÀÇÇÒ Çʿ䰡 ÀÖ´Ù. Áï, °³¹ß»çÀÇ Àǵµ¿¡ µû¶ó¼ int¸¦ 32ºñÆ®·Î ³²±â°í ÀÖ´Â »óÅ·Π64ºñÆ®¸¦ Áö¿ø ÇÒ ¼ö ÀÖ´Ù´Â À̾߱âÀÌ´Ù. ÇöÀç ÀÌ ¼¼°¡Áö ¸ðµ¨ Áß¿¡¼ °¡Àå ÁÁ´Ù°í ÀÎÁ¤¹Þ´Â ¸ðµ¨Àº LP64·Î ÀÌ°Í ¿ª½Ã int¸¦ 32ºñÆ®·Î Çϰí ÀÖ´Ù. (¿©±â¿¡ ´ëÇÑ »ó¼¼ÇÑ Á¤º¸¸¦ º¸°íÀÚ ÇÑ´Ù¸é http://www.opengroup.org/public/tech/aspen/lp64_wp.htmÀ» Âü°íÇϱ⠹ٶõ´Ù.) ÆÒ¼¿Í 64ºñÆ®ÆÒ¼´Â 64ºñÆ® ¾ÆÅ°ÅØÃĸ¦ Áö¿øÇϱâ À§Çؼ ¸î °¡Áö ¹Ù²Û ºÎºÐÀÌ ÀÖ´Ù. ±×·¯³ª À̰ÍÀº OS ³»ºÎ¿¡¸¸ ÇØ´çÇϱ⠶§¹®¿¡ °³¹ßÀÚ´Â 64ºñÆ® ÄÄÇ»ÅÍ¿¡¼ ÀÛµ¿µÇ´Â µð¹ÙÀ̽º µå¶óÀ̹ö¿¡ ÇÑÇØ¼ ±× ÀåÁ¡À» ¾òÀ» ¼ö ÀÖ´Ù. Áï Ä¿³Î ¸ðµå¿¡¼ 64ºñÆ® ¾îµå·¹½ÌÀ» »ç¿ë ÇÒ ¼ö ÀÖ´Ù.±×·¯³ª ÆÒ¼¿¡¼ ¾ÖÇø®ÄÉÀ̼ǵéÀº ILP32·Î µÈ ¶óÀ̺귯¸®¸¦ ¸µÅ©ÇÑ´Ù. Áï, Ä¿³Î ¸ðµå¿¡¼ ¾à°£ÀÇ 64ºñÆ® ¾îµå·¹½ÌÀ» Áö¿øÇÏ´Â °Í°ú µÚ¿¡ gcc¸¦ ¼Ò°³ÇÏ¸é¼ À̾߱â ÇÒ ¸î °³ÀÇ »õ·Î¿î ÀνºÆ®·°¼Ç, ±×¸®°í 64ºñÆ® ÆÄÀϽýºÅÛ ÀÌ ¿Ü¿¡´Â 64ºñÆ®¶ó°í º¼¸¸ÇÑ ºÎºÐÀÌ ¾ø´Ù´Â °ÍÀÌ´Ù. ºñ·Ï ÇöÀç ÃÖ°í »ç¾çÀÇ G5 ¸Ó½®ÀÌ 8GBÀÇ ¹°¸®Àû ¸Þ¸ð¸®¸¦ Áö¿øÇÏÁö¸¸ À̰ÍÀº ´Ù¸¥ OS¸¦ ÀÌ¿ëÇÏ´Â ½Ã½ºÅ۵鵵 ¸ðµÎ °¡´ÉÇÑ °ÍÀÌ´Ù. À̰ÍÀº °á±¹ ÆÒ¼´Â ¹ÝÂÊ 64ºñÆ® OS¶ó´Â °ÍÀ̰í(»ç½Ç ¹ÝÂʵµ ¾È µÈ´Ù°í »ý°¢ÇÑ´Ù.) À̰ÍÀº Çѵ¿¾È °íÃÄÁöÁö ¾ÊÀ» °Í °°´Ù. À̰ÍÀº ±â¼úÀûÀÎ ¹®Á¦¶ó±â º¸´Ù Á¤Ã¥ÀûÀÎ ¹®Á¦¿¡ ±âÀÎÇÑ °ÍÀ̶ó »ý°¢µÇ´Âµ¥ ¾Æ¸¶µµ 10.4¿¡ °¡¼ 64ºñÆ® OS¶ó ºÎ¸¦ ¼ö ÀÖ´Â °ÍÀÌ ³ª¿À¸é ´ÙÇàÀ̶ó »ý°¢ÇÏ°í ¾î¼¸é ´õ ¿À·¡ °É¸±Áöµµ ¸ð¸¥´Ù°í »ý°¢µÈ´Ù. GCC 3.3¾ÖÇÃÀÇ °³¹ß ÅøÀº ÇöÀç gcc 3.3À» »ç¿ëÇϰí ÀÖ´Ù. ¿©±â¿¡´Â ¸î °³ÀÇ G5 Æ©´×¿¡ °ü·ÃµÈ Ç÷¡±×°¡ Àִµ¥ G5¿¡¼¸¸ »ç¿ë ÇÒ ¼ö ÀÖ´Â ÀνºÆ®·°¼ÇÀ» »ç¿ë °¡´ÉÇÏ°Ô ÇØÁÖ´Â ¿É¼Ç°ú G5¿¡ ¸Â°Ô Æ©´× ÇØÁÖ´Â ¿É¼ÇÀÌ ÀÖ´Ù.ÀÚÁÖ »ç¿ëÇÏ´Â ¸î °³ÀÇ Ç÷¡±×´Â ¾Æ·¡ Ç¥¿Í °°´Ù. -mcpu=970 G5¿¡¼¸¸ »ç¿ë °¡´ÉÇÑ ÀνºÆ®·°¼Ç ¼ÂÀ» »ç¿ëÇÑ´Ù. -mtune=970 G5¿¡ ¸ÂÃç¼ Æ©´×Àº Ç쵂 ÄÚµå´Â ȣȯ¼ºÀ» °¡Áö°Ô ÇÑ´Ù. -mpowerpc64 G5ÀÇ ³×ÀÌÆ¼ºê long long(64ºñÆ®) ŸÀÔÀ» »ç¿ëÇÏ°Ô Çϴµ¥ long longŸÀÔÀ¸·Î ¿¬»êÇÒ ¶§ ¼º´ÉÀÌ ¸¹ÀÌ Çâ»óµÈ´Ù. -mpowerpc-gpopt G5ÀÇ ³×ÀÌÆ¼ºê ½Ç¼ö ½ºÄù¾î·çÆ®¸¦ »ç¿ë °¡´ÉÇÏ°Ô ÇÑ´Ù. -force_cpusubtype_ALL ÄÄÆÄÀÏ·¯°¡ Äڵ忡 ÀÌ Äڵ尡 G5Àü¿ëÀ̶ó°í ¸¶Å©ÇÏÁö ¸øÇÏ°Ô ÇÑ´Ù. Áï, G5Àü¿ë ÀνºÆ®·°¼ÇÀ» »ç¿ëÇÏÁö¸¸ OS´Â ±×·±µ¥ °ü¿©Ä¡ ¾Ê°í ¸ðµç PPC CPU¿¡¼ ÀÛµ¿µÇ°Ô ÇØ¹ö¸®±â ¶§¹®¿¡ À߸øÇÏ¸é ¾ÖÇø®ÄÉÀ̼ÇÀÌ Å©·¡½¬ ÇÒ ¼ö ÀÖ´Ù.
#include <mach/mach.h>
#include <mach/mach_host.h>
#include <mach/host_info.h>
#include <mach/machine.h>
#ifndef CPU_SUBTYPE_POWERPC_970
#define CPU_SUBTYPE_POWERPC_970 ((cpu_subtype_t) 100)
#endif
boolean_t IsG5()
{
host_basic_info_data_t hostInfo;
mach_msg_type_number_t infoCount;
infoCount = HOST_BASIC_INFO_COUNT;
host_info(mach_host_self(), HOST_BASIC_INFO, (host_info_t)&hostInfo, &infoCount);
return ((hostInfo.cpu_type == CPU_TYPE_POWERPC) && (hostInfo.cpu_subtype == CPU_SUBTYPE_POWERPC_970));
}
¹®Á¦´Â ¸Æ °³¹ßÀڵ鿡°Ô gcc°¡ ±×·¸°Ô Àý´ëÀûÀÎ ÁöÁö¸¦ ¹Þ°í ÀÖ´Ù°í ¸»ÇÒ ¼ö ¾ø´Ù´Â °ÍÀÌ´Ù. ÈçÈ÷ ¸Æ °³¹ßÀÚµé »çÀÌ¿¡ gcc¸¦ PPC¿¡ ÃÖÀûÈµÈ Äڵ带 ¸¸µé¾î³»Áö ¸øÇÏ´Â Á¶±ÝÀº ºÎÁ·ÇÑ ÄÄÆÄÀÏ·¯·Î Àνĵǰï ÇÑ´Ù. ¾îÂ÷ÇÇ gcc°¡ ´Ù¾çÇÑ Ç÷§Æû¿¡¼ µ¹¾Æ°¡´Â ÄÄÆÄÀÏ·¯ÀÌÁö¸¸ ³²ÀÇ ¶±ÀÌ Ä¿ º¸Àδٰí ÇÏÁö ¾Ê¾Ò´ø°¡. x86¿¡¼ ´õ ¿Ïº®ÇÑ Äڵ带 ¸¸µé¾î³»´Â °ÍÀ» ¸¶³É ºÎ·¯¿öÇϰí ÀÖ¾î¾ß ÇÒ »ÓÀÌ´Ù. Á¤È®ÇÏÁö ¾ÊÀº, ±×³É °æÇèÀûÀÎ ¸»µé¿¡ ÀÇÇϸé POWER4¿¡¼ ÃÖÀûÈµÈ ÄÄÆÄÀÏ·¯º¸´Ù gcc°¡ 20% Á¤µµ ¼º´É ÀúÇϸ¦ ÀÏÀ¸Å²´Ù°í ÇÑ´Ù. ¾ÆÁ÷ À̰Ϳ¡ ´ëÇØ Á¤È®ÇÑ ±Ù°Å¸¦ °¡Áö°í Å×½ºÆ®¸¦ ÇÑ ÀڷḦ ±¸ÇÏÁö´Â ¸øÇß´Ù. ±×·¡¼ ¸¹Àº ¸Æ °³¹ßÀÚµéÀÌ Àº±ÙÈ÷ ±â´Ù¸®´ø °ÍÀÌ ÀÖ¾ú´Âµ¥ ±×°ÍÀÌ ¹Ù·Î IBMÀÇ ÄÄÆÄÀÏ·¯´Ù. IBM XL C++IBMÀÇ XL C++ÀÌ PowerPC 970¿¡ ÃÖÀûÈ µÇ¾î¼ ³ª¿ÍÀÖ´Ù. À̰ÍÀº C/C++À» Áö¿øÇÏ´Â ÄÄÆÄÀÏ·¯·Î ¼º´É¸é¿¡¼ gccº¸´Ù ¸Å¿ì ¶Ù¾î³¯ °ÍÀÌ¶ó ¿¹»óµÇ°í ÀÖ´Ù.XL C++Àº gcc 3.3À» ÇÊ¿ä·Î Çϴµ¥ Çì´õÆÄÀϰú ·±Å¸ÀÓ ¶óÀ̺귯¸®¸¦ gccÀÇ °ÍÀ» ±×´ë·Î ÀÌ¿ëÇÑ´Ù. »ç½Ç ÇÊÀÚ°¡ XL C++À» ´« ¿©°Ü º» °¡Àå Å« ÀÌÀ¯´Â 64ºñÆ® ÄÚµåÀÇ »ý¼ºÀÌ ¾î¶³±î ½Í¾î¼¿´´Âµ¥ ¸Å´º¾ó ù ÀåÀ» ä ³Ñ±â±âµµ Àü¿¡ 32ºñÆ® ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇÑ ÄÄÆÄÀÏ·¯¶ó´Â ¸»À» º¸°í ¹«Ã´ ½Ç¸ÁÇß¾ú´Ù. ÀÚ, ±×·¸´Ù¸é ±×Åä·Ï ±â´ëÇß´ø ÃÖÀûȸ鿡¼´Â ¾î¶³±î? ±×¿¡ ´ëÇÑ ´äÀº, 'º°·Î ±â´ëÇÏÁö ¾Ê´Â´Ù.'ÀÌ´Ù. °¡Àå Å« ÀÌÀ¯´Â ·±Å¸ÀÓ ¶óÀ̺귯¸®¸¦ gccÀÇ °ÍÀ» ±×´ë·Î ¾´´Ù´Â °Í ¶§¹®Àε¥ ½ÇÁ¦ ÄÚµå ½ÇÇà¿¡ ÀÖ¾î¼ ¸¹Àº ºÎºÐÀÌ ·±Å¸ÀÓ ¶óÀ̺귯¸®¿¡ ÀÇÇØ ÀÌ·ç¾î Áø´Ù°í ºÃÀ» ¶§ ÃÖÀûÈ µÈ ·±Å¸ÀÓ ¶óÀ̺귯¸®¸¦ ÇÔ²² Á¦°øÇßÀ¸¸é ¾î¶®À»±î ÇÏ´Â ¾Æ½¬¿òÀÌ ³²´Â´Ù. ¶ÇÇÑ, ¶Ç Çѹø ±â´ë¸¦ Àú¹ö¸° °ÍÀº ÀÌ ÄÄÆÄÀÏ·¯°¡ ¿ÀºêÁ§Æ¼ºê-C¸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù´Â °ÍÀÌ´Ù. Mac OS XÀÇ °¡Àå Áß¿äÇÑ ÇÁ·¡ÀÓ¿÷ÀÎ ÄÚÄھƸ¦ »ç¿ëÇÒ ¹æ¹ýÀÌ ¾ø´Â °ÍÀÌ´Ù. °á±¹ ÄÚÄھƸ¦ »ç¿ëÇÑ´Ù¸é ¾ÆÁ÷ XL C++Àº ´äÀÌ ¾Æ´Ï¶ó´Â °á·ÐÀ» ³»¸± ¼ö ¹Û¿¡ ¾ø¾ú´Ù. Link to this Page
Since 2001, OSXDEV.ORG |