두 개의 OS를 동시에 이중 부팅 할 수 있습니까?


36

두 개의 OS를 동시에 이중 부팅 할 수 있습니까?

예를 들면 : 저는 현재 Ubuntu 11.04와 Windows 7을 이중 부팅하고 있습니다. Ubuntu는 단일 500gb HDD에서 실행되고 Windows 7은 1TB RAID 1 미러에서 실행됩니다. 두 OS 사이를 전환하려면 재부팅해야합니다. 재부팅하지 않고 두 OS간에 전환 할 수 있습니까?

참고 : VirtualBox 및 VMWare Player의 기능을 완전히 알고 있습니다. 둘 다 사용합니다. "가상화 사용!"이라고 대답하지 마십시오.

편집 : 이것이 가능하지 않은 경우 불가능한 이유를 공유 할 수 있습니까? 나에게는 그렇게 어려운 것처럼 보이지 않습니다. 나의 비전은 지식에 의해 방해받지 않는다는 것을 명심하십시오!


분할 메모리가있는 메인 프레임에서 ...
Fiasco Labs

답변:


36

전부는 아니더라도 대부분의 주류 운영 체제는 호스트 컴퓨터의 하위 수준 기능 (예 : 하드웨어, 포트 등)에 독점적으로 액세스 할 것으로 예상하고 다른 것과 공유 할 개념이 없습니다. 따라서 동일한 시스템에서 두 개의 OS를 동시에 시도하고 실행하려면 운영 체제를 서로 보호하기 위해 일종의 투명한 중재자가 필요합니다. 즉, 가상화 응용 프로그램입니다.


가상화 애플리케이션이 합의 된 것으로 보입니다. 추천 할 무료 또는 공개 소스 옵션이 있습니까?
제임스 힐

2
그것은 실제로 어떤 VM 앱이 다른 것보다 낫기 때문에 무엇을하려고하는지에 달려 있지만 일반적으로 : 기본 기본 OS (예 : 우분투 또는 Windows로 부팅)를 선택한 다음 Virtualbox, VM Player (나의 두 가지)를 설치하십시오 faves) 또는 자주 사용하는 VM 앱을 선택한 다음 해당 환경에서 다른 OS를 가상 머신으로 설치하십시오.
Linker3000

colinux를 기반으로 우분투 배포판을 만들 수 있습니다. colinux는 리눅스 커널을 Windows에서 프로세스로 실행하므로 실제로 가상화되지는 않습니다. 어떤 의미에서, 원래의 질문이 가능했던 것은 아직 이루어지지 않았다.
Jay R. Wren

그러나 일부는 실제 하드웨어와 달리 운영 체제에서 실행되도록 이식되었습니다 . UserModeLinux 가 완벽한 반례입니다. @linux 에서 언급 한 colinux는 운영 체제가 다른 시스템으로 "포팅"되는 또 다른 예입니다.
new123456

15

Hyper-V 및 Xen ( "베어 메탈"하이퍼 바이저라고도 함)은 요청한 것과 가장 가깝지만 무시하는 것 같습니다. 예, 가상화이지만 VirtualBox와 동일한 방식으로 작동하지는 않습니다.

VirtualBox와 같은 것이 자체 운영 체제라고 가정하면 작은 VirtualBox OS를 설치 한 다음 VirtualBox OS 위에 가상 시스템으로 Windows와 Ubuntu를 나란히 실행할 수 있습니다. 이것이 바로 Hyper-V 나 Xen이하는 일입니다. 하드웨어와 게스트 운영 체제 간의 씬 가상화 계층 일뿐 아니라 기존 하드웨어 및 기존 운영 체제와 나란히 직접 실행할 수있는 수준에 가깝습니다.

당신은 하지 않습니다 는 컴퓨터의 첫 번째 운영 체제 인 것처럼, 당신은 단지 하이퍼 바이저를 설치하는 것이 중 하나에 대해 별도의 서버가 필요하고 하이퍼 바이저에서 가상 머신으로 윈도우와 우분투를 추가합니다.

Xen과 Hyper-V는 모두 Ubuntu와 Windows를 게스트 운영 체제로 실행하지만 지원되는 구성이 아닐 수도 있습니다. Xen은 Linuxy이고 Hyper-V는 MS 제품이므로 더 편한 OS를 기반으로 하이퍼 바이저를 선택하는 것이 좋습니다.


8

당신이 할 수있는 가장 가까운 일은 ... 최대 절전 모드를 이용하는 것입니다. 불행하게도 운영 체제는 서로에 대해 충분히 외계인이므로 가상화를 구현하지 않고 두 OS를 동시에 실행할 수있는 방법이 없습니다. 솔직히 말해서 가상화는 더 이상 생각보다 나쁘지 않습니다. 특히 "VT"확장을 지원하는 가상화 플랫폼을 사용하는 경우에는 더욱 그렇습니다. 게스트 OS는 하드웨어와 직접 통신 할 수있는 기능을 제공하며 메모리 매핑 등이 훨씬 우수합니다. 실제로 SSD에 직접 설치된 게스트 OS를 설정했으며 호스트 OS보다 더 빠르게 실행되었습니다.


가상화에 아무런 문제가 없으며 모든 컴퓨터에서 VirtualBox를 사용합니다. 좀 더 언급 한 VT 확장을 설명해 주시겠습니까? 참고-이것은 가정용으로 사용되므로 저렴한 (읽기 : 무료 / 오픈 소스) 방법을 찾고 있습니다.
제임스 힐

VT = 하드웨어 가상화. 기본적으로 CPU에는 운영 체제를 병렬로 실행하기 위해 추가 확장 기능 (때로는 BIOS에서 활성화해야 함)이 있습니다. VirtualBox가이 작업을 수행 할 수 있지만 소프트웨어 가상화에 갇혀 있으면 성능이 떨어집니다. VT-x, VT, AMD-V, 하드웨어 가상화 또는 수많은 추가 이름이라고도합니다.
TheCompWiz

VMWare는 당신이 말하는이 "VT"확장자를 가지고 있습니까? 그렇다면 명시 적으로 활성화해야합니까?
MasterMastic

VT는 프로세서 기능입니다. 날씨에 상관없이 CPU에 내장 된 비트가 있는지 여부와 마더 보드가 지원하는 경우가 있습니다. (많은 BIOS에서 프로세서 확장을 비활성화 할 수 있습니다.) 일반적으로 기본적으로 활성화되어 있지만 비활성화 할 수 있습니다. 내 HP 랩탑의 전원이 꺼져 있지만 ... 초소형 서버의 전원이 켜져 있습니다.
TheCompWiz

7

대답이 '아니오'인 간단하고 짧은 이유는 다음과 같습니다. 어떤 소프트웨어가 하드웨어를 제어합니까?

OS 1이 작동하면 OS 2를 실행하지 않는 것입니다. OS 2가 작동하면 OS 1을 실행하지 않는 것입니다. 둘 다 실행하는 경우 다른 소프트웨어는 물리적 하드웨어에 대한 공유 액세스를 중재해야합니다 그리고 그것은 가상화입니다 (당신이 배제한).


8
OS 1이 OS / 2가 아닌 한. 그런 다음 실행중인 OS / 2를 OS 1로 실행하십시오. : D
Kenneth Cochran

젖은 종이 봉지에서 길을 팔 수없는 회사가 만든 깔끔한 운영 체제를 기억하는 것입니다.
Fiasco Labs

2

기억해야 할 사항은 다음과 같습니다
.-메모리 관리 (램 및 캐시)
-프로세스 관리 (프로세스 스레드 실행)

따라서 두 OS 사이에서 메모리 사용 및 프로세스를 중간에 조정하는 사람이 필요할 것입니다.

다른 OS / 펌웨어 일 것입니다.
누군가 누군가 그것을 구현했다면 os가 그것을 구현할 것입니다. 동시에 2 Os가 아닌 3으로 끝날 수 있습니다.

편집 -이
포트의 관리 : linker3000가 쓴 추가

이 '중간에있는 사람'은 본질적으로 호스트 OS가되고 가상화 된 다른 OS가되어 이미 알고있는 솔루션으로 되돌아갑니다.


2

내가 아는 모든 OS는 컴퓨터 하드웨어에 대한 완전한 제어를 요구합니다.

이론적으로 가능합니다. 두 OS 모두 다음과 같이 설계되어야합니다.

  • 마스터 (총 하드웨어 제어) 및 슬레이브 (마스터 OS에서 리소스 요청)로 실행
  • 다른 OS의 요청에 따라 하드웨어 제어 포기

이 두 조건이 모두 충족되면 어떠한 가상화도없이 두 개의 OS를 동시에 실행할 수 있습니다. 협동 멀티 태스킹을 사용하는 두 개의 OS와 유사합니다 . 물론, 협조적인 멀티 태스킹은 제어를 거부하는 잘못 작성된 응용 프로그램 문제로 인해 포기되었습니다. 아마도 제대로 작성된 두 개의 OS가 좋을 것입니다. 그렇다면 다시 인센티브는 무엇입니까?


1

"왜"부분을 설명하겠습니다.

최신 OS의 이유 중 하나는 시스템에서 여러 프로그램 (프로세스)을 동시에 실행할 수 있기 때문입니다. 이 작업을 안전하게하려면 다음을 수행해야합니다.

  • (특별한 요구가 없다면) 시스템에서 RAM을 고정 된 방식으로 분할하고 싶지는 않을 것입니다 (예 : 프로세스 당 256MB 고정)-2GB 시스템에서 8 개의 프로세스로 제한합니다. 각 프로세스가 메모리를 "요청"하고 완료되면이를 반환 할 수 있기를 원합니다.

  • 또한 장치간에 고정 된 방식으로 I / O 장치를 나누고 싶지 않습니다. 일반적으로 메모리와 같은 일부 또는 모든 하드웨어가 공유 리소스가되거나 특정 시간에 특정 프로세스에 대해 일시적으로 독점적으로 사용되기를 원합니다. 이를 위해서는 모든 프로세스가 자체적으로 I / O를 시도하지 않고 I / O를 예약하고 조정하기 위해 무언가를 "통과"해야합니다. 대부분의 I / O가 CPU보다 훨씬 느리기 때문에 스케줄링이 중요하므로 단일 코어 시스템에서도 I / O를 기다리는 동안 CPU가 다른 프로세스에 대해 작동하도록 할 수 있습니다.

위의 작업을 올바르게하려면 몇 가지 CPU 하드웨어 기능을 활용해야합니다. 이 중 하나는 MMU이고 다른 하나는 보호 모드입니다. 두 개의 OS가 두 개 이상의 OS를 실행하기 위해 이러한 하드웨어 기능을 협력 적으로 공유 할 수 있습니까?

물론, 하나의 OS가 다른 OS 메모리 전체에서 스톰 핑하는 것을 막을 수있는 하드웨어는 없습니다. CPU가 커널 모드 인 경우 ( 하나의 커널 모드 만 있음) 모든 코드는 무엇이든 할 수 있습니다. 한 OS의 코드가 다른 OS의 코드 또는 데이터를 실행하는 것이 100 % 가능합니다. 우리는 과거에 운영 체제에 취약점이 있었고 앞으로 더 많은 기능을 보유 할 것임을 알고 있습니다. 따라서 보안이 매우 나쁩니다.

이제 이것 위에 또 다른 "계층"을 배치하고 여러 OS에 대해 하드웨어 지원이 필요한 경우 멋지지 않습니까? 이것이 바로 하드웨어 가상화 기능이하는 일이며, 실행중인 여러 OS간에 하드웨어 장벽을두고 하이퍼 바이저라고하는 최상위 "인터페이스"가 있습니다. 하나의 하이퍼 바이저 만 가질 수 있습니다. 그리고 네, 어느 OS에서든 실행되는 프로세스는 I / O를 수행하기 위해 3 개의 계층을 거쳐야합니다 (프로세스-로컬 커널-하이퍼 바이저)


0

가상화가 없다고 말했지만 MS Hyper V 서버와 같은 것이 귀하의 요구를 충족시킬 수 있습니다.


Hyper-V는 서버 역할을하는 두 번째 컴퓨터가 필요합니다. 내가 강력했던 두 번째 머신을 가지고 있다면 다른 타워 옆에 설정하고 다른 OS로 시작합니다. :) 또한 내가 이해 한 바에 따르면 설치 비용은 $ 2k 이상입니다.
제임스 힐

한 대의 컴퓨터에서 Hyper V를 실행할 수 있다고 생각합니다.
Akash

2
hyper-v의 V는 가상화를위한 것입니다. 제약 조건이 가상화가 아닌 경우 hyper-v는 솔루션이 아닙니다.
Jay R. Wren

0

가상화 이외의 다른 방법은 없습니다. 게스트 시스템이 다른 하이퍼 바이저에 대해 작동 할 정확한 정보를 얻는 것이 어렵다는 것을 알게되었습니다. http://en.wikipedia.org/wiki/Hypervisor 정보를 얻으려면 좋은 출발이되어야하며 Xen은 시도해 볼만한 가치가 있지만 누군가 Windows 7 게스트를 지원하는지 확실히 확인하거나 거부하기를 기다릴 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.