Чи можливо подвійне завантаження двох ОС одночасно?


36

Чи можливо подвійне завантаження двох ОС одночасно?

Наприклад : В даний час я використовую подвійне завантаження Ubuntu 11.04 і Windows 7. Ubuntu працює на одному жорсткому диску 500 Гб, Windows 7 працює на 1TB дзеркалі RAID 1. Для переключення між двома ОС потрібно перезавантажити. Чи можливо перемикатися між двома ОС без перезавантаження?

ПРИМІТКА : Я повністю усвідомлюю можливості VirtualBox та VMWare Player - використовую і те, і інше. Не відповідайте "Використовуйте віртуалізацію!"

EDIT: Якщо це неможливо, ви можете поділитися, чому це неможливо? Мені не здається, що це буде так складно. Майте на увазі, що моє бачення не обтяжене знаннями!


На мейнфреймах з розділеною пам'яттю ...
Labs Fiasco

Відповіді:


36

Більшість, якщо не всі, основні операційні системи очікують, що вони мають ексклюзивний доступ до функціоналу хост-комп'ютера низького рівня (наприклад, апаратного забезпечення, портів тощо) і не мають жодної концепції спільного використання з чим-небудь іншим - це просто не буде працювати - тому для того, щоб спробувати запустити дві ОС одночасно в одній системі, потрібна певна форма прозорого арбітра, щоб захистити операційні системи один від одного - іншими словами, додаток для віртуалізації.


Здається, додаток до віртуалізації є єдиною думкою. Чи є якісь безкоштовні та відкриті варіанти, які ви б рекомендували?
Джеймс Гілл

2
Це дійсно залежить від того, що ви намагаєтеся зробити, оскільки деякі програми VM краще в деяких справах, ніж інші, але в цілому: виберіть основну ОС за замовчуванням (тобто: завантажте Ubuntu або Windows), а потім встановіть Virtualbox, VM Player (мої два faves) або ваш улюблений додаток VM, потім встановіть іншу ОС у якості віртуальної машини в цьому середовищі.
Linker3000

ви можете створити дистрибутив ubuntu, заснований поза колінбулом. colinux запускає ядро ​​Linux як процес у Windows, тому це насправді не віртуалізація. в певному сенсі, що можливе оригінальне запитання, це просто ще не зроблено.
Джей Р. Врен

Однак деякі з них були портовими для роботи в операційних системах, на відміну від фактичного обладнання - UserModeLinux є ідеальним контрприкладом. colinux (як згадував @Jay) - це ще один приклад того, що операційна система "переноситься" на іншу.
new123456

15

Ви, здається, відхиляєте Hyper-V та Xen (так звані "голі метали" гіпервізори), хоча вони найближчі до того, що ви, здається, просите. Так, це віртуалізація, але не так, як працює VirtualBox.

Уявіть, що на зразок VirtualBox була власна операційна система, тому ви могли встановити крихітну ОС VirtualBox, а потім запустити Windows і Ubuntu поруч як віртуальні машини на версії ОС VirtualBox. Ну, це по суті те, що роблять Hyper-V або Xen. Це лише тонкий шар віртуалізації між апаратним забезпеченням та гостьовими операційними системами, і він наближений до того, що ви можете безпосередньо запустити їх поряд з існуючим обладнанням та існуючими операційними системами.

Вам не потрібен окремий сервер для будь-якого з них, ви просто встановите гіпервізор так, як якщо б це була перша операційна система на машині, а потім додали Windows і Ubuntu як віртуальні машини під гіпервізором.

І Xen, і Hyper-V запускають Ubuntu та Windows як гостьові операційні системи, хоча це може бути не підтримуваною конфігурацією. Xen більше Linuxy, а Hyper-V - продукт MS, тому я б запропонував вибрати гіпервізор на основі тієї ОС, де вам більше комфортно.


8

Найближче, що ви могли зробити ... це використовувати сплячку. На жаль, операційні системи досить чужі одна одній, що немає можливості, щоб обидві ОС працювали одночасно без застосування віртуалізації. Чесно кажучи, віртуалізація не така вже й погана, як ви думаєте більше ... особливо коли ви використовуєте платформу для віртуалізації, яка підтримує розширення "VT". Запрошені ОС отримують можливість безпосередньо спілкуватися з обладнанням та мають набагато кращі карти пам’яті тощо. Я фактично налаштував гостьову ОС, встановлену безпосередньо на SSD ..., і вона працювала швидше, ніж хост-ОС.


У мене немає проблем з віртуалізацією, я використовую VirtualBox на кожному комп’ютері, який у мене є. Чи можете ви пояснити розширення VT, про які ви згадали трохи більше? FYI - Це для домашнього використання, тому я шукаю дешевий (читати: безкоштовний / відкритий код) спосіб цього зробити.
James Hill

VT = віртуалізація обладнання. В основному, процесор має деякі додаткові розширення (іноді потребує ввімкнення в BIOS), призначених для паралельного запуску ОС. VirtualBox може це зробити ... але якщо ви застрягли з віртуалізацією програмного забезпечення, це не буде добре. Іноді називають VT-x, VT, AMD-V, віртуалізацію апаратних засобів або безліч додаткових імен.
TheCompWiz

Чи має VMWare ця історія розширень "VT", про яку ви говорите? якщо так, то чи потрібно це вмикати явно?
MasterMastic

VT - це особливість процесора. Це питання погоди, чи ні ваш процесор має вбудовані біти чи ні ... а також, якщо материнська плата має підтримку. (розширення процесора можуть бути відключені у багатьох BIOS). Зазвичай це ввімкнено за замовчуванням ... але може бути відключено. Мій ноутбук HP був вимкнений ... але мої сервери супермікро увімкнули його.
TheCompWiz

7

Ось проста і коротка причина відповіді "ні": яке програмне забезпечення контролювало б ваше обладнання?

Якщо OS 1 робить це, ви не запускаєте ОС 2. Якщо OS 2 робить це, то ви не працюєте з ОС 1. Якщо вони обидва це роблять, то деякому іншому програмному забезпеченню доведеться опосередковувати їх спільний доступ до фізичного обладнання , і це віртуалізація (яку ви виключили).


8
Якщо ОС 1 не є ОС / 2. Тоді ваш ОС / 2 працює як ОС 1.: D
Кеннет Кокран

Це просто звичайний Викривлений ... Пам’ятаючи про акуратну операційну систему, створену компанією, яка не могла продати вихід із мокрого паперового пакета.
Лабораторії Фіаско

2

Можливо, що спадає на думку:
- управління пам’яттю (оперативні пам’яті та кеш)
- управління процесами (запущені потоки процесів)

Тож вам, мабуть, знадобиться людина, що займається пам'яттю та процесами між двома ОС.

Це буде ще одна ос / прошивка.
Тож якщо хтось реалізував це, то він буде реалізовувати його, можливо, у вас вийде 3 замість 2 Oss одночасно

EDIT -
Додавання того, що linker3000 написав: управління портами

Цей "чоловік в середині", по суті, стане вашою основною ОС, а інші ОС віртуалізовані, що поверне вас до того, що ви вже знали, що це рішення


2

Усі ОС, які мені відомі, вимагають повного контролю за обладнанням комп'ютера.

Теоретично це можливо. Обидві ОС повинні бути розроблені для:

  • Запускається як головний (загальний апаратний контроль), так і підлеглий (запитує ресурси з головної ОС)
  • Надайте контроль над обладнанням за запитом іншої ОС

Якщо обидва ці умови будуть дотримані, можна було б запустити дві ОС одночасно без будь-якої віртуалізації. Це було б схожим на дві ОС, що використовують спільну багатозадачність . Звичайно, кооперативне багатозадачність майже не було відмовлено через випуск погано написаних заяв про відмову від передачі контролю. Можливо, дві правильно написані ОС будуть добре грати. Тоді знову, що було б стимулом?


1

Дозвольте мені звернутися до частини "чому".

Одна з причин сучасної ОС полягає в тому, щоб дозволити запуск декількох програм (процесів) одночасно в системі. Якщо ви хочете зробити це безпечно, потрібно зробити наступне:

  • Ви, мабуть, (якщо у вас немає особливих потреб) не хочете ділитися оперативною пам’яттю в системі фіксованим способом - наприклад, 256 Мб фіксованим за процес - обмежує вас до 8 процесів у системі 2 Гб. Ви хотіли б, щоб кожен процес міг «запитати» пам’ять і повертати її, коли це завершено.

  • Ви також не хочете фіксувати пристрої вводу / виводу фіксованим способом серед пристроїв. Зазвичай ви хочете, щоб певне або все обладнання, як-от пам'ять, було спільним ресурсом або принаймні лише тимчасово виключалося для певних процесів у певний час. Це вимагає, щоб усі процеси не намагалися робити введення-виведення самостійно, а "проходити" щось для планування та узгодження вводу-виводу. Планування важливо, оскільки більшість вводу-виводу є набагато повільнішими, ніж процесор, тому ви можете змусити процесор працювати над іншими процесами, поки він чекає вводу-виводу навіть у одноядерній системі.

Щоб зробити вищезазначене правильно, потрібно скористатися декількома функціональними можливостями процесора. Один з них - MMU, інший - захищений режим. Чи можуть дві ОС розділити ці функції обладнання спільно для роботи двох чи більше ОС?

Звичайно, але в апаратних засобах немає нічого, що могло б перешкодити одній ОС перебирати всю пам'ять інших ОС. Якщо ЦП знаходиться в режимі ядра (у нього є лише один режим ядра), будь-який код може зробити що завгодно. На 100% можливо, щоб код з однієї ОС переходив над кодом або даними іншої ОС. І ми знаємо, що операційні системи мали вразливості в минулому і їх буде більше в майбутньому. Тож це дуже погано для безпеки.

Тепер, чи не було б здорово, якби ви могли покласти ще один "шар" над цим і вам потрібна апаратна підтримка для декількох ОС? Саме це і робить функція апаратної віртуалізації, вони ставлять апаратний бар'єр між декількома запущеними ОС, і для них існує "інтерфейс" верхнього рівня, який називається гіпервізор. У вас може бути лише один гіпервізор. І так, процеси, що працюють в будь-якій ОС, повинні пройти три шари, щоб зробити I / O (процес - локальне ядро ​​- гіпервізор)


0

Я знаю, ви сказали, що немає віртуалізації, але щось на кшталт сервера MS Hyper V може відповідати вашим потребам


Hyper-V вимагає, щоб друга машина працювала як сервер. Якби у мене була друга потужна друга машина, я би встановив її поруч з іншою вежею і запустив їх обох з різними ОС :). Також, наскільки я розумію, налаштування коштуватиме не менше $ 2 тис.
Джеймс Гілл

Я думаю, ви можете запустити Hyper V на одній машині ..
Акаш

2
V в гіпер-v призначений для віртуалізації. якщо обмеження не є віртуалізацією, то гіпер-v не є рішенням.
Джей Р. Врен

0

Не існує іншого способу, ніж віртуалізація. Мені важко отримати певну інформацію, які гостьові системи будуть працювати для різних гіпервізорів. http://en.wikipedia.org/wiki/Hypervisor Слід добре почати отримувати інформацію, і Xen, можливо, варто спробувати, хоча я б зачекав, коли хтось точно підтвердить або спростує, якщо він підтримує гостей Windows 7.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.