Flamboyan


Pernah bertanya-tanya apa yang diperlukan untuk menjalankan perangkat lunak Windows pada ARM? Maka artikel ini mungkin cocok untuk Anda!

Jadi ketika saya mulai bermain-main dengan Raspberry Pi untuk melihat apakah saya bisa menggunakannya sebagai PC desktop spec'd saya tahu saya harus menjalankan Notepad ++ atau melupakan ARM sepenuhnya. Ya, ya, sementara itu bahkan orang mati menyadari bahwa Anda dapat menjalankan Skype dan TeamViewer dengan ExaGear Desktop Eltech, tetapi juga didorong oleh emulator x86 di bawah tenda dan — sebagai bonus — adalah sumber tertutup. Saya tidak dapat membayangkan bekerja pada sistem yang Notepad ++ dan banyak alat Windows lain yang bermanfaat tidak tersedia. Sebenarnya, Windows 10 sendiri berjalan di atas Pi, tapi saya benar-benar tidak suka OS itu meskipun dinyatakan sebagai penggemar Windows. Tentu saja, persaingan segera muncul di pikiran, tetapi sumber daya Pi yang buruk sudah cukup terbatas ... Ini agak membingungkan, karena saya selalu berpikir Windows menggunakan split 2G / 2G kecuali jika Anda mengkonfigurasi sesuatu yang lain di boot.ini, tapi saya kemungkinan melewatkan beberapa konteks untuk melihat gambaran yang lebih dalam. Karena satu dan lain alasan, kernel default Raspbian menggunakan split 2G / 2G sehingga Wine akan menolak untuk memulai. Pada distro 32-bit seperti Raspbian, Wine membutuhkan pemisahan 3G / 1G VM antara kode mode pengguna dan kernel. Sayangnya, kami dihadapkan dengan kompilasi kernel khusus tepat di awal perjalanan kami.Solusi cerdas lain yang melibatkan beberapa persaingan ditunjukkan oleh André Hentschel dan Stefan Dösinger, duo kontributor Wine. Saya ingin percaya Anda memiliki kode sumber, saya benar-benar melakukannya, karena jika tidak semuanya akan berubah menjadi kekerasan. Selama eksekusi yang ditiru, panggilan ke Windows API dicegat dan diteruskan ke instalasi Wine asli. Salah satu cara yang mungkin melibatkan pembongkaran atau bahkan mendekompilasi program dan kemudian mengkompilasi ulang untuk ARM. Jika Anda ingin mencoba Winelib pada proyek yang ada, Anda harus tahu tentang Winemaker, alat yang membantu Anda dengan beberapa masalah yang biasa ditemui seperti memperbaiki perbedaan besar dan kecil , mengubah ujung garis dan menyusun Makefile. winegcc adalah pembungkus rumit di sekitar GCC, sebenarnya, dan tidak menghasilkan Windows tetapi * nix executable yang Wine berjalan dengan baik, tetapi Anda tidak dapat menjalankan perangkat lunak yang dikompilasi winegcc pada Windows. Bahkan, jika Anda memperhatikan selama kompilasi Wine, Anda akan melihat bahwa program yang disebut winegcc dipanggil untuk menautkan DLL dan program seperti winecfg. Winelib adalah seperangkat alat yang disertakan dengan Wine yang memungkinkan Anda mengkompilasi perangkat lunak Windows terhadap implementasi Wine dari Win32 API secara langsung pada sistem * nix.
Windows menyimpan poin kode UTF-16 di wchar_t ketika di * nix itu mungkin sesuatu yang lain; Linux dan Mac tampaknya lebih suka UTF-32. Tetapi tajuk msvcrt Wine tidak kompatibel dengan pustaka standar C ++ yang disediakan oleh GCC atau sesuatu seperti itu. Lagi pula, saya tidak bisa mendapatkan Notepad ++ untuk dikompilasi dengan Winelib, tapi tidak apa-apa, karena saat ini juga tidak dikompilasi dengan MinGW. Dalam pengalaman saya, Winelib sangat baik dalam mengkompilasi sumber C, tetapi memiliki beberapa tepi kasar tentang C ++. Seperti yang Anda ketahui, Windows dan * nix tidak berada di halaman yang sama sehubungan dengan wchar_t. Sayangnya, sejauh ini saya belum memiliki kesempatan untuk mencobanya, tetapi ini adalah hal berikutnya dalam daftar saya, karena saya tidak bisa t benar-benar menghitung berapa kali saya berharap MinGW akan mendukung ARM. Ketika sedang terjebak dalam membangun Notepad ++ untuk ARM, saya menerima tip dari kontributor Wine yang disebutkan sebelumnya André Hentschel mengenai proyek ini. Proyek ini mencakup Dockerfile untuk membangun gambar yang berisi toolchain dan bahkan ada gambar prebuilt untuk yang tidak sabar. Itu dimulai oleh Martin Storsjö dan memungkinkan Anda membangun ARM yang mendukung rantai alat MinGW menggunakan LLVM.OK, saya berbohong, ada beberapa peretasan tambahan seperti termasuk true dalam konfigurasi ARM atau harus mendefinisikan _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE ketika menjalankan kompiler secara manual untuk membangun SciLexer.dll. Sepertinya tidak ada banyak kesadaran tentang dukungan lengkap Visual Studio untuk ARM 32-bit dan 64-bit, tapi ini adalah bagaimana saya mengkompilasi Notepad ++ untuk Pi. Rupanya, Microsoft berpikir itu akan menjadi ide bagus jika dukungan ARM harus "dibuka kedoknya" meskipun secara teknis ada di sana sepanjang waktu. Sebenarnya semua yang saya lakukan untuk membangun dengan VS2015 adalah menyalin konfigurasi x86 yang ada dan mengubah platform ke ARM. Jika Anda tidak dapat menautkan karena pustaka yang hilang, Anda dapat mencoba menginstal Windows SDK terbaru. Saya sangat berhutang budi kepada Pete untuk artikel ini yang membantu saya mengatasi masalah yang saya temui. Jika Anda tidak peduli dengan dukungan 64-bit dan hanya ingin membangun Wine 32-bit pada OS 64-bit Anda, Anda masih akan berada dalam masalah karena Anda harus melakukan kompilasi dengan dependcies 32-bit. Situasi optimal dengan Wine 64-bit adalah memiliki build tunggal yang dapat menjalankan program Windows 32-bit dan 64-bit, karena jika tidak, Wine 64-bit hampir tidak masuk akal. Wine mendukung WOW64 di ARM64 sehingga pengaturan ini pasti dimungkinkan, tetapi sayangnya membuatnya berfungsi cukup rumit. Singkatnya, Anda harus mengkompilasi versi Wine 32-bit dan 64-bit dan hancurkan bersama-sama. (source)