Saya telah menambahkan banyak jawaban saya di bawah, tetapi saya tetap mempertahankan jawaban asli saya sebagai referensi.
TL: DR: Mesin Virtual adalah alat, dan meskipun mereka menawarkan kemampuan yang mudah untuk menggunakan satu OS di dalam yang lain, Anda harus sangat menyadari apa yang akan Anda gunakan untuk penggunaan utama komputer agar dapat menggunakan sistem sepenuhnya. .
Pertanyaan Anda tampaknya sangat condong ke kemungkinan kinerja grafis dan antarmuka menggunakan mesin virtual dan jadi saya akan menjawab mengenai kemungkinan di sana.
Masalah utama adalah bahwa untuk mengelola akses sistem operasi tamu dengan aman ke perangkat (dan dengan demikian mencegah OS tamu dari menginjak-injak tuan rumah dan memecahkan hal-hal) semua perangkat yang ingin Anda gunakan harus "ditiru".
Artinya, kartu grafis yang dapat dilihat oleh OS tamu Anda bukan kartu grafis yang sama dengan yang dapat dilihat oleh OS host Anda. Anda mungkin dapat mengaktifkan fitur seperti rendering 3D di tamu, tetapi ini ditangani oleh driver perantara di tamu Anda yang meneruskan permintaan ke host dengan cara yang aman agar 3D dirender di sana.
Sangat diragukan bahwa fitur seperti yang diperlukan untuk memutar cakram blue-ray dengan aman ke layar HDMI yang didukung ditiru oleh driver kartu grafis tamu dan karenanya ini kemungkinan tidak akan berfungsi.
Pada dasarnya apa pun yang membutuhkan dukungan perangkat keras pada host Anda kemungkinan tidak akan berfungsi dengan baik, jika sama sekali, di tamu Anda. Saya tidak tahu cara kerja WiDi, tetapi jika WiDi memerlukan akses langsung ke memori kartu video Anda untuk dibagikan ke televisi maka itu tidak akan berfungsi kecuali jika Anda menggunakannya dari sistem operasi host (Linux) Anda.
Selain itu dalam hal kinerja, VM dapat mendekati apa yang akan terjadi jika itu adalah OS utama, tetapi akan selalu ada hukuman dalam hal akses perangkat hard drive atau pertengkaran dengan sumber daya lain yang digunakan tuan rumah.
Pada awalnya...
Awalnya kami punya komputer, komputer itu hanya bisa menjalankan satu sistem operasi. Sistem operasi itu cenderung berjalan dengan baik pada prosesor tertentu dan perangkat keras lain yang ada di dalam mesin, dengan sistem operasi lain hanya dapat berjalan dengan buruk, jika sama sekali, pada perangkat keras asli yang tersedia.
Agar orang dapat menggunakan perangkat lunak untuk satu platform tertentu pada platform lain (misalnya, menggunakan perangkat lunak MacOS Pra-OSX pada Amiga Commodore) diperlukan lebih dari sekadar "menginstal perangkat lunak". Kedua mesin ini menggunakan arsitektur prosesor yang sangat berbeda dan perangkat keras tambahan. Sama sekali tidak mungkin satu OS bisa berjalan pada perangkat keras komputer lain.
Persaingan
Persaingan seperti sepupu dengan Virtualisasi, mereka sebenarnya terkait dan memiliki tujuan yang sama. Yang satu memperanakkan yang lain.
Apa yang dimaksud dengan platform perangkat keras yang berbeda ini adalah bahwa jika Anda ingin menggunakan satu perangkat lunak dari OS lain di mesin Anda, maka segala sesuatu tentang mesin itu harus dianalisis untuk mengetahui cara kerjanya, dan kemudian sepotong kode tertulis yang berfungsi dalam sama seperti bagian perangkat keras. Ini harus dilakukan untuk setiap bagian, prosesor, pengontrol grafis, pengontrol memori, semuanya .
Kemudian semua bagian ini disatukan dan karena setiap bagian meniru sedikit perangkat keras kami menyebutnya mesin yang ditiru . Kami kemudian menjalankan sistem operasi di atas mesin yang ditiru ini.
Masalahnya adalah bahwa pendekatan ini lambat. Sederhananya Anda beruntung jika Anda dapat mencapai 1/10 dari kecepatan perangkat keras asli. Anda benar-benar membutuhkan mesin beberapa kali lebih cepat dari mesin yang ditiru target Anda untuk menjalankan komputer yang ditiru di mana saja dengan kecepatan penuh.
Jadi apa yang berubah?
Nah, ini yang keren. Tidak banyak kok. Satu-satunya perubahan besar adalah platform perangkat keras distandarisasi. Kami berhenti mendapatkan perangkat keras khusus untuk setiap OS dan semua OS dipindahkan ke, atau dibuat pada, platform standar tunggal.
Komponen-komponen yang membentuk Mac akhir-akhir ini adalah, pada umumnya, komponen-komponen yang sama yang membentuk PC. Linux selalu berjalan pada perangkat keras PC sehingga tidak ada yang baru di sana.
Untuk waktu yang lama, emulasi masih menjadi norma jika Anda ingin menjalankan perangkat lunak dari satu OS di OS lain. Atau Anda bisa dual-boot dan menjalankan sistem operasi yang Anda inginkan, tetapi ini membuatnya menyakitkan dan menjengkelkan jika Anda ingin beralih dari pengkodean di Linux ke bermain game di Windows.
Lalu..
Muncul ide bahwa karena perangkat keras yang mendasari sama, mengapa kedua OS tidak dapat membagikannya?
Kami berakhir dengan QEMU dan WiNE dan solusi perangkat lunak serupa. QEMU telah lama menjadi favorit untuk persaingan keras mesin, sementara WiNE mengizinkan aplikasi Windows untuk berjalan di Linux dengan menjebak dan menambal panggilan API OS mereka dan membiarkan kode berjalan secara asli pada prosesor.
QEMU melakukan sesuatu yang mirip dengan WiNE, tetapi melakukannya pada tingkat yang jauh lebih rendah. Ini masih efektif sebagai emulator, tetapi untuk setiap panggilan perangkat keras yang dilakukan, mereka menggunakan metode "tambalan dan pengalihan" sehingga setiap panggilan masuk ke platform perangkat keras mereka sendiri sebagai gantinya. karena sebagian besar kode yang berfungsi dalam suatu program tidak benar-benar melibatkan panggilan perangkat keras (sebagian besar aliran perhitungan sederhana dengan panggilan di akhir untuk menampilkan hasil).
Ini menghasilkan peningkatan kecepatan sesaat untuk hampir setiap program di mesin yang sekarang tidak benar-benar ditiru . Program berjalan dengan perlambatan lebih tergantung pada seberapa banyak mereka mengakses perangkat keras "virtual" daripada seberapa baik mesin dapat ditiru. Alih-alih berlari pada 1/10 kecepatan mereka sekarang berlari dengan kecepatan yang hampir sama seolah-olah mereka asli.
Jadi, jika kita menjalankan prosesor sekarang, mengapa kartu grafis saya tidak berfungsi?
Satu-satunya masalah dengan Mesin Virtual baru ini adalah bahwa pada dasarnya Sistem Operasi mengasumsikan bahwa ia memiliki kontrol langsung semua perangkat keras yang ada di komputer, sehingga mereka dapat memberikan fitur seperti manajemen memori, dan mengontrol akses ke perangkat keras.
Apa artinya ini adalah bahwa Mesin Virtual tidak dapat sepenuhnya terlepas dari persaingan, setidaknya dalam metode. Mereka masih harus meniru fungsi-fungsi tertentu dalam perangkat lunak, misalnya kartu grafis, atau kartu jaringan harus disajikan ke OS yang berjalan di mesin virtual sehingga sistem operasi "Tamu" berpikir ia memiliki kontrol penuh terhadap perangkat keras itu. OS utama (dengan persyaratan keamanan) harus menjaga diri terhadap program yang secara langsung mengakses perangkat keras dan ini membatasi sistem operasi tamu.
Untuk melakukan ini mereka harus meniru perangkat keras "virtual" untuk semua yang ada di komputer. Semua kode dijalankan secara native oleh prosesor sekarang, sehingga tidak lambat, tetapi masing-masing bagian dari perangkat keras virtual harus ditulis dalam perangkat lunak, dan ini menimbulkan penalti kecil dalam kinerja dan berpotensi penalti besar dalam hal fungsionalitas. .
Artinya adalah kartu grafis virtual Anda tidak dapat dan tidak akan memiliki fitur yang sama dengan kartu grafis asli Anda . Untuk mendapatkan kinerja terbaik, perangkat keras virtual dapat ditulis untuk mendukung fitur yang paling sering digunakan, dan rendering 3D sekarang dimungkinkan dalam mesin virtual, tetapi itu masih tidak sama dengan perangkat keras nyata.
Artinya, sistem operasi host mendapatkan opsi perangkat keras terbaik, sedangkan sistem operasi tamu mendapat opsi perangkat keras umum .
Mesin virtual tidak sebagus perangkat keras asli, itu hanya alat untuk membuatnya lebih mudah untuk bekerja dengan alat-alat dari satu sistem di sistem lain.
Jadi apa yang saya lakukan?
Anda harus memilih apa yang Anda inginkan dengan tujuan utama komputer Anda.
Jika Anda ingin memainkan game terbaru pada kartu grafis berdaya tinggi dan menggunakan daya kartu grafis yang sama untuk memutar film 1080p penuh ke TV HDMI 400 "Anda tetapi hanya sesekali ingin melakukan beberapa pemrograman Linux, maka Windows mungkin merupakan taruhan terbaik Anda. dengan Linux sebagai tamu.
Jika Anda ingin bekerja pada kernel Linux, membuat driver perangkat keras untuk perangkat di komputer Anda, dan kadang-kadang menulis beberapa perangkat lunak untuk Windows dan mengujinya pada pendekatan yang baik dari sistem Windows "standar" maka mungkin Anda lebih baik menggunakan Linux sebagai tuan rumah dan Windows sebagai tamu.
Jika Anda menyukai kemudahan penggunaan Mac tetapi ingin memprogram untuk Windows (atau ada paket perangkat lunak yang Anda inginkan hanya Windows) maka itu juga merupakan opsi.
Saya tidak mengatakan bahwa Linux tidak bisa bermain game, atau bahwa MacOS bukan untuk programmer karena itu hanya akan menjadi paket kebohongan. Hanya saja satu-satunya orang yang bisa mengatakan OS mana yang lebih cocok dengan apa yang ingin Anda lakukan adalah Anda .
Anda benar-benar harus memahami apa yang Anda ingin mesin Anda lakukan terlebih dahulu . Hanya dengan begitu Anda dapat mengetahui apa yang dapat dilakukan mesin virtual untuk Anda.
Untuk menjawab pertanyaan Anda:
Will the graphics and video rendering quality will be just as good?
Tidak. Kartu grafis yang ditiru dapat menyediakan beberapa fitur kartu grafis host, tetapi kemungkinan tidak akan mendukung fitur yang kompleks seperti akselerasi video perangkat keras atau fitur pemrograman CUDA.
Will there be any hardware issue such as using HDMI or WiDi?
Sekali lagi, fitur-fitur tambahan ini kemungkinan tidak akan menjadi fitur dari apa pun yang ditiru / perangkat keras virtual yang tersedia.
Will applications run just as smoothly as long as enough RAM is allocated?
Sebagian besar aplikasi (asalkan tidak memerlukan fitur perangkat keras tertentu) akan berjalan hampir secepat mereka pada perangkat keras nyata, selama Anda tidak kelaparan baik host atau tamu memori.
Mesin Virtual (VM) selalu berjalan lebih lambat daripada sistem host karena sistem tamu harus meminta host untuk berinteraksi dengan perangkat keras, seperti kartu grafis, hard drive, memori dll. Karena ini adalah program yang berjalan di sistem host dan tidak memiliki kontrol langsung terhadap perangkat keras. Namun, jika perangkat keras Anda dapat mengatasinya, kelambatan mungkin tidak terlalu terlihat.
Alasannya adalah prosesor hanya dapat menjalankan satu instruksi pada satu waktu. Program biasanya terdiri dari ribuan atau jutaan instruksi mesin. Ketika mesin mulai, itu memindai Master Boot Record (MBR) untuk bootloader. Bootloader kemudian memulai kernel. Kernel adalah proses utama yang mengontrol semua perangkat keras. Multitasking, yang beralih di antara beberapa tugas, memungkinkan kita menjalankan lebih dari satu program sekaligus, meskipun hanya satu yang dieksekusi pada saat tertentu. Sebagian besar prosesor hanya menghabiskan sekitar 20% dari waktu mereka melakukan perhitungan matematika. Prosesor multi-core memungkinkan instruksi berikutnya diambil sambil menunggu core lain melakukan matematika, mengurangi waktu idle dan mempercepat sistem secara signifikan. Selain kernel, ada shell (yang menyediakan antarmuka untuk pengguna),
Perangkat lunak virtualisasi adalah aplikasi yang, seperti aplikasi lain yang dikelola oleh kernel. Dengan demikian, kernel VM harus menunggu permisson dari kernel host untuk melakukan apa saja dan akan sering terputus. Semakin banyak proses yang berjalan pada sistem host, semakin sedikit waktu eksekusi yang akan dialokasikan untuk VM, membuatnya lebih lambat. VM biasanya berjalan tiga hingga empat kali lebih lambat dari mesin fisik.
Jika Anda akan menjalankan game atau hal seperti itu, saya akan mengalokasikan banyak RAM dan waktu kernel sebanyak mungkin. Banyak prosesor membantu. Namun, mengalokasikan terlalu banyak RAM akan memperlambat sistem, karena membutuhkan waktu lebih lama untuk mengakses data dan dapat menyebabkan caching hard disk yang berlebihan pada sistem host. Tetapi di sisi lain, terlalu sedikit akan menyebabkan terlalu banyak caching hard disk pada tamu. Karena windows sangat haus akan sumber daya, saya akan mengalokasikan setidaknya 2 hingga 4 GB RAM, tetapi jangan mengalokasikan lebih dari setengah dari RAM Anda ke VM.
Jika merespons terlalu lambat, opsi yang lebih baik mungkin adalah dual boot. Dengan cara ini keduanya akan dapat sepenuhnya memanfaatkan sumber daya sistem, tetapi sayangnya Anda hanya dapat menjalankan satu per satu. Jika Anda melakukan ini, Anda mungkin ingin setidaknya tiga partisi: satu untuk Linux, satu untuk Windows, dan satu (atau lebih) untuk file Anda.
sumber
Begitu. VMWare Player adalah Hypervisor Tipe 2. Itu berarti seorang tamu duduk di atas OS. Pada Hypervisor Tipe 1, platform virtualisasi berada di atas perangkat keras. Itu karena VMWare Player yang menggunakan Hypervisor Tipe 2 akan berjalan lebih lambat daripada sesuatu pada Tipe 1. Namun, VMWare Player menawarkan kemampuan untuk menyesuaikan kebutuhan perangkat keras Anda untuk VM Anda. Jadi, jika Anda memiliki sistem dengan prosesor quad core dengan Ram 4GB, Anda dapat menawarkan hingga 1 atau 2 core dan kemudian 2GB RAM (min. Req untuk Windows x64) untuk memiliki VM yang berjalan secara efisien.
Sebagai contoh, saya punya XPS 14z dan ada Windows 7 di atasnya. Saya menjalankan Windows 7 VM juga - Saya telah mengalokasikannya 2GB RAM & 2 core prosesor (dari 4 saya).
Jadi ketika saya menjalankan program di atasnya (Notepad ++, Transwiz, Outlook, Word, Excel dll) tidak ada perlambatan yang nyata. Saya belum pernah mencoba menjalankan perangkat lunak yang intens di atasnya (Photoshop, dll). Jadi, tergantung pada apa yang Anda gunakan untuk - hypervisor tipe 2 mungkin atau mungkin tidak sesuai dengan kebutuhan Anda. Jika Anda ingin menggunakannya untuk bermain game, itu akan tergantung pada permainan. Saya sudah menjalankan beberapa game Steam dan tidak memiliki masalah (saya RDP dari mesin Fedora saya ke VM saya kadang-kadang) tetapi itu benar-benar akan tergantung pada persyaratan permainan. Untuk bermain game dalam segala hal, saya tidak akan menggunakan VM untuk melakukannya. Saya bermain game di mesin W7 saya dan kemudian menggunakan VM (Fedora, sebenarnya) untuk melakukan hal-hal lain. Anda ingin aplikasi yang paling intensif memiliki akses pertama ke perangkat keras.
sumber
Jadi saya menginstal Windows 7 di Linux Mint 12 melalui VMWare Player. Video rendering Windows 7 di dalam Linux Mint lebih buruk daripada Windows 7 sebagai OS utama. Saya belum mengonfigurasi apa pun dan tidak tahu apakah ada yang perlu dikonfigurasikan untuk menjadikan rendering video file avi lebih baik.
Saya memang menemukan kecepatan menjalankan aplikasi menjadi cepat di mesin memori 8GB saya. Itu bukan masalah. Yang mengatakan, saya tidak mencoba sesuatu yang super intensif seperti mengedit video atau foto. Hanya aplikasi Office biasa.
sumber
Masalah dengan teknologi VM adalah bahwa ia tidak dapat menangani memori fisik Anda dengan cara yang sama jika Anda menjalankan OS yang sebenarnya menggunakan memori tersebut. Gambar VM menggunakan pengalamatan memori logis jika dijalankan menggunakan ruang pengalamatan fisik yang sama Anda tidak akan dapat menjalankan kedua sistem operasi pada saat yang sama. Meskipun VM modern telah datang jauh Anda bahkan bisa mengatakan 90% -95% game berkualitas, mereka masih kekurangan kemampuan untuk menjalankan game Anda dengan kecepatan penuh. Itu 90% -95% ditujukan murni pada pengalamatan logis vs pengalamatan fisik memori komputer Anda. Sekarang yang hanya mencakup argumen pengalamatan / alokasi memori, masalah lainnya adalah Windows menggunakan DirectX sejauh yang saya tahu tidak ada perangkat lunak VM termasuk VMware memiliki dukungan penuh untuk DX terbaru. Jadi, jika menggunakan sesuatu di luar DX 9 Anda cukup banyak yang kacau.
QEMU di Linux mungkin yang terbaik untuk bermain game!
sumber