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.