Sanallaştırma (Bilişim)
Bilişimde Sanallaştırmanın kesin bir tanımı yoktur. Sanallaştırma (virtualization) genel itibari ile bilgisayar kaynaklarının (resource) kullanıcılardan soyutlanması (abstraction) anlamına gelir. Bunu yapmak için kullanılan metodlar bilgisayar kaynaklarının paylaştırılmasını veya birleştirilmesini sağlar. Sanallaştırmanın ilk hedefi kullanıcıya bir soyutlama tabakası sunarak kullanıcıyı kaynaklardan soyutlamak. Böylece kullanıcı ve kaynaklar arasına bir mantıki katman eklenmiş oluyor.
Yazılım bazlı Sanallaştırma
Yazılım bazlı Sanallaştırma farklı kullanım alanları için kullanılabilir. Mesela bir işletim sistemini (İS) veya bir kullanıcı yazılımını taklit (simulation) etmek için.
Sanal İşletim Sistem Ortamları
İS Konteynerleri ile İS Sanallaştırması
Bu sanallaştırma türünde bir yazılıma kendisine ait bir kapalı bir konteyner ('jail') içinde eksiksiz (sanal) bir çalıştırma ortamı (ingilizce runtime environment) oluşturulur. Bu işlemde ayriyetten bir İşletim Sistemi daha çalıştırılmaz ve bundan dolayı da ev sahibi (host) işletim sistemi haricinde bir işletim sistemi de çalıştırmak mümkün değildir. İşletim sistemi konteynerleri ev sahibi işletim sistemlerinin bir altkümesidirler. Bu yaklaşımın artısı misafir sistemin ev sahibi ile iyi bütünleşmesidir. Eksisi de konteynerlerin kendisidir, yani bu konteynerlerden bir sürücü veya çekirdek modülü yüklemek mümkün değildir. İşletim sistemi konteyner misalleri: Solaris/OpenSolaris de non-global Zones, Zoning, BSD jails, Mac-on-Linux, OpenVZ, Virtuozzo, Linux-VServer ve User Mode Linux
VMM veya Hypervisor ile Sistem Sanallaştırması
Virtual Machine Monitor (VMM) veya Hypervisor ile yapılan sanallaştırmada mevcut olan yerel (yani fiziki olarak mevcut donanım) kaynaklar akıllıca dağıtılır. Bu dağılım farklı şekillerde geçekleştirilebilir ve aşağıdaki kategorilere ayrılır. Bu işlemde her bir misafir sistemine tüm donanım unsurlarına sahip (MİB, Sürücüler, RAM v.s.) komple bir bilgisayar yansıtılır. Bu yaklaşımın artısı misafir işletim sistemlerinde (neredeyse) hiçbir değişiklik yapılmasına gerek kalmadan her bir işletim sistemi kendi çekirdeği ve yazılımları ile birlikte çalışabilmesidir.
Donanım Emülasyonu (veya yanlış olarak Full Virtualization diye de adlandırılır )
Sanal makine tüm donanımı taklit ederek bir işletim sisteminin farklı bir MİB de çalıştirabilir. Tamamen yazılıma bağlı bu yaklaşımın en büyük eksisi yazılımla taklit edilen donanım gerek fiziki donanımdan çok daha yavaş olmasından dolayı gelen misafir işletim sisteminin genel itibari ile bir gerçek donanıma sahip bir işletim sisteminden çok daha yavaş çalışmasıdır. Misaller: Bochs, Microsoft Virtual PCnin PPC sürümü ve Linux KVM.
Donanım Sanallaştırması (native Virtualization, Full Virtualization)
Sanal makine misafir işletim sistemine fiziki donanımın sadece belirli kısımlarını sanal donanım olarak sunar. Bu yaklaşımla değiştirilmemiş misafir işletim sistemini soyutlanmış bir ortamda çalıştırmak mümkün oluyor. Bu uygulamada gereksinim olarak misafir işletim sistemi ev sahibinin MİB'sini desteklemesi gerekiyor. Mesela ev sahibi i386 işlemcisine sahip ise misafir de i386 işlemcisini desteklemesi gerekiyor. Misaller: Hyper-V, VMware, Microsoft Virtual PC, Linux KVM v.s.
Yazılım Sanallaştırması
Yazılım sanallaştırmasında (application virtualization) kullanıcı veya sunucu yazılımlarının yerel sistemde yüklenmeden çalıştırılmasıdır. Bunun için sanallaştırılan yazılıma bir sanal ortam oluşturlulmakta ve bu ortamda tüm Registry-kayıtları, dosyalar ve diğer birleşen unsurlar içermektedir. Bu sanal ortam yazılım ve işletim sistemi arasında bir tampon görevini yaparak başka yazılım veya işletim sisteminle çarpışmaları önler. Misaller: Microsoft Application Virtualization, Citrix Application Streaming, VMware ThinApp, Thinstall v.s.
Donanım bazlı Sanallaştırma
Bu sanallaştırma türünde donanımın tümü (mesela LPAR) veya bazı kısımları (mesela Merkezi işlem biriminde İntel-VT veya AMD-V) sanallaştırılabilir.