ARM 프로세서 기반 시스템에 Windows 7을 설치할 수없는 이유는 무엇입니까? 알았습니다 . 이로 인해 현재 릴리스 버전의

오늘 저는 Microsoft Windows 8에 대한 몇 가지 뉴스 ( 1 , 2 , 3 , 4 )를 읽고 새로운 기능 중 하나가 ARM 프로세서 기반 시스템에서 실행될 수 있다는 것을 알았습니다 . 이로 인해 현재 릴리스 버전의 Windows (Seven)로 수행 할 수없는 이유가 궁금합니다.

ARM 프로세서 기반 시스템에 Windows 7을 설치할 때 알아야 할 실제 제한 사항은 무엇입니까? 커널 버전, 드라이버, 아키텍처 또는 이러한 요소의 혼합과 관련이 있습니까?

내가 알기 전까지는 ARM에 Linux를 설치할 수 있으므로 ARM의 VMWare 가상 머신에서 Windows Seven을 설치할 수 없습니까?



답변

바이너리가 ARM 프로세서에서 실행 되려면 해당 프로세서에 맞게 바이너리를 컴파일하거나 에뮬레이터에서 실행해야합니다.

Linux 시스템은 오픈 소스이므로 사람들은 ARM 시스템을 위해 특별히 컴파일하여 x86 특정 코드를 다시 작성할 수 있습니다. Windows 용 소스는 닫혀 있으므로 Microsoft에서 ARM 버전을 릴리스하지 않으면 다시 컴파일하여 실행할 수 없습니다.

ARM 시스템으로 이동하는 데 다른 문제가 있지만 이것이 가장 큰 문제 일 수 있습니다.

내가 아는 한 VMware는 x86을 에뮬레이션하지 않습니다. qemu 가 가능 하다고 생각 하지만 x86을 ARM으로 에뮬레이트하기 전에 ARM을 x86으로 에뮬레이션하는 데는 사용하지 않았습니다. 작동하면 성능이 크게 저하 될 수 있습니다.

프로그램을 실행하려는 아키텍처에 맞게 프로그램을 컴파일해야하지만 운영 체제를 특정 아키텍처에 맞게 훨씬 더 사용자 지정해야하는 경우가 종종 있습니다. 운영 체제는 프로세서와 매우 깊은 수준에서 작동하는 예약 및 작업 전환과 같은 작업을 담당합니다.


답변

간단한 대답은 “MS가 포트를 릴리스하지 않았습니다”(Windows 8은 ARM으로 포팅되어야 함)인데, 당시에는 비즈니스에 적합하지 않은 것입니다. 당신이 가고 싶다면, MS가 할 수 있다면 …

역사적으로 NT 제품군은 다양한 프로세서에서 실행되었습니다. NT는 Alpha, PPC 및 MIPS에서 실행되었으며 Clipper 및 SPARC 아키텍처 용으로 계획된 포트가있었습니다 . 이것은 Windows NT가 하드웨어 종속 코드 부분 ( HAL )을 추상화 하고 해당 섹션 만 다시 작성하고 다른 모든 것을 다시 컴파일하여 트릭을 수행해야하기 때문입니다 (이론에서는 .NET 기반 소프트웨어는 하드웨어에 독립적 임).

Linux와는 달리, 각 아키텍처에 대해 별도의 커널 브랜치를 가지고 있다면, HAL만이 하드웨어에 따라 다르고 나머지는 공통적입니다. 일단 ARM 플랫폼에 대한 HAL이 생성되면 상대적으로 높아야한다고 생각합니다 PCI-E 및 기타 산업 표준 인터페이스를 사용하여 시스템이 기존 방식 인 경우 다양한 하드웨어 비트에 대한 코딩과 다르지 않습니다.

Microsoft가 Windows 7의 ARM 포트를 릴리스했다고 가정 할 때 해석되지 않거나 JVM, LLVM 또는 CLR과 같은 VM에서 실행되는 모든 소프트웨어는 Rosetta 또는 이전 68K 호환성 과 같은 변환 계층에서 다시 컴파일하거나 실행해야합니다. x86 특정 코드를 인식하고 (에뮬레이션으로 투명하게 실행) 구형 Mac의 레이어를 사용 하고 번역에 충분한 프로세서 성능을 제공합니다.


답변

바이너리가 컴파일 된 아키텍처와 다른 아키텍처 인 프로세서에서는 바이너리를 실행할 수 없습니다.

i386 (32 비트) 프로세서에서 AMD64 Linux를 실행할 수없는 것처럼 ARM에서 AMD64 Linux를 실행할 수 없습니다. 유일한 옵션은 전체 프로세서를 에뮬레이트하고 ( qemu 참조 ) 최선을 다하는 것입니다.

VMware / VirtualBox는 프로세서 에뮬레이터가 아니므로 운이 좋지 않습니다.


답변