Anladığım kadarıyla bir sanal makine, "sistem sanal makinesi" veya "işlem sanal makinesi" olmak üzere iki kategoriye ayrılır. BEAM'ın yalan söylediğine göre biraz bulanık. Farkında olmadığım başka bir sanal makine var mı?
Anladığım kadarıyla bir sanal makine, "sistem sanal makinesi" veya "işlem sanal makinesi" olmak üzere iki kategoriye ayrılır. BEAM'ın yalan söylediğine göre biraz bulanık. Farkında olmadığım başka bir sanal makine var mı?
Erlang VM bir OS süreci olarak çalışır. Varsayılan olarak, makinenin maksimum kullanımını sağlamak için çekirdek başına bir işletim sistemi iş parçacığı çalıştırır. VM başlatıldığında, iş parçacığı sayısı ve hangi çekirdeklerin çalıştıkları ayarlanabilir.
Erlang süreçleri uygulanmaktadır Baştan sona Erlang VM tarafından ve OS süreçleri veya işletim sistemi iş parçacığı ile hiçbir bağlantısı yoktur. Yani, bir milyondan fazla işlemden oluşan bir Erlang sistemi çalıştırıyor olsanız bile, hala yalnızca bir işletim sistemi ve çekirdek başına bir iş parçacığıdır. Yani bu anlamda Erlang VM bir "süreç sanal makinesi" iken Erlang sistemi bir işletim sistemi gibi davranıyor ve Erlang süreçleri, örneğin, izolasyon gibi OS süreçlerine çok benzer özelliklere sahip. Aslında çıplak metal üzerinde çalışan ve aslında kendi başına bir işletim sistemi olan BEAM'e dayanan bir Erlang VM'si var. Xen üzerinde Erlang.
Bu arada, milyonlarca Erlang sürecini çalıştıran sistemlere sahip olmak gerçekten mümkündür ve örneğin bazı ürünlerde yapılır. Naber.
Temel Erlang ortamını tasarladığımızda OS'ler hakkında kesinlikle çok düşündük.
Sanal makine bir bilgisayar sistemidir. Bir bilgisayar sisteminin nihai hedefi programlanmış mantığı yürütmektir. Bu açıdan, sanal makineler kategorize edilebilir. 4 çeşit soyutlama seviyesine ve emülasyonun kapsamına göre:
Tip 1: Tam Eğitim Seti Mimarisi (ISA) sanal makinesi Tam bir bilgisayar sistemi ISA öykünmesi veya sanallaştırma sağlar. Konuk işletim sistemleri ve uygulamaları, sanal makinenin üstünde gerçek bir bilgisayar olarak çalışabilir (ör.VirtualBox QEMU, XEN).
Tip 2: Uygulama İkili Arabirim (ABI) sanal makinesi Konuk süreci ABI öykünmesi sağlar. ABI'ya karşı yapılan uygulamalar, süreçte diğer ABI uygulamalarının diğer işlemleriyle birlikte çalışabilir (ör.Intel'in IA-32 Yürütme Katmanı Itanium, Transmeta'nın Kodu X86 öykünmesi için Morphing, PowerPC öykünmesi için Apple'ın Rosetta çeviri katmanı).
Tip 3: Sanal ISA sanal makinesi sanal ISA'da kodlanmış uygulamaların üzerinde çalışabilmesi için bir çalışma zamanı motoru sağlar. Sanal ISA genellikle yüksek düzeyde ve sınırlı bir ISA semantiği kapsamını tanımlar, bu nedenle sanal makinenin tam bir bilgisayar sistemini taklit etmesini gerektirmez (ör.Sun Microsystem'in JVM'si, Microsoft'un Ortak Dil Çalışma Zamanı, Parrot Vakfı'nın Parrot sanal makinesi).
Tip 4: Dil Sanal Makinesi Konuk dilde ifade edilen programları yürüten bir çalışma zamanı motoru sağlar. Programlar genellikle, önceden makine koduna derlenmeden, konuk dilinin kaynak biçimindeki sanal makineye sunulur. Çalışma zamanı altyapısı programı yorumlamalı veya çevirmeli ve ayrıca bellek yönetimi gibi bir dil tarafından soyutlanan belirli işlevleri yerine getirmelidir (ör. Basic, Lisp, Tcl, Ruby için çalışma zamanı motorları).
Sanal makine türleri arasındaki sınırlar net değil. Örneğin, bir dil sanal makinesi, programı sanal ISA sanal makinesinin tekniğini bir tür sanal ISA'ya derleyerek ve daha sonra bu sanal ISA'nın sanal makinesinde kod çalıştırarak çalıştırabilir.
Gibi birçok VM tasarımları LEVENTsınırları aşarak. 3. ve 4. kategorilere uygun olabilirler.
kaynak:
Okuduğumu sanıyorum http://en.wikipedia.org/wiki/Virtual_machine - bu terminolojide, BEAM, JVM gibi bir "süreç sanal makinesi" dir.