2

Мне надоело перезагружать мой компьютер каждый раз, когда я хочу использовать другую ОС или запускать виртуальную машину, которая экономит электроэнергию. С появлением больших объемов памяти для компьютеров в настоящее время я начал думать, что должен быть какой-то способ запуска двух ОС в памяти с возможностью переключения между ними. На мой взгляд, это не кажется слишком сложным;

  • слой совместимости загружается после BIOS, который, в свою очередь, загружается в OS1. В OS1 запускается программное обеспечение, которое запускает сохранение в оперативную память, загружается обратно на уровень совместимости, а затем загружается в OS2. Таким образом, ОС можно использовать бок о бок, и время загрузки значительно сокращается, поскольку обе ОС уже работают в оперативной памяти.

Обе ОС имеют свою собственную назначенную и защищенную память, так что проблем здесь нет ... Я имею в виду, это кажется хорошим, но никто не сделал этого, поэтому должна быть какая-то причина, почему. Я хотел бы немного понять это, пожалуйста.

2 ответа2

4

То, что вы говорите, вполне возможно, за исключением того, что переключение состояний периферийных устройств неожиданно не будет допущено большинством операционных систем.

Пример - OS1 работает, вы приостанавливаете его в ОЗУ, а затем загружаете OS2. Все устройства, такие как PCI, USB и т.д., Находятся в определенном состоянии, но OS2 изменит это состояние. Когда вы вернетесь в OS1, все драйверы устройств будут работать с устройствами в неожиданных состояниях с точки зрения OS1. OS1, вероятно, аварийно завершит работу, поскольку ее драйверы будут выполнять то, что не нравится устройствам, поскольку устройства не находятся в надлежащем состоянии.

Не всегда возможно сохранять и восстанавливать состояния устройств так же, как вы бы работали в ОЗУ. Устройства могут быть причудливыми. Обычно для взаимодействия ОС с устройством необходимо использовать ее драйвер. Водители могут иметь ошибки и т.д.

Теперь вы можете подумать, что можете назначить устройства исключительно одной или другой ОС. Проблема в том, что для доступа к устройству вам нужно пройти через шину, а на стандартном оборудовании ПК у вас будет только 1 или 2 шины PCI-E, например, к которым подключены все карты PCI-E. Таким образом, по крайней мере, шина должна быть разделена между вашими экземплярами ОС. Одна ОС может "наступать" на другие устройства ОС, если в середине нет какого-либо активного уровня (например, гипервизора). Очень трудно полностью разделить оборудование между двумя ОС.

Виртуализация действительно лучшее, что вы можете сделать.

1

звучит как kexec.Но он доступен только в ОС * nix.

Kexec - это системный вызов, который позволяет загружать и загружать другое ядро из запущенного в данный момент ядра. Это полезно для разработчиков ядра или других людей, которым требуется очень быстрая перезагрузка, не дожидаясь завершения всего процесса загрузки BIOS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .