Apakah mungkin untuk dual boot dua OS pada saat yang sama?

36

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!

James Hill
sumber
Pada mainframe dengan memori yang dipartisi ...
Fiasco Labs

Jawaban:

36

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.

Linker3000
sumber
Aplikasi virtualisasi tampaknya menjadi konsensus. Apakah ada opsi sumber terbuka atau gratis yang akan Anda rekomendasikan?
James Hill
2
Ini benar-benar tergantung pada apa yang Anda coba lakukan karena beberapa aplikasi VM lebih baik dalam beberapa hal daripada yang lain, tetapi secara umum: Pilih OS default utama Anda (yaitu: boot ke Ubuntu atau Windows) dan kemudian instal Virtualbox, VM Player (dua saya fave) atau aplikasi VM favorit Anda kemudian instal OS lain sebagai mesin virtual di lingkungan itu.
Linker3000
Anda bisa membuat distro ubuntu berdasarkan colinux. colinux menjalankan kernel linux sebagai proses di windows, jadi itu bukan virtualisasi. dalam arti, pertanyaan awal yang diajukan adalah mungkin, itu belum dilakukan.
Jay R. Wren
Namun, beberapa porting dijalankan pada sistem operasi, tidak seperti perangkat keras sebenarnya - UserModeLinux adalah contoh tandingan yang sempurna. colinux (sebagaimana disebutkan oleh @Jay) adalah contoh lain dari sistem operasi yang "porting" ke yang lain.
new123456
15

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.

Kevin
sumber
8

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.

TheCompWiz
sumber
Saya tidak punya masalah dengan virtualisasi, saya menggunakan VirtualBox di setiap komputer yang saya miliki. Bisakah Anda menjelaskan ekstensi VT yang Anda sebutkan sedikit lebih banyak? FYI - Ini untuk digunakan di rumah jadi saya mencari cara murah (baca: gratis / open source) untuk melakukan ini.
James Hill
VT = Virtualisasi Perangkat Keras. Pada dasarnya, CPU memiliki beberapa ekstensi tambahan (kadang-kadang mengharuskan diaktifkan di BIOS) yang dirancang untuk memfasilitasi menjalankan OS secara paralel. VirtualBox dapat melakukan ini ... tetapi jika Anda terjebak dengan virtualisasi perangkat lunak, itu tidak akan berfungsi dengan baik. Kadang-kadang disebut VT-x, VT, AMD-V, Hardware Virtualization, atau segudang nama tambahan.
TheCompWiz
Apakah VMWare memiliki makhluk "VT" ekstensi yang Anda bicarakan? jika demikian, apakah perlu diaktifkan secara eksplisit?
MasterMastic
VT adalah fitur prosesor. Ini masalah cuaca atau tidak, CPU Anda memiliki bit yang terpasang atau tidak ... dan juga jika motherboard memiliki dukungan untuk itu. (ekstensi prosesor dapat dinonaktifkan di banyak BIOS) Biasanya diaktifkan secara default ... tetapi dapat dinonaktifkan. Laptop HP saya dimatikan ... tetapi server supermicro saya telah dihidupkan.
TheCompWiz
7

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).

David Schwartz
sumber
8
Kecuali OS 1 adalah OS / 2. Kemudian Anda menjalankan OS / 2 sebagai OS 1.: D
Kenneth Cochran
Itu hanya biasa Warped ... Mengingat sistem operasi yang rapi yang dibuat oleh sebuah perusahaan yang tidak bisa memasarkan jalan keluar dari kantong kertas basah.
Fiasco Labs
2

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

Shekhar
sumber
2

Semua OS Saya mengetahui permintaan total kontrol perangkat keras komputer.

Secara teori itu mungkin. Kedua OS perlu dirancang untuk:

  • Jalankan sebagai master (kontrol perangkat keras total) dan budak (meminta sumber daya dari master OS)
  • Lepaskan kendali perangkat keras atas permintaan dari OS lain

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?

Kenneth Cochran
sumber
1

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)

LawrenceC
sumber
0

Saya tahu Anda mengatakan tidak ada Virtualisasi, tetapi sesuatu seperti server MS Hyper V mungkin sesuai dengan kebutuhan Anda

Akash
sumber
Hyper-V akan membutuhkan mesin kedua untuk bertindak sebagai server. Jika saya memiliki mesin kedua yang sekuat itu, saya akan mengaturnya di sebelah menara saya yang lain dan memulai keduanya dengan OS yang berbeda :). Juga, dari apa yang saya pahami, menyiapkannya biayanya tidak kurang dari $ 2k.
James Hill
Saya pikir Anda dapat menjalankan Hyper V pada satu mesin ..
Akash
2
V dalam hyper-v adalah untuk virtualisasi. jika kendala bukan virtualisasi, maka hyper-v bukanlah solusi.
Jay R. Wren
0

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.

Nornagest
sumber