SPARC, IBM PowerPC에 대한 응용 프로그램을 개발하는 데 x86 및 x86-64 대상 이외의 별도 작성기가 필요합니까?SPARC, IBM Power CPU 용 개발 응용 프로그램에 x86, x86-64 타겟 이외의 별도의 컴파일러가 필요합니까?
사실이라면 Linux의 x86, x64 바이너리를 SPARC 및 PowerPC로 얼마나 쉽게 포팅 할 수 있습니까? 가상화를 사용하여 이러한 환경을 시뮬레이션 할 수있는 방법이 있습니까?
SPARC, IBM PowerPC에 대한 응용 프로그램을 개발하는 데 x86 및 x86-64 대상 이외의 별도 작성기가 필요합니까?SPARC, IBM Power CPU 용 개발 응용 프로그램에 x86, x86-64 타겟 이외의 별도의 컴파일러가 필요합니까?
사실이라면 Linux의 x86, x64 바이너리를 SPARC 및 PowerPC로 얼마나 쉽게 포팅 할 수 있습니까? 가상화를 사용하여 이러한 환경을 시뮬레이션 할 수있는 방법이 있습니까?
첫 번째 대답은 Power Architecture 또는 SPARC 용 컴파일 된 코드를 개발하려면 해당 프로세서 용 코드를 생성하는 컴파일러가 필요하다는 것입니다. x86 또는 x86_64 코드를 생성하는 컴파일러는 Power Architecture 또는 SPARC에서 실행되는 코드를 생성하지 않습니다. x86이나 32 또는 64에서 실행되는 크로스 컴파일러가 Power 나 SPARC 코드를 생성 할 수 있습니다. 하지만 알아 두어야 할 것은 객체 파일 형식 (elf, xcoff 등)입니다. 지시 집합은 그림의 일부입니다.특정 출발점과 목표에 대한 자세한 내용을 제공하면 명확한 답을 얻을 수 있습니다.
둘째로, 일반적으로 이진 포팅에 대해서는 언급하지 않습니다. 우리는 어셈블리 언어와 C 또는 다른 언어를 포함 할 수있는 소스 코드를 포팅합니다. 이를 수행하는 프로세스에는 컴파일러 선택이 포함되며, 그 다음에 새 하드웨어의 코드를 컴파일, 포팅, 컴파일 및 링크하는 반복 프로세스를 시작할 수 있습니다. 나는 많은 세부 사항을 생략하고있다. 다시 한 번 질문에 더 구체적인 내용을 제공하면 구체적인 답변을 얻을 수 있습니다.
셋째, 언급 한대로, 아니요. 언급 한 시나리오에서 가상화를 사용할 수 없습니다. 수용 가능한 에뮬레이션 솔루션을 찾을 수 있습니다. 가능한 경우 자세한 내용을 다시 입력하십시오.
Java 또는 LLVM을 사용하거나 다른 CPU를 테스트하려면 QEMU을 시도하십시오.
코드가 이식 가능하도록 작성된 경우 쉽습니다. 그렇지 않은 경우가 아닙니다. 플랫폼, 코드, 인라인 어셈블리 등에 따라 다양한 데이터 유형의 크기가있을 수 있습니다. LLVM과 QEMU에 대한
홈 페이지 :
포인터 연산은 일반적으로 이식 가능합니다. 어셈블리 언어와 함께 분류하는 것은 어리 석다. –
ㅎ, 나는이 물건에 경험이 없다. 그것은 32 비트 대 64 비트 권리의 문제입니까? – gtrak
새 플랫폼에서 실행해야하는 코드가 없으면 다시 작성하거나 처음부터 다시 시작하는 경우 언어 선택권이있을 수 있습니다. 레거시 코드 일 때는 불가능할 수도 있습니다. –
아니, 가상화가 답이 아니다. 가상화는 하드웨어 플랫폼을 사용하고 동일한 하드웨어의 독립적 인 "가상"머신을 생성합니다. 따라서 x86에서 실행될 때 가상화를 사용하여 두 번째 x86 시스템을 생성합니다.
완전히 다른 하드웨어 아키텍처를 시뮬레이트하려면 emulation을 조사해야합니다.
한 아키텍처에서 다른 아키텍처로 소프트웨어를 이식하는 것이 얼마나 쉬운 지 소프트웨어가 작성된 방법에 달려 있습니다. 하나의 아키텍처에서 특정 것이지만 다른 하나는 그렇지 않은 경우 (예 : x86은 비 정렬 메모리 액세스를 처리 할 수 있지만 SPARC에서는 그렇지 않습니다) 이와 같은 문제를 해결해야합니다. 소프트웨어가 하드웨어의 특정 엔디안을 가정하면 이식하기가 어려울 수있는 또 다른 예가 될 수 있습니다.
SPARC, IBM PowerPC는 별도의 x86 이외의 compliers 및 x86-64에 목표를 필요로? 당신도 생각을 않은 곳
난 정말 날카로운로 싫어하지만 (즉, 완전히 별도의 기계 langauge 이야기) IBM PowerPC와 SPARC는 x86 또는 x86-64의 명령 세트를 지원하지 않는 점을 감안 그들은 것 호환 가능합니까?
가상화를 사용하여 환경을 시뮬레이트하는 방법이 있습니까?
아마도 가능하지만 기계 코드를 번역하거나 잘 해석해야하기 때문에 실제로 느릴 수 있습니다. CPU 아키텍처가 다르다면 하드웨어 가상화가 작동하지 않습니다. SPARC와 PowerPC는 단지 "같은 것을 나타내는 다른 레이블"이 아니라 내부적으로 매우 다릅니다.
안녕하세요, 세부 사항 : 우리는 레거시 Windows 응용 프로그램 (c, C++) 용 Linux에서 새로운 구성 요소 (C++)를 개발하려고합니다. API는 C로되어 있고 요구 사항은 Linux, Solaris 및 AIX입니다. 오늘 Dev Env는 MS VS2008입니다. 모든 의견 감사, – maruti
그래서 레거시 Windows 응용 프로그램에 대한 소스 코드가 있으십니까? 이 레거시 응용 프로그램은 Linux, Solaris 및 AIX에서 실행해야하며 Windows 시스템에서 실행되며 다른 플랫폼에서 원격으로 통신합니다. –
기존 앱 (서버)은 Windows에서 실행되며 Linux, Solaris (클라이언트)의 새 코드와 통신해야합니다. C, C++ API – maruti