Apakah mungkin untuk dual boot dua OS pada saat yang sama?
Sebagai contoh : Saya saat ini dual boot Ubuntu 11.04 dan Windows 7. Ubuntu berjalan pada HDD 500GB tunggal, Windows 7 berjalan pada mirror 1TB RAID 1. Untuk beralih di antara kedua OS, diperlukan boot ulang. Apakah mungkin untuk beralih di antara kedua OS tanpa reboot?
CATATAN : Saya sepenuhnya menyadari kemampuan VirtualBox dan VMWare Player - Saya menggunakan keduanya. Tolong jangan jawab "Gunakan Virtualisasi!"
EDIT: Jika ini tidak mungkin, bisakah Anda berbagi mengapa itu tidak mungkin? Bagi saya, sepertinya tidak terlalu sulit. Perlu diingat bahwa visi saya tidak terbebani oleh pengetahuan!
windows-7
ubuntu
multi-boot
James Hill
sumber
sumber
Jawaban:
Sebagian besar, jika tidak semua, sistem operasi utama mengharapkan memiliki akses eksklusif ke fungsionalitas tingkat rendah komputer host (misalnya: perangkat keras, port, dll.) Dan tidak memiliki konsep berbagi dengan apa pun - itu tidak akan berfungsi - jadi untuk mencoba dan menjalankan dua OS secara bersamaan pada sistem yang sama memerlukan beberapa bentuk arbitrator transparan untuk melindungi sistem operasi satu sama lain - dengan kata lain, aplikasi virtualisasi.
sumber
Anda tampaknya menolak Hyper-V dan Xen (disebut hypervisor "bare-metal") meskipun mereka paling dekat dengan apa yang tampaknya Anda tanyakan. Ya, ini virtualisasi, tetapi tidak dengan cara yang sama seperti yang dilakukan VirtualBox.
Bayangkan sesuatu seperti VirtualBox adalah sistem operasinya sendiri, sehingga Anda dapat menginstal VirtualBox OS kecil, dan kemudian menjalankan Windows dan Ubuntu berdampingan sebagai mesin virtual di atas VirtualBox OS. Ya, itulah yang pada dasarnya dilakukan oleh Hyper-V atau Xen. Ini hanya lapisan virtualisasi tipis antara perangkat keras dan sistem operasi tamu, dan sedekat yang Anda bisa dengan langsung menjalankannya berdampingan dengan perangkat keras yang ada dan sistem operasi yang ada.
Anda tidak memerlukan server terpisah untuk salah satu dari ini, Anda cukup menginstal hypervisor seolah-olah itu adalah sistem operasi pertama di mesin, dan kemudian menambahkan Windows dan Ubuntu sebagai mesin virtual di bawah hypervisor.
Baik Xen dan Hyper-V akan menjalankan Ubuntu dan Windows sebagai sistem operasi tamu, meskipun itu mungkin bukan konfigurasi yang didukung. Xen lebih Linuxy dan Hyper-V adalah produk MS, jadi saya sarankan memilih hypervisor berdasarkan OS mana saja yang Anda lebih nyaman.
sumber
Hal terdekat yang bisa Anda lakukan ... adalah memanfaatkan hibernasi. Sayangnya, sistem operasi cukup asing satu sama lain sehingga tidak ada jalan bagi kedua OS untuk berjalan pada saat yang sama tanpa mengimplementasikan virtualisasi. Sejujurnya, virtualisasi tidak seburuk yang Anda pikirkan lagi ... terutama ketika Anda menggunakan platform virtualisasi yang mendukung ekstensi "VT". OS tamu mendapatkan kemampuan untuk berkomunikasi secara langsung dengan perangkat keras, dan memiliki pemetaan memori yang lebih baik & semacamnya. Saya sebenarnya telah mengatur OS tamu yang diinstal langsung pada SSD ... dan itu berjalan lebih cepat daripada OS host.
sumber
Inilah alasan sederhana dan singkat jawabannya adalah 'tidak': Perangkat lunak apa yang akan mengontrol perangkat keras Anda?
Jika OS 1 melakukannya, maka Anda tidak menjalankan OS 2. Jika OS 2 melakukannya, maka Anda tidak menjalankan OS 1. Jika keduanya melakukannya, maka beberapa perangkat lunak lain harus memediasi akses bersama mereka ke perangkat keras fisik. , dan itulah virtualisasi (yang Anda singkirkan).
sumber
Hal-hal yang terlintas dalam pikiran adalah:
- Manajemen memori (ram dan cache)
- Manajemen proses (proses menjalankan thread)
Jadi Anda mungkin akan membutuhkan seorang pria di tengah-tengah penggunaan memori juggling dan proses antara dua OS.
Itu akan menjadi os / firmware lain.
Jadi, jika seseorang telah mengimplementasikannya atau akan mengimplementasikannya, Anda mungkin berakhir dengan 3 bukannya 2 Oss berjalan secara bersamaan
EDIT -
Menambahkan apa yang ditulis linker3000: mengelola porta
'Pria di tengah' ini pada dasarnya akan menjadi OS host Anda dan OS lain tervirtualisasi, membawa Anda kembali ke apa yang sudah Anda ketahui adalah solusi
sumber
Semua OS Saya mengetahui permintaan total kontrol perangkat keras komputer.
Secara teori itu mungkin. Kedua OS perlu dirancang untuk:
Jika kedua kondisi ini terpenuhi, dimungkinkan untuk menjalankan dua OS secara bersamaan tanpa virtualisasi apa pun. Ini akan mirip dengan dua OS menggunakan multitasking kooperatif . Tentu saja, multitasking kooperatif telah ditinggalkan karena masalah aplikasi yang ditulis dengan buruk menolak untuk menyerahkan kontrol. Mungkin dua OS yang ditulis dengan benar akan bermain bagus. Lalu lagi apa insentifnya?
sumber
Biarkan saya membahas bagian "mengapa".
Salah satu alasan untuk OS modern adalah untuk memungkinkan beberapa program (proses) untuk berjalan pada saat yang sama pada suatu sistem. Jika Anda ingin melakukan ini dengan aman, hal-hal berikut perlu terjadi:
Anda mungkin (kecuali jika Anda memiliki kebutuhan khusus) tidak ingin membagi RAM dalam sistem dengan cara yang tetap - misalnya 256MB diperbaiki per proses - membatasi Anda untuk 8 proses dalam sistem 2GB. Anda ingin setiap proses untuk dapat "meminta" memori dan mengembalikannya setelah selesai.
Anda juga tidak ingin membagi perangkat I / O secara tetap di antara perangkat. Biasanya Anda ingin sebagian atau semua perangkat keras, seperti memori menjadi sumber daya bersama, atau setidaknya hanya sementara untuk proses tertentu pada waktu tertentu. Ini mensyaratkan bahwa semua proses tidak mencoba melakukan I / O sendiri, tetapi "melewati" sesuatu untuk menjadwalkan dan mengoordinasikan I / O. Penjadwalan ini penting karena sebagian besar I / O jauh lebih lambat daripada CPU, sehingga Anda dapat membuat CPU berfungsi untuk proses lain saat menunggu pada I / O bahkan pada sistem single-core.
Untuk melakukan hal di atas, Anda perlu memanfaatkan beberapa fitur perangkat keras CPU. Salah satunya adalah MMU, yang lainnya adalah mode terproteksi. Bisakah dua OS berbagi fitur perangkat keras ini secara kooperatif untuk menjalankan dua atau lebih OS?
Tentu, tetapi tidak ada dalam perangkat keras yang dapat menghentikan satu OS dari menginjak seluruh memori OS lainnya. Jika CPU dalam mode kernel (hanya memiliki satu mode kernel), kode apa pun dapat melakukan apa saja. Ini 100% memungkinkan untuk kode dari satu OS untuk menjalankan kode atau data dari OS lain. Dan kita tahu sistem operasi memiliki kerentanan di masa lalu dan akan memiliki lebih banyak di masa depan. Jadi sangat buruk untuk keamanan.
Sekarang, bukankah itu keren jika Anda bisa meletakkan "lapisan" lain di atasnya dan memerlukan dukungan perangkat keras untuk banyak OS? Itulah tepatnya yang dilakukan fitur virtualisasi perangkat keras, mereka menempatkan penghalang perangkat keras antara beberapa OS yang berjalan, dan ada "antarmuka" tingkat atas bagi mereka yang disebut hypervisor. Anda hanya dapat memiliki satu hypervisor. Dan ya, proses yang berjalan di bawah salah satu OS harus melalui tiga lapisan untuk melakukan I / O (proses - kernel lokal - hypervisor)
sumber
Saya tahu Anda mengatakan tidak ada Virtualisasi, tetapi sesuatu seperti server MS Hyper V mungkin sesuai dengan kebutuhan Anda
sumber
Tidak ada cara lain selain virtualisasi. Saya merasa sulit untuk mendapatkan informasi yang jelas sistem tamu mana yang akan bekerja untuk hypervisor yang berbeda. http://en.wikipedia.org/wiki/Hypervisor Harus menjadi awal yang baik untuk mendapatkan beberapa informasi dan Xen mungkin patut dicoba, meskipun saya akan menunggu seseorang untuk mengonfirmasi atau menolak jika mendukung tamu Windows 7.
sumber