Pertanyaan Apakah perangkat lunak seperti VMware berjalan di ruang pengguna atau ruang kernel?


Vmware adalah perangkat lunak yang diinstal pengguna. Jadi harus berjalan di ruang pengguna yang diberikan oleh OS yang mendasarinya. Namun OS-nya berjalan yang sepenuhnya operasional dan perlu dijalankan dalam mode kernel. Jadi kemana larinya?


4
2018-06-20 10:08


asal




Jawaban:


VMWare menyediakan sejumlah besar proyek dan Vinko Vrsalovic sudah menunjukkan bahwa VMWare ESX memang sistem operasi sendiri.

Secara umum, dimungkinkan untuk menjalankan monitor mesin virtual (VMM) seperti VMWare Workstation, QEmu, atau Virtualbox sepenuhnya di ruang pengguna. Mereka hanya mengambil disk atau image CDROM dari OS untuk menjalankan dan mulai meniru PC dengan menafsirkan semua instruksi dan meniru akses perangkat. Untuk alasan kinerja, perangkat lunak virtualisasi mencoba untuk menghindari emulasi sesering mungkin, karena jauh lebih cepat untuk menjalankan aliran instruksi pada perangkat keras yang sebenarnya, bukan meniru itu.

Beberapa pendekatan digunakan untuk mempercepat proses virtualisasi:

  • Penulisan ulang biner: OS virtualisasi Anda mengeksekusi kernel OS dan aplikasi ruang pengguna. Untuk aplikasi ruang-pengguna, pembatasan yang sama dalam hal pelaksanaan instruksi berlaku seperti halnya monitor mesin virtual Anda sendiri, jadi tidak masalah untuk mengeksekusi aplikasi ini pada CPU asli. Untuk bagian OS, Anda perlu meniru perilaku CPU yang mendasari karena VMM Anda tidak dapat melakukannya sendiri. Yang Anda perlukan sekarang adalah mendeteksi semua switch antara kode pengguna dan kode kernel, sehingga Anda dapat secara efisien beralih antara eksekusi asli dan emulasi. VMWare serta Qemu menerapkan penulisan ulang biner ke OS virtual seperti dijalankan dan dengan demikian menjebak semua switch tersebut.

  • Bantuan perangkat keras: Dengan meningkatnya popularitas VMM (yang telah ada sejak 1970-an), Intel dan AMD mulai menyediakan ekstensi perangkat keras untuk set instruksi mereka yang memudahkan implementasi VMM di ruang pengguna.

  • Ekstensi Kernel: VMWare serta Qemu juga memungkinkan Anda untuk menginstal driver perangkat di sistem operasi host Anda yang memungkinkan mereka untuk mempercepat eksekusi kode kernel dan akses perangkat dengan langsung mengeksekusi dalam mode kernel.

  • Driver perangkat Pass-through: Perangkat I / O adalah masalah kinerja lainnya. Biasanya, VMM akan mengimplementasikan satu set perangkat virtual yang berperilaku mirip dengan rekan-rekan mereka di dunia nyata. Langkah emulasi ini memperlambat I / O dan merupakan hambatan kinerja utama ketika virtualisasi OS. Untuk menghindari itu, VMM juga memungkinkan Anda untuk menginstal banyak driver perangkat di OS tamu virtual yang menyadari perangkat keras tamu dan memungkinkan untuk langsung melewati perangkat dari OS host ke tamu tanpa langkah emulasi. (Namun ini hanya berfungsi jika Anda menjalankan persis satu contoh OS pada host Anda, karena tidak ada orang lain yang dapat mengakses perangkat jika Anda memberikannya kepada tamu).


6
2018-06-20 11:56



Ringkasan yang sangat bagus. Menulis ulang biner, tentu saja, adalah strategi asli VMWare. - Andres Jaan Tack


VMware berfungsi, sebagai versi yang dapat diunduh, sebagai program tingkat pengguna. Ini menggunakan monitor mesin virtual untuk mencegat instruksi x86 nyata, dan driver perangkat untuk menjalankan eksekusi bersamaan dari OS tamu dengan implementasi virtualisasi CPU untuk mendapatkan virtualisasi hardware-assisted untuk menjalankan tamu melalui VMM-nya sementara masih berada di atas OS dan menjadi proses atau lebih. Hal yang sama persis dengan VirtualBox - mereka adalah program yang biasanya tidak berjalan di bare metal (tapi bisa) dan mereka sendiri menggunakan VT VMM dan CPU dari Intel dan semacamnya untuk memotong x86 dan "mengelabui" OS tamu dengan berpikir itu menjalankan seluruh mesin, dan mengemulasi perangkat keras pendukung yang biasanya tidak benar-benar ada. Dengan cara itu seperti meniru dan tidak meniru campuran bersama. Sebagai contoh, mungkin meniru BIOS / firmware karena tidak ada metode virtualisasi untuk itu. Mungkin juga mengemulasi perangkat keras lawas yang lebih tua yang mungkin diperlukan oleh tamu Windows 95/98.

Dalam kesederhanaan, itu menggunakan fitur CPU yang membantu dalam proses virtualisasi untuk memungkinkan OS lain untuk berjalan pada CPU yang sama melalui proses pemantauan / penggantian emulasi yang kompleks sementara tidak harus benar-benar menjadi OS bare metal.


2
2017-10-16 21:16





Itu tergantung pada jenis program VMWare yang Anda jalankan. Beberapa berjalan di kernel, sebagian berjalan di ruang pengguna.


1
2018-06-20 12:24





Mendiskontokan fakta bahwa perangkat lunak seperti VMWare ESX adalah OS dengan sendirinya (versi Linux yang dimodifikasi), yang di atas versi OS lain biasanya berjalan di ruang kernel dan ruang pengguna, menginstal driver (yang berjalan di ruang kernel) untuk semua tugas istimewa (jaringan, pemantauan, dan sebagainya.)


0
2018-06-20 10:12