Có thể khởi động kép hai hệ điều hành cùng một lúc không?


36

Có thể khởi động kép hai hệ điều hành cùng một lúc không?

Ví dụ : Tôi hiện đang khởi động kép Ubuntu 11.04 và Windows 7. Ubuntu đang chạy trên một ổ cứng 500gb duy nhất, Windows 7 đang chạy trên máy nhân bản 1TB RAID 1. Để chuyển đổi giữa hai hệ điều hành, cần phải khởi động lại. Có thể chuyển đổi giữa hai hệ điều hành mà không cần khởi động lại không?

LƯU Ý : Tôi hoàn toàn biết về các khả năng của VirtualBox và VMWare Player - Tôi sử dụng cả hai. Vui lòng không trả lời "Sử dụng ảo hóa!"

EDIT: Nếu điều này là không thể, bạn có thể chia sẻ lý do tại sao điều đó là không thể? Đối với tôi, nó dường như không khó khăn đến thế. Hãy nhớ rằng tầm nhìn của tôi không bị cản trở bởi kiến ​​thức!


Trên máy tính lớn có bộ nhớ được phân vùng ...
Fiasco Labs

Câu trả lời:


36

Hầu hết, nếu không phải tất cả, các hệ điều hành chính thống đều mong muốn có được sự hỗ trợ độc quyền cho chức năng cấp thấp của máy chủ (ví dụ: phần cứng, cổng, v.v.) và không có bất kỳ khái niệm nào về việc chia sẻ với bất cứ điều gì khác - nó sẽ không hoạt động - Vì vậy, để thử và chạy hai hệ điều hành cùng một lúc trên cùng một hệ thống đòi hỏi một số hình thức trọng tài minh bạch để bảo vệ các hệ điều hành với nhau - nói cách khác, một ứng dụng ảo hóa.


Ứng dụng ảo hóa dường như là sự đồng thuận. Có bất kỳ tùy chọn nguồn mở hoặc miễn phí nào mà bạn muốn giới thiệu không?
James Hill

2
Nó thực sự phụ thuộc vào những gì bạn đang cố gắng làm vì một số ứng dụng VM tốt hơn một số thứ khác, nhưng nói chung: Chọn hệ điều hành mặc định chính của bạn (ví dụ: khởi động lên Ubuntu hoặc Windows) và sau đó cài đặt Virtualbox, VM Player (hai ứng dụng của tôi faves) hoặc ứng dụng VM yêu thích của bạn sau đó cài đặt HĐH khác dưới dạng máy ảo trong môi trường đó.
Linker3000

bạn có thể tạo một bản phân phối Ubuntu dựa trên colinux. colinux chạy kernel linux như một tiến trình trên windows, vì vậy nó không thực sự ảo hóa. theo một nghĩa nào đó, những gì câu hỏi ban đầu được hỏi là có thể, nó vẫn chưa được thực hiện.
Jay R. Wren

Tuy nhiên, một số đã được chuyển sang chạy trên các hệ điều hành, trái ngược với phần cứng thực tế - UserModeLinux là ví dụ hoàn hảo. colinux (như được đề cập bởi @Jay) là một ví dụ khác về một hệ điều hành đang được "chuyển" sang hệ thống khác.
new123456

15

Bạn dường như đang loại bỏ Hyper-V và Xen (được gọi là các siêu giám sát "kim loại trần") mặc dù chúng gần nhất với những gì bạn dường như đang yêu cầu. Đúng, đó là ảo hóa, nhưng không giống như cách VirtualBox hoạt động.

Hãy tưởng tượng một cái gì đó giống như VirtualBox là hệ điều hành của riêng nó, vì vậy bạn có thể cài đặt một hệ điều hành VirtualBox nhỏ, sau đó chạy Windows và Ubuntu cạnh nhau như các máy ảo trên hệ điều hành VirtualBox. Chà, về cơ bản đó là những gì Hyper-V hoặc Xen làm. Nó chỉ là một lớp ảo hóa mỏng giữa phần cứng và các hệ điều hành khách, và nó gần đến mức bạn có thể trực tiếp chạy chúng cạnh nhau với phần cứng hiện có và các hệ điều hành hiện có.

Bạn không cần một máy chủ riêng cho một trong hai thứ này, bạn chỉ cần cài đặt bộ ảo hóa như thể đó là hệ điều hành đầu tiên trên máy, sau đó thêm Windows và Ubuntu dưới dạng máy ảo dưới bộ ảo hóa.

Cả Xen và Hyper-V sẽ chạy Ubuntu và Windows dưới dạng hệ điều hành khách, mặc dù nó có thể không phải là cấu hình được hỗ trợ. Xen là Linuxy hơn và Hyper-V là một sản phẩm của MS, vì vậy tôi khuyên bạn nên chọn trình ảo hóa dựa trên bất kỳ hệ điều hành nào bạn thấy thoải mái hơn.


8

Điều gần nhất bạn có thể làm ... là tận dụng chế độ ngủ đông. Thật không may, các hệ điều hành đủ xa lạ với nhau rằng không có cách nào để cả hai hệ điều hành được chạy cùng một lúc mà không thực hiện ảo hóa. Thành thật mà nói, ảo hóa không còn tệ như bạn nghĩ nữa ... đặc biệt là khi bạn đang sử dụng nền tảng ảo hóa hỗ trợ các phần mở rộng "VT". Các hệ điều hành khách có khả năng giao tiếp trực tiếp với phần cứng và có bản đồ bộ nhớ tốt hơn nhiều. Tôi thực sự đã thiết lập một HĐH khách được cài đặt trực tiếp trên SSD ... và nó chạy nhanh hơn HĐH máy chủ.


Tôi không có vấn đề gì với ảo hóa, tôi sử dụng VirtualBox trên mọi máy tính mà tôi có. Bạn có thể giải thích các phần mở rộng VT mà bạn đề cập thêm một chút không? FYI - Đây là để sử dụng tại nhà vì vậy tôi đang tìm kiếm một cách rẻ tiền (đọc: miễn phí / nguồn mở) để làm việc này.
James Hill

VT = Ảo hóa phần cứng. Về cơ bản, CPU có một số phần mở rộng bổ sung (đôi khi yêu cầu phải được bật trong BIOS) được thiết kế để hỗ trợ chạy các hệ điều hành song song. VirtualBox có thể làm điều này ... nhưng nếu bạn bị mắc kẹt với ảo hóa phần mềm thì nó sẽ không hoạt động tốt. Đôi khi được gọi là VT-x, VT, AMD-V, Ảo hóa phần cứng hoặc vô số tên bổ sung.
TheCompWiz

VMWare có sinh vật mở rộng "VT" này mà bạn nói đến không? Nếu vậy, nó cần phải được kích hoạt rõ ràng?
MasterMastic

VT là một tính năng xử lý. Đó là vấn đề thời tiết hay không CPU của bạn có các bit được tích hợp hay không ... và cả nếu bo mạch chủ có hỗ trợ cho nó hay không. (tiện ích mở rộng bộ xử lý có thể bị tắt trong nhiều BIOS) Thông thường, nó được bật theo mặc định ... nhưng có thể bị tắt. Máy tính xách tay HP của tôi đã tắt ... nhưng các máy chủ siêu thị của tôi đã bật.
TheCompWiz

7

Đây là lý do đơn giản, ngắn gọn câu trả lời là 'không': Phần mềm nào sẽ kiểm soát phần cứng của bạn?

Nếu OS 1 làm điều đó, thì bạn không chạy OS 2. Nếu OS 2 làm điều đó, thì bạn không chạy OS 1. Nếu cả hai đều làm điều đó, thì một số phần mềm khác sẽ phải qua trung gian quyền truy cập chung của họ vào phần cứng vật lý và đó là ảo hóa (mà bạn loại trừ).


8
Trừ khi HĐH 1 là HĐH / 2. Sau đó, hệ điều hành / 2 đang chạy của bạn là HĐH 1 .: D
Kenneth Cochran

Đó chỉ đơn giản là Warped ... Ghi nhớ một hệ điều hành gọn gàng được tạo ra bởi một công ty không thể tiếp thị ra khỏi túi giấy ướt.
Phòng thí nghiệm Fiasco

2

Những điều bạn nghĩ đến là:
- Quản lý bộ nhớ (ram và bộ đệm)
- Quản lý quy trình (xử lý các luồng xử lý)

Vì vậy, bạn có thể sẽ cần một người đàn ông ở giữa sử dụng bộ nhớ và xử lý bộ nhớ giữa hai hệ điều hành.

Đó sẽ là một os / firmware khác.
Vì vậy, nếu ai đó đã triển khai, os sẽ triển khai nó, bạn có thể kết thúc với 3 thay vì 2 Os chạy cùng lúc

EDIT-
Thêm những gì linker3000 đã viết: quản lý các cổng

'Người đứng giữa' này về cơ bản sẽ trở thành HĐH máy chủ của bạn và các HĐH khác được ảo hóa, đưa bạn trở lại với những gì bạn đã biết là một giải pháp


2

Tất cả các hệ điều hành tôi đều biết về nhu cầu kiểm soát toàn bộ phần cứng máy tính.

Về mặt lý thuyết là có thể. Cả hai hệ điều hành sẽ cần phải được thiết kế để:

  • Chạy như cả chủ (tổng kiểm soát phần cứng) và nô lệ (yêu cầu tài nguyên từ hệ điều hành chính)
  • Từ bỏ quyền kiểm soát phần cứng theo yêu cầu từ HĐH khác

Nếu cả hai điều kiện này đều được đáp ứng, có thể chạy hai HĐH cùng lúc mà không cần bất kỳ loại ảo hóa nào. Nó sẽ giống như hai hệ điều hành sử dụng đa nhiệm hợp tác . Tất nhiên, đa nhiệm hợp tác có tất cả nhưng đã bị bỏ rơi vì vấn đề các ứng dụng bằng văn bản kém từ chối nhượng quyền kiểm soát. Có lẽ hai hệ điều hành được viết đúng sẽ chơi tốt. Sau đó, một lần nữa những gì sẽ được khuyến khích?


1

Hãy để tôi giải quyết phần "tại sao".

Một trong những lý do cho một hệ điều hành hiện đại là cho phép nhiều chương trình (quy trình) chạy cùng lúc trên một hệ thống. Nếu bạn muốn làm điều này một cách an toàn, những điều sau đây cần phải xảy ra:

  • Bạn có thể (trừ khi bạn có nhu cầu đặc biệt) không muốn tiết kiệm RAM trong hệ thống theo cách cố định - ví dụ: 256 MB cố định cho mỗi quy trình - giới hạn bạn 8 quy trình trong hệ thống 2GB. Bạn muốn mỗi quá trình có thể "yêu cầu" bộ nhớ và trả lại khi hoàn thành.

  • Bạn cũng không muốn phân chia các thiết bị I / O theo kiểu cố định giữa các thiết bị. Thông thường, bạn muốn một số hoặc tất cả phần cứng, như bộ nhớ là tài nguyên được chia sẻ hoặc ít nhất chỉ tạm thời độc quyền cho các quy trình cụ thể tại các thời điểm cụ thể. Điều này đòi hỏi tất cả các quy trình không cố gắng tự thực hiện I / O, nhưng "trải qua" một cái gì đó để lên lịch và điều phối I / O. Việc lập lịch trình rất quan trọng vì hầu hết I / O chậm hơn CPU rất nhiều, vì vậy bạn có thể để CPU thực hiện các công việc khác trong khi nó đang chờ I / O ngay cả trên hệ thống lõi đơn.

Để thực hiện quyền trên, người ta cần tận dụng một số tính năng phần cứng của CPU. Một trong số đó là MMU, cái còn lại là chế độ được bảo vệ. Hai hệ điều hành có thể chia sẻ các tính năng phần cứng này hợp tác để chạy hai hoặc nhiều hệ điều hành không?

Chắc chắn, nhưng không có gì trong phần cứng có thể ngăn chặn một hệ điều hành dậm chân trên tất cả các bộ nhớ hệ điều hành khác. Nếu CPU ở chế độ kernel (nó chỉ có một chế độ kernel), bất kỳ mã nào cũng có thể làm bất cứ điều gì. 100% mã có thể chạy từ một HĐH để chạy mã hoặc dữ liệu của HĐH kia. Và chúng tôi biết các hệ điều hành đã có lỗ hổng trong quá khứ và sẽ có nhiều hơn trong tương lai. Vì vậy, nó rất tệ cho an ninh.

Bây giờ, sẽ không hay sao nếu bạn có thể đặt một "lớp" khác lên trên lớp này và có hỗ trợ phần cứng cần thiết cho nhiều hệ điều hành không? Đó chính xác là những gì các tính năng ảo hóa phần cứng làm, chúng đặt một rào cản phần cứng giữa nhiều hệ điều hành đang chạy và có một "giao diện" cấp cao nhất cho chúng được gọi là hypanneror. Bạn chỉ có thể có một hypanneror. Và đúng vậy, các tiến trình chạy trong một trong hai HĐH phải trải qua ba lớp để thực hiện I / O (tiến trình - kernel cục bộ - hypanneror)


0

Tôi biết bạn nói không ảo hóa, nhưng một cái gì đó như máy chủ MS Hyper V có thể phù hợp với nhu cầu của bạn


Hyper-V sẽ yêu cầu một máy thứ hai hoạt động như một máy chủ. Nếu tôi có một cỗ máy thứ hai mạnh mẽ như vậy, tôi sẽ đặt nó bên cạnh tòa tháp khác của tôi và khởi động cả hai với các hệ điều hành khác nhau :). Ngoài ra, từ những gì tôi hiểu, thiết lập sẽ có giá không dưới 2k đô la.
James Hill

Tôi nghĩ bạn có thể chạy Hyper V trên một máy duy nhất ..
Akash

2
V trong hyper-v là dành cho ảo hóa. nếu ràng buộc là không ảo hóa, thì hyper-v không phải là một giải pháp.
Jay R. Wren

0

Không có cách nào khác ngoài ảo hóa. Tôi thấy rất khó để có được thông tin xác định mà hệ thống khách sẽ làm việc cho các trình ảo hóa khác nhau. http://en.wikipedia.org/wiki/Hypervisor Nên là một khởi đầu tốt để có được một số thông tin và Xen có thể đáng để thử, mặc dù tôi sẽ chờ ai đó xác nhận hoặc từ chối nếu nó hỗ trợ khách Windows 7.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.