Hari ini saya membaca beberapa berita ( 1 , 2 , 3 , 4 ) tentang Microsoft Windows 8 dan melihat bahwa salah satu fitur baru adalah dapat dijalankan melalui sistem berbasis prosesor ARM . Ini membuat saya bertanya-tanya alasan bahwa hal itu tidak dapat dilakukan dengan versi rilis Windows saat ini (Seven).
Apa batasan sebenarnya untuk Windows 7 untuk mewaspadai menginstalnya pada sistem berbasis prosesor ARM? Itu harus dilakukan dengan versi kernel, driver, arsitektur atau bahkan campuran dari faktor-faktor ini?
Sampai saya tahu, saya dapat menginstal Linux pada ARM, jadi saya bahkan tidak dapat menginstal Windows Seven di bawah mesin virtual VMWare pada ARM?
Jawaban:
Agar binari dapat berjalan pada prosesor ARM, mereka harus dikompilasi untuk prosesor tersebut secara khusus atau dijalankan dalam emulator.
Karena sistem Linux adalah open source, orang dapat mengompilasinya secara spesifik untuk sistem ARM dan menulis ulang kode spesifik x86 apa pun. Karena sumber untuk Windows ditutup, kecuali Microsoft merilis versi ARM, itu tidak dapat dikompilasi ulang dan dijalankan di atasnya.
Ada masalah lain dengan pindah ke sistem ARM, tetapi ini mungkin yang terbesar.
Sejauh yang saya tahu, VMware tidak akan meniru x86. Saya pikir qemu mungkin bisa, tetapi saya belum menggunakannya untuk ARM yang mengemulasi x86 sebelumnya, hanya x86 yang mengemulasi ARM. Akan ada hit kinerja yang signifikan jika berhasil.
Sementara setiap program perlu dikompilasi untuk arsitektur yang dimaksudkan untuk dijalankan, sistem operasi seringkali perlu lebih disesuaikan dengan arsitektur tertentu. Sistem operasi bertanggung jawab untuk hal-hal seperti penjadwalan dan pengalihan tugas, yang bekerja dengan prosesor pada level yang sangat dalam.
sumber
Jawaban sederhana adalah "MS belum merilis port" (meskipun Windows 8 seharusnya porting ke ARM), hanya karena itu tidak masuk akal bisnis pada saat itu. Jika Anda ingin masuk, jika MS bisa ...
Yah, secara historis, keluarga NT telah berjalan pada berbagai prosesor - NT berjalan pada Alpha, PPC dan MIPS, dan ada pelabuhan yang direncanakan untuk arsitektur Clipper dan SPARC. Ini dimungkinkan karena Windows NT mengabstraksi bagian-bagian yang bergantung pada perangkat keras dari kode ( HAL ) dan menulis ulang hanya bagian itu dan mengkompilasi ulang semua yang lain harus melakukan trik (meskipun dalam teori . Perangkat lunak berbasis NET seharusnya independen perangkat keras).
Tidak seperti Linux, yang, jika saya ingat benar memiliki cabang kernel yang terpisah untuk setiap arsitektur, HANYA HAL adalah perangkat keras khusus, dan sisanya adalah umum - saya percaya bahwa sekali HAL untuk platform ARM yang dimaksud dibuat, itu harus relatif sepele, dan tidak berbeda dari pengkodean untuk berbagai bit perangkat keras, terutama jika sistem itu konvensional, katakanlah, menggunakan PCI-E dan antarmuka standar industri lainnya.
Dengan asumsi Microsoft merilis port ARM Windows 7, perangkat lunak apa pun yang tidak diinterpretasikan, atau berjalan pada jenis VM seperti JVM, LLVM atau CLR perlu dikompilasi ulang atau dijalankan pada lapisan terjemahan, seperti Rosetta atau kompatibilitas 68K lama lapisan pada mac yang lebih lama , yang menyadari kode spesifik x86 (dan menjalankannya dalam emulasi secara transparan), dan ada kekuatan prosesor yang cukup untuk terjemahan.
sumber
Anda tidak bisa menjalankan binari pada prosesor yang arsitekturnya berbeda dari arsitektur tempat biner dikompilasi.
Anda tidak dapat menjalankan AMD64 Linux pada ARM, sama seperti Anda tidak dapat menjalankan AMD64 linux pada prosesor i386 (32-bit). Satu-satunya pilihan Anda adalah meniru seluruh prosesor (lihat qemu ) dan kemudian mencoba yang terbaik.
VMware / VirtualBox bukan emulator prosesor, jadi Anda juga kurang beruntung di sana.
sumber