티스토리 뷰

반응형
isainfo -v   를 실행보면 32비트를 지원하는지  64비트를 지원하는지 알 수 있음.
물론 둘다 지원하는 경우도 있죠.

isainfo -v
64-bit sparcv9 applications
32-bit sparc applications

sun c compiler에서 64비트로 컴파일하려면 "-xarch=v9" 옵션을 주면 됩니다.
64bit 용 동적 라이브럴리는  /usr/lib/spracv9  하위에 존재 합니다.

Q: Solaris 2.7의 가장 큰 특징은 어떤 것입니까?
A: 우선 정한 64비트 및 32비트 응용 프로그램을 개발하고 실행할 수 있는 환경입니다. 64비트와 32비트를 모두 지원하기 때문에 기존 응용 프로그램에 최대 호환성을 제공합니다. 이제 번들로 포함된 모든 커널 드라이버가 MT(다중 스레드)를 지원합니다. 개발자가 다중 스레드를 지원하지 않는 협력업체 드라이버를 호출하면 경고 메시지가 나옵니다. 일관된 실행을 위해 64비트 커널에서 32비트 라이브러리가 작동합니다.

Q: 64비트 커널과 32비트 커널에 대한 설명이 있는데, 실행중인 커널이 어떤 것인지 어떻게 구별합니까?
A: isainfo -kv 명령을 실행하면 운영체제가 64비트인지 32비트인지 알 수 있습니다. /platform/sun4u/boot.conf 매뉴얼 페이지에 기본 시작 모드가 정의되어 있습니다. 200MHz 이하의 UltraSPARC-I 프로세서를 사용하는 시스템에서는 32비트 커널을 기본 부트 파일로 사용합니다. 보다 고급 시스템에서는 64비트 커널이 선택됩니다. 자세한 내용은 boot(1M) 매뉴얼을 참조하십시오.

Q: 64비트 운영체제는 왜 필요합니까?
A: 메모리 가격은 급속하게 하락하고, 데이터베이스, 응용 프로그램, 웹 검색, 첨단 과학 연구 등에 높은 성능의 컴퓨팅이 요구됨에 따라 32비트 메모리 주소 공간으로는 한계가 있습니다. 이제 64비트 주소 공간을 사용하면 응용 프로그램에서 보다 많은 데이터를 메모리에 올릴 수 있기 때문에 속도가 보다 빨라집니다. 또 앞으로도 계속 변할 것입니다.

Q: 64비트 컴퓨팅을 위한 하드웨어 요구사항이 있습니까?
A: ultra sparc 프로세서가 설치된 시스템에서만 64비트 응용 프로그램을 실행할 수 있습니다. 그러나 sparc 시스템에서 64비트로 개발은 할 수 있지만 테스트는 할 수 없습니다. "isainfo -v" 명령을 사용하면 하드웨어가 64비트 응용 프로그램을 지원하는지 확인할 수 있습니다.

Q: 64비트를 지원하기 위해 라이브러리에 변경된 사항이 있습니까?
A: 64비트 응용 프로그램을 컴파일하거나 실행하기 위해 특별한 64비트 라이브러리가 추가되었습니다. 또 32비트 응용 프로그램은 전처럼 32비트 라이브러리에 링크됩니다. 새로운 64비트 라이브러리는 해당 32비트 라이브러리와 동일한 경로의 sparcv9 하위 디렉토리에 있습니다. 예를 들어 32 비트 libc.so.1이 /usr/lib에 있으면 해당 64비트 라이브러리는 /usr/lib/sparcv9/libc.so.1입니다. 64비트 지원을 위해 약 50개의 API가 라이브러리에 추가되었습니다.

Q: 64비트 응용 프로그램을 컴파일하기 위해 특별한 컴파일러가 필요합니까?
A: C, C++ 및 Fortran으로 작성한 코드를 64비트 바이너리로 빌드하려면 새로운 sparc compilers 5.0이 필요합니다. 새 컴파일러를 사용하면 32비트 시스템에서 64비트 바이너리를 빌드할 수 있습니다. 이 컴파일러는 기본적으로 32비트 바이너리를 빌드하고, 64비트 바이너리를 빌드하려면 "-xarch=v9" 옵션을 사용해야 합니다. 또 32비트와 64비트 바이너리를 혼합할 수는 없습니다.

Q: 동적 링크를 위한 라이브러리 검색 경로는 어떻게 지정합니까?
A: 기본 설정에 따라 링커가 32비트 응용 프로그램의 경우는 /usr/lib에서, 64비트 응용 프로그램의 경우는 /usr/lib/spracv9에서 라이브러리를 찾습니다. 32비트 프로그램의 경우에는 전처럼 LD_LIBRARY_PATH 변수를 지정해서 다른 검색 경로를 지정할 수 있습니다. 64비트 라이브러리는 새로운 쉘 환경 변수 LD_LIBRARY_PATH_64를 사용해서 경로를 지정합니다. -R 옵션을 사용해서 런타임으로 컴파일러에 경로를 지정할 수도 있습니다.

Q: 다른 라이브러리와 응용 프로그램이 사용하는 라이브러리 경로 사이에 혼동을 피하려면 어떻게 해야 합니까?
A: 링커가 라이브러리의 절대 경로로 해석하여 링크하도록 개발자가 $ORIGIN 쉘 변수를 지정할 수 있습니다. 그러면 개발자가 정확한 라이브러리 버전을 링크하도록 응용 프로그램을 빌드할 수 있습니다.

Q: 64비트 라이브러리를 사용자 정의하여 생성할 수 있습니까?
A: 32비트 개체를 사용하면 64비트 공유 라이브러리를 생성할 수 없습니다. 동일한 소스 코드를 사용해서 32비트 및 64비트 공유 라이브러리를 생성하려면 32비트 및 64비트 개체로 다시 컴파일해야 합니다. 32비트 및 64비트 개체로 컴파일했으면 둘을 링크해서 32비트 및 64비트 라이브러리를 별도로 생성하십시오.

Q: 64비트 응용 프로그램은 어떻게 디버그합니까?
A: 새로 나온 sparc compiler 5.0 이전의 디버거는 32비트 디버거입니다. 따라서 64비트 응용 프로그램을 디버그하려면 5.0 디버거가 필요합니다. 64비트 디버거는 32비트 및 64비트 응용 프로그램을 모두 디버그할 수 있습니다.

Q: 64비트 컴퓨팅을 위한 준비가 완료되었습니다. 데이터 모델에 대해 필요한 사전 정보가 있습니까?
A: 예. 모든 데이터 유형이 64비트로 변환되는 것이 아닙니다. long과 포인터(pointer) 유형만 64비트입니다. 나머지는 모두 전과 동일합니다. 아래 표에 데이터 유형 크기가 있습니다.

유형 32비트 64비트
______________________________

Char 8 8
short 16 16
int 32 32
long 32 64
long long 64 64
pointer 32 64

Q: 32비트 및 64비트 컴퓨팅을 위해 기존의 코드와 새 코드에 버그가 없는지 확인하는 도구가 있습니다?
A: 컴파일하기 전에 코드에 버그가 없는지 확인하려면 lint를 사용하십시오. 특별한 옵션으로 "-errchk=longptr64"를 사용하면 잘림 문제가 있는지 확인할 수 있습니다. 그러면 데이터 유형이 일치하지 않을 때마다 경고를 표시합니다.

Q: 64비트 컴퓨팅에 대한 설명서가 있습니까?
A: 온라인 매뉴얼 페이지에 자세한 설명이 있습니다. 판매용으로 새로 나온 "64비트 개발자 안내서"(일련번호 805-3635)도 있습니다.

참고: Infodoc 18313

제품 영역: 응용 프로그램
제품: SunSolve
SUNOS 릴리즈: 2.7 베타
하드웨어: 모든 하드웨어

[http://kr.sun.com/service/techdocs]
반응형