Virtual Machine (VM)

Orta Seviye

Türkçe karşılığı sanal makine olan “virtual machine” (VM), bir bilgisayar sistemini taklit eden bir programdır. Sanal bir CPU'su, belleği ve depolama alanı vardır ve dışarıdan bakıldığında normal bir bilgisayardan farklı görünmemektedir.


Virtual Machine Nasıl Çalışır?

Sanal makinenin bir işletim sistemi, dosyaları ve uygulamaları vardır. Tıpkı fiziksel bir bilgisayar gibi çalışır; web sitelerini barındırabilir, programları çalıştırabilir ve diğer sistemlerle bir ağ üzerinden iletişime geçebilir. Bir bilgisayar monitöründen bakıldığında sanal makineler herhangi bir uygulama penceresi gibi görünür.


Sanal makineler aynı zamanda bir CPU, bellek ve depolama alanına sahiptir ancak bunlar fiziksel değil, simüle edilmiştir. Bu nedenle, birden çok sanal makine tek bir sunucuda bir arada bulunabilir.  Bu durumda, sunucu, sanal makineleri yönetmek için hiper yönetici adı verilen bir yazılım parçası kullanır. Hiper yöneticiler, sanal makinenin sanal donanımını sunucudaki fiziksel bileşenlerle eşlerler. Bu tarz sistemlerin internet kafelerde sıklıkla kullandığını görebilirsiniz.


Bu durumda, bir fiziksel sunucunun üzerinde çalışan iki, üç, dört veya hatta on sanal makinesi olabilir ancak sayı, sunucunun kaynaklarıyla sınırlıdır. Çok fazla VM, performansın düşmesine neden olabilir.


VM’ler Neden Kullanılır?

Sanal makineler, kodun sistemin geri kalanından ayrı olarak çalıştırılabildiği sanal alan parçalarıdır. Bu, VM'leri yeni yazılımları test etmek veya kötü amaçlı olabilecek kodu çalıştırmak için ideal hale getirir.


Virtual machine, bir kullanıcının bilgisayarların işletim sisteminde çalışmayan bir yazılımı çalıştırmasını sağlamak için farklı veya daha eski bir işletim sistemi çalıştırabilir. Örneğin, bir kişi bir Linux cihazında bir Windows yazılımı çalıştırmak için bir VM kullanabilir. Bunu yapmak için bir Windows ISO’sunu sanal bir makine uygulaması ile kurmak gereklidir. Daha sonra normal bir Windows kullanır gibi kullanıcı işlemlerini yerine getirebilir.


Örnek: Ethereum Sanal Makinesi (EVM)

Ethereum, özel talimatlar kullanarak görevleri yürütür. Bunlara opcode denir. Her işlem kodunun boyutu 1 bayttır ve bayt koduna kodlanmıştır. Belirli bir görevi yürüttüğünüzde baytlarına bölünür. 140 işlem kodu kümesi nedeniyle, Ethereum sanal makinesi Turing Complete’dir. Bu, herhangi bir hesaplama problemini çözebilmesi gerektiği anlamına gelir. Üzerinde çalışan kodun bilgisayarınızdaki diğer işlemlere erişimi yoktur, bu da EVM'yi izole eder.

 

Ethereum sanal makinesi veya kısaca EVM, blok zinciri tabanlı bir yazılım platformudur. Geliştiricilerin merkezi olmayan uygulamalar (Dapps) oluşturmasına olanak tanır. Programcılar, kesinti süreleri olmaması ve oluşturulan tüm nesnelerin değiştirilmesini önlemek için onlara değer verir.


Ethereum ağındaki nodeların tümü, akıllı sözleşmeleri yürütmek için kullanılan Ethereum Sanal Makinesi'ni (EVM) çalıştırır. Bu durum, ayrı bir sanal alanda gerçekleştiği için, Ethereum platformu için önemli güvenlik avantajları sağlar ve onu DDoS'a (birçok hacker’ın başvurabileceği bir strateji olan Dağıtılmış Hizmet Reddi saldırılarına) karşı bağışık hale getirir.


EVM'yi kullanmak için kapsamlı bir kodlama geçmişine ihtiyaç yoktur. Ayrıca, güçlü donanım ihtiyacını ortadan kaldırarak platformu yeni başlayanlar için mükemmel hale getirir. EVM, Ethereum istemcisi çalıştıran binlerce bağlı bilgisayar tarafından sürdürülen tek bir varlık olarak var olur.

 

Ethereum protokolünün kendisi, yalnızca bu özel durum makinesinin sürekli, kesintisiz ve değişmez çalışmasını sağlamak amacıyla mevcuttur. Tüm Ethereum hesaplarının ve akıllı sözleşmelerin yaşadığı ortamdır. Zincirdeki herhangi bir blokta, Ethereum'un yalnızca bir "kanonik" durumu vardır ve EVM, bloktan bloğa yeni bir geçerli durum hesaplama kurallarını tanımlayan şeydir.

 

Ethereum Sanal Makinesi Ana İpuçları

  • Ethereum'un harici ve sözleşme hesapları vardır. Birinden bir işlemle, bir diğerine Ether veya ikili veri gönderebilirsiniz.
  • Gaz kullanmak, EVM'yi sistemi yavaşlatabilecek potansiyel saldırılardan korur.
  • Türüne bağlı olarak, Ethereum verileri depolamada, bellekte veya yığında saklanır.
  • EVM hesaplarını devre dışı bırakabilir veya kendi kendini yok eden Solidity işlemini kullanarak bunları kaldırabilirsiniz.