BIOS sanallaştırmayı nasıl engelleyebilir?


26

Docker ile çalışmaya başlıyorum ve birkaç saat çalıştıktan sonra, BIOS'umun onu engellediğini ve BIOS ayarlarını yapmak için gerekli olduğunu öğrendim. BIOS'un bir şekilde anakartla ilgili olduğu söylendi.

BIOS, bu tür bir işlemi nasıl engelleyerek işletim sistemini geçersiz kılabilir?


14
Geriye aldın. Sanallaştırma için BIOS ayarları CPU'ya belirli bir işleme izin vermesini söyler. sanallaştırma uzantıları bios'ta etkin değilse, CPU programı yürütemez. Durum, bir x64 sisteminde DEC Alpha işlemci mimarisi için derlenmiş bir programı çalıştırmaya çalışmak gibi bir şey. uzantıları olmadan, program CPU'nun anlamadığı talimatları çalıştırmaya çalışacaktır. Docker'ınız yürütülmesini engelliyor çünkü şu anda yapılandırılmış olarak CPU'nuzun çalıştıramayacağını algıladı.
Frank Thomas

Yanıtlar:


37

CPU bir programı engellemekte değildir; Bu düzeyde düşük uygulamalar kavramı yok. Sorun, Linux dışı işletim sistemlerindeki Docker’ın donanım sanallaştırması gerektirmesidir. İşletim sisteminizi belirtmediniz, ancak küçük bir araştırmadan geçtim ve muhtemelen Windows'u kullandığınızı keşfettim.

Donanım sanallaştırma, isminden de tahmin edebileceğiniz gibi CPU'nun sanallaştırma konusunda yardımcı olmasını sağlayan bir CPU özelliğidir. Birçok makinede, BIOS'ta etkinleştirmeniz gerekir. Bu, kısmen güvenlik sorunlarını önlemektir . Temel olarak, bir programı başlatamazsınız çünkü aktif olarak bloke edilmek yerine etkin olmayan bir özelliği kullanmaya çalıştı.


14
a tiny bit of snoopingHa..ha
bs677

evet Windows 7 kullanıyorum! açıklama için teşekkürler!!! Şimdi anladım!
Alvaro Joao

Bu ayara alışkınım ama hala belirsizim, donanım sanallaştırmasının tam olarak ne olduğu (BIOS ayarı bağlamında)?
Celeritas

2
@Celeritas Donanım sanallaştırma, VM ve BIOS tarafından sağlanan ve sanal makineleri çalıştırmayı daha verimli kılan, örneğin VM tarafından yapılan bellek erişimlerini saf bir yazılım seviyesinde yapılabilecek olandan daha verimli bir şekilde yöneten bir özelliktir. sanallaştırma yazılımının daha verimli bir şekilde işlemesi için G / Ç işlemleri gibi "ayrıcalıklı" yönergelerin kullanılması / yakalanması.
ζ--

2
@ RACING121 The N, NSA'yı temsil ediyor :)
Ben N,

41

Ben N cevabı açıkça en faydalı ve net cevaptır.

Hala merak edenler için, ancak burada tam hikaye.


İşlemciden gelen donanım yardımı ile sanallaştırma sağlanır. Sanallaştırılmış bir işletim sistemi, aynı kaynaklar için rekabet ettiklerinden, ana makineye müdahale edeceğinden, konuğun donanıma kontrolsüz erişimine engel olmak için bir mekanizma gerekir. Bu, yazılımla, yavaş, tekniklerle veya CPU'nun yardımıyla yapılabilir.

Donanım destekli sanallaştırma özel, isteğe bağlı talimatlarla uygulanır, bu konuda Intel Manual 3B Bölüm 3 , Bölüm 23, 24, 25, 26, 27 ve 28'de okuyabilirsiniz . Yazılım, kullanmaya başlamadan önce bu talimatların desteklendiğini kontrol etmelidir.

Güvenlik nedeniyle, işlemci bir olduğunu, özel bir kayıt vardır MSR denilen IA32_FEATURE_CONTROL etkinleştirmek için özelliği veya devre dışı bırakmak ile anlatan bitleri tutar.
Alıntı yapmak

Bit 0, kilit bitidir. Bu bit açıksa, VMXON genel koruma istisnasına neden olur. Kilit biti ayarlanmışsa, bu MSR'ye WRMSR genel koruma istisnasına neden olur; MSR, bir açılış sıfırlama durumuna kadar değiştirilemez . Sistem BIOS'u, bu biti, VMX desteğini devre dışı bırakmak üzere BIOS ayar seçeneği sağlamak için kullanabilir. Bir platformda VMX desteğini etkinleştirmek için, BIOS'un kilit biti ile birlikte bit 1, bit 2 veya her ikisini de (aşağıya bakınız) ayarlaması gerekir.

Temel nokta, kayıt bir kez kilitlendiğinde açılıncaya kadar açılmamasıdır .

BIOS / UEFI ilk geldiğinden, herhangi bir işletim sisteminin bunu engellemeden önce uygun bitleri temizleyerek ve kayıt defterini kilitleyerek sanallaştırmayı devre dışı bırakma gücüne sahiptir. Sanallaştırma özelliği bu şekilde devre dışı bırakıldığında, CPU, isteğe bağlı komut uzantısının eksik olduğunu (ve kullanılıyorsa aslında hata verdiğini) bildirir ve böylece yazılım donanım sanallaştırmasını kullanamaz.


2
Bu soruya çok iyi bir eklenti. Çoğu insan, ayarın değiştirilmesi için sıfırlama gerektirdiğini bilmiyor; bu nedenle işletim sistemi çalışırken "anında" etkinleştirilemiyor.
Tonny

OHH bu şekilde çalışır! Googled ve cevabını buldum (bu benim kişisel kavramlarım için beni ilgilendiren şey)
Paul Stelian
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.