OSXDEV.ORG
Mac OS X °³¹ßÀÚ Æ÷·³
  [ FORUM ]   [ WIKI ] 
[ View ]  [ Edit ]  [ Attachments ]  [ History ]    [ Home ]  [ Changes ]  [ Search ]  [ Help ] 
ÆäÀÌÁö ÆíÁý ¾ÏÈ£´Â osx/cocoa ÀÔ´Ï´Ù 

»ç½ÇÀº ÀÌ·¸´Ù

¾ÖÇÃÀÇ Á¦½ºÃò¾î°¡ °¡²ûÀº Á» °úÀåµÈ °æÇâÀÌ ÀÖÁö¸¸ ±×·¸´Ù°í °ÅÁþ¸»À» ÀÏ»ï´Â ȸ»ç´Â ¾Æ´Ï´Ù. ¾ÖÇÃÀº ¸Å¿ì °ø°³ÀûÀÎ ÀÚ¸®´Â ¾Æ´ÏÁö¸¸ °ø½Ä ÀÎÅÍºä °°Àº ÀÚ¸®¿¡¼­ ºÐ¸íÈ÷ ÆÒ¼­°¡ 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¿¡¼­ ÀÛµ¿µÇ°Ô
ÇØ¹ö¸®±â ¶§¹®¿¡ À߸øÇÏ¸é ¾ÖÇø®ÄÉÀ̼ÇÀÌ Å©·¡½¬ ÇÒ ¼ö ÀÖ´Ù.

  • force_cpusbutype_ALL¿É¼ÇÀ» ÁáÀ» ¶§ °³¹ßÀÚ´Â Äڵ忡¼­ CPUŸÀÔÀ» È®ÀÎÇØ¼­ G5¿¡¸¸ ÀÖ´Â ÀνºÆ®·°¼ÇÀÌ »ç¿ëµÇ´Â Äڵ带 ÇÇÇØ³ª°¡¾ß ÇÑ´Ù.
±×°ÍÀ» ÇØÁÖ´Â ÇÔ¼ö´Â ¾Æ·¡¿Í °°ÀÌ ±¸Çö °¡´ÉÇÏ´Ù.
#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