Sanal makineler (VM), ek donanım olmaksızın aynı cihazda farklı işletim sistemlerini veya uygulamaları çalıştırmayı sağlar.
VM'ler, yeni yazılımları güvenli bir şekilde test etmek, farklı sistemleri denemek veya potansiyel olarak riskli programları izole etmek için idealdir.
VM'ler, Ethereum sanal makinesi (EVM) gibi, akıllı sözleşmelerin ve merkeziyetsiz uygulamaların (DApps) küresel bir bilgisayar ağı üzerinde güvenilir bir şekilde çalışmasını sağlar.
VM'ler esneklik ve kontrol sağlasa da, performans, kaynak kullanımı ve karmaşıklık açısından bazı ödünler gerektirebilir.
Giriş
MacBook'unuzda Windows'u çalıştırmayı ya da başka bir işletim sistemine geçmeden veya ikinci bir bilgisayar satın almadan Linux uygulamasını test etmeyi hiç ister miydiniz? Sanal makineler, farklı işletim sistemlerinin ve uygulamalarının güvenli bir şekilde çalışabileceği izole bir ortam oluşturarak bunu mümkün kılar. Ayrıca, akıllı sözleşmeleri ve merkeziyetsiz uygulamaları yönetmek için blockchain ağlarında da yaygın olarak kullanılmaktadır (DApps).
Sanal makine nedir?
Sanal bir makine, birkaç tıklama ile yapılandırabileceğiniz ve ek donanım gerektirmeyen bir bilgisayara benzer. Bir işletim sistemi kurabilir, dosyalar depolayabilir, uygulamalar çalıştırabilir ve internete bağlanabilirsiniz, ancak bunu mevcut bilgisayarınızın içinde, ana bilgisayar olarak adlandırılan bir ortamda çalıştırırsınız.
Ana sisteminiz, sanal makinenin sorunsuz çalışabilmesi için bellek, hesaplama gücü ve depolamayı paylaşarak arka planda çoğu işi yapar. Bu sistem, yalnızca başka bir işletim sisteminde mevcut olan bir yazılım kullanmanız gerekiyorsa özellikle faydalıdır.
Sanal makinelerin çalışma prensibi
Arka planda tüm süreci yöneten bir yazılım olan hipervizör, bilgisayarınızdaki fiziksel kaynakları, örneğin işlemci (CPU), rastgele erişim belleği (RAM) ve depolama alanını alır ve bunları birden fazla sanal makinenin aynı anda kullanabilmesi için paylaşır.
İki ana tür hiper yönetici vardır:
Tip 1 (yerel) : doğrudan donanım üzerinde kurulu olup genellikle veri merkezlerinde veya bulut platformlarında kullanılırlar. Performans ve verimlilik için tasarlanmışlardır.
Tip 2 (barındırılan) : bu sanal makineler, normal işletim sisteminizde (uygulamalar) gibi çalışır ve testler ile geliştirme için uygundur.
Sanal makine yapılandırıldıktan sonra, onu gerçek bir bilgisayar gibi başlatabilir ve yazılımlar kurabilir, internette gezinebilir veya uygulamalar geliştirebilirsiniz.
Neden sanal makine kullanmalıyız?
1. Yeni işletim sistemlerini test etmek için
Sanal bir makine sayesinde, ana bilgisayarınıza herhangi bir değişiklik yapmadan farklı işletim sistemlerini test edebilirsiniz. Bu, yeni bir sistemi güvenli ve ayrı bir ortamda denemek gibidir.
2. Riskli yazılımları izole etmek için
Açık olduğundan emin olmadığınız bir dosyayı açmanız mı gerekiyor yoksa bilinmeyen bir uygulamayı mı test etmek istiyorsunuz? Bir sanal makinede çalıştırmak bilgisayarınızı korur, böylece kötü amaçlı yazılım veya sistem arızası ile karşılaşırsanız ana bilgisayarınız etkilenmez.
3. Eski veya mevcut olmayan yazılımları çalıştırmak için
Bazı programlar yalnızca Windows XP gibi daha eski sistemlerde çalışır. Bir sanal makine bu ortamı yeniden oluşturabilir, bu da modern cihazlarda çalışmayabilecek yazılımları kullanmaya devam etmenizi sağlar.
4. Farklı platformlarda kod geliştirmek ve test etmek için
Sanal makineler, geliştiricilerin kodlarını farklı işletim sistemlerinde daha kolay test etmelerini ve yeni uygulamaların çeşitli ortamlardaki işleyişini simüle etmelerini sağlar.
5. Bulutu beslemek için
Birçok bulut hizmeti (, AWS, Azure ve Google Cloud) gibi sanal makineler üzerine inşa edilmiştir. Bir bulut örneği başlattığınızda, uzak bir veri merkezinde web siteleri, uygulamalar veya veritabanları barındırmaya hazır bir sanal makine başlatmış oluyorsunuz.
Blockchain ağları sanal makineleri nasıl kullanır?
Geleneksel sanal makineler izole ortamlardır, blockchain sanal makineleri ise blockchain üzerinde akıllı sözleşmeleri yürüten bir motor gibi çalışır. Ethereum sanal makinesi (EVM), geliştiricilerin Solidity, Vyper ve Yul gibi dillerde akıllı sözleşmeler yazmasına ve bunları Ethereum ve diğer EVM uyumlu ağlara dağıtmasına olanak tanır. EVM, ağın her düğümünün akıllı sözleşmeler oluştururken veya etkileşimde bulunurken aynı kuralları uygulamasını garanti eder.
Blockchain ağları, tasarım hedeflerine bağlı olarak kendi sanal makine türlerini uygular. Bazıları hız ve ölçeklenebilirliğe odaklanırken, diğerleri daha güvenli veya geliştiriciler için daha esnek olmayı amaçlar. Near ve Cosmos gibi ağlar, birden fazla programlama dilinde yazılmış akıllı sözleşmeleri destekleyen WebAssembly (WASM) tabanlı sanal makineleri kullanır.
Diğer blockchain ağları, Sui gibi, Move dilinde yazılmış akıllı sözleşmeleri yürüten MoveVM'i kullanır. Solana blockchain'i, genellikle Solana sanal makinesi (SVS) olarak adlandırılan özel bir yürütme ortamı kullanır ve bu ortam, işlemleri paralel olarak işlemek ve yüksek bir ağ aktivitesini yönetmek için tasarlanmıştır.
Sanal makineler eylemde
Belki de fark etmiyorsunuz, ama sanal makineler her defasında merkeziyetsiz uygulamalarla etkileşimde bulunduğunuzda arka planda çalışıyor (DApps).
Eğer Uniswap gibi bir merkeziyetsiz finans uygulaması (DeFi) kullanıyorsanız, işlemleriniz EVM'de yürütülen akıllı sözleşmelerle yönetilmektedir.
Bir NFT oluşturduğunuzda, sanal makine, her NFT'nin kime ait olduğunu belirleyen kodu çalıştırır. Bir satın alma veya transfer yaptığınızda, sanal makine kayıtları güncelleyerek NFT'nin mülkiyetinin doğru kalmasını sağlar.
Eğer bir katman 2 rollup (layer 2) kullanıyorsanız, işlemleriniz özel bir sanal makine tarafından işlenebilir, örneğin zkEVM. zkEVM'ler, zk-rollup'ların sıfır bilgi kanıtı teknolojisini kullanarak akıllı sözleşmeler çalıştırmasına olanak tanır (ZKP).
Sanal Makinaların Sınırları
1. Performans aşırı yükü: sanal makineler, donanım ile yürütülen kod arasında ek bir adım ekler, bu da süreçleri yavaşlatabilir veya uygulamaların doğrudan fiziksel bir makinede çalıştırılmasına kıyasla daha fazla hesaplama kaynağı gerektirebilir.
2. Operasyonel karmaşıklık: sanal makinelerin bakımı ( özellikle bulut altyapısında veya blockchain ağlarında ) önemli ölçüde yapılandırma ve güncellemeler açısından önemli çabalar gerektirir. Bu zaman alır ve genellikle özel araçlar ve bilgiler gerektirir.
3. Uyumluluk: Akıllı sözleşmeler genellikle belirli bir sanal makine ortamı için tasarlanır. Ethereum akıllı sözleşmeleri için yazılan kod, Solana gibi uyumsuz diğer blok zincirlerinde çalışabilmesi için yeniden yazılmalı veya uyarlanmalıdır. Bu, geliştiricilerin aynı uygulamayı birden fazla ortamda çalıştırmak istiyorlarsa daha fazla zaman ve çaba harcamaları gerektiği anlamına gelir.
Sonuç
Sanal makineler, klasik bilgisayarların ve blockchain sistemlerinin işleyişinde kritik bir rol oynar. Farklı işletim sistemlerini çalıştırmayı, yazılımları güvenli bir şekilde test etmeyi ve aynı donanımı çeşitli görevler için kullanmayı sağlar.
Sanal makineler, akıllı sözleşmeleri ve merkeziyetsiz uygulamaları çalıştırmak için blockchain ağlarında da kullanılmaktadır. Uzman olmasanız bile, sanal makinelerin nasıl çalıştığını anlamak, kullandığımız birçok DeFi aracı ve platformunun mekanizmalarını aydınlatabilir.
View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
Sanal makine (VM) nedir?
Unutulması Gereken Anahtar Noktalar
Sanal makineler (VM), ek donanım olmaksızın aynı cihazda farklı işletim sistemlerini veya uygulamaları çalıştırmayı sağlar.
VM'ler, yeni yazılımları güvenli bir şekilde test etmek, farklı sistemleri denemek veya potansiyel olarak riskli programları izole etmek için idealdir.
VM'ler, Ethereum sanal makinesi (EVM) gibi, akıllı sözleşmelerin ve merkeziyetsiz uygulamaların (DApps) küresel bir bilgisayar ağı üzerinde güvenilir bir şekilde çalışmasını sağlar.
VM'ler esneklik ve kontrol sağlasa da, performans, kaynak kullanımı ve karmaşıklık açısından bazı ödünler gerektirebilir.
Giriş
MacBook'unuzda Windows'u çalıştırmayı ya da başka bir işletim sistemine geçmeden veya ikinci bir bilgisayar satın almadan Linux uygulamasını test etmeyi hiç ister miydiniz? Sanal makineler, farklı işletim sistemlerinin ve uygulamalarının güvenli bir şekilde çalışabileceği izole bir ortam oluşturarak bunu mümkün kılar. Ayrıca, akıllı sözleşmeleri ve merkeziyetsiz uygulamaları yönetmek için blockchain ağlarında da yaygın olarak kullanılmaktadır (DApps).
Sanal makine nedir?
Sanal bir makine, birkaç tıklama ile yapılandırabileceğiniz ve ek donanım gerektirmeyen bir bilgisayara benzer. Bir işletim sistemi kurabilir, dosyalar depolayabilir, uygulamalar çalıştırabilir ve internete bağlanabilirsiniz, ancak bunu mevcut bilgisayarınızın içinde, ana bilgisayar olarak adlandırılan bir ortamda çalıştırırsınız.
Ana sisteminiz, sanal makinenin sorunsuz çalışabilmesi için bellek, hesaplama gücü ve depolamayı paylaşarak arka planda çoğu işi yapar. Bu sistem, yalnızca başka bir işletim sisteminde mevcut olan bir yazılım kullanmanız gerekiyorsa özellikle faydalıdır.
Sanal makinelerin çalışma prensibi
Arka planda tüm süreci yöneten bir yazılım olan hipervizör, bilgisayarınızdaki fiziksel kaynakları, örneğin işlemci (CPU), rastgele erişim belleği (RAM) ve depolama alanını alır ve bunları birden fazla sanal makinenin aynı anda kullanabilmesi için paylaşır.
İki ana tür hiper yönetici vardır:
Tip 1 (yerel) : doğrudan donanım üzerinde kurulu olup genellikle veri merkezlerinde veya bulut platformlarında kullanılırlar. Performans ve verimlilik için tasarlanmışlardır.
Tip 2 (barındırılan) : bu sanal makineler, normal işletim sisteminizde (uygulamalar) gibi çalışır ve testler ile geliştirme için uygundur.
Sanal makine yapılandırıldıktan sonra, onu gerçek bir bilgisayar gibi başlatabilir ve yazılımlar kurabilir, internette gezinebilir veya uygulamalar geliştirebilirsiniz.
Neden sanal makine kullanmalıyız?
1. Yeni işletim sistemlerini test etmek için
Sanal bir makine sayesinde, ana bilgisayarınıza herhangi bir değişiklik yapmadan farklı işletim sistemlerini test edebilirsiniz. Bu, yeni bir sistemi güvenli ve ayrı bir ortamda denemek gibidir.
2. Riskli yazılımları izole etmek için
Açık olduğundan emin olmadığınız bir dosyayı açmanız mı gerekiyor yoksa bilinmeyen bir uygulamayı mı test etmek istiyorsunuz? Bir sanal makinede çalıştırmak bilgisayarınızı korur, böylece kötü amaçlı yazılım veya sistem arızası ile karşılaşırsanız ana bilgisayarınız etkilenmez.
3. Eski veya mevcut olmayan yazılımları çalıştırmak için
Bazı programlar yalnızca Windows XP gibi daha eski sistemlerde çalışır. Bir sanal makine bu ortamı yeniden oluşturabilir, bu da modern cihazlarda çalışmayabilecek yazılımları kullanmaya devam etmenizi sağlar.
4. Farklı platformlarda kod geliştirmek ve test etmek için
Sanal makineler, geliştiricilerin kodlarını farklı işletim sistemlerinde daha kolay test etmelerini ve yeni uygulamaların çeşitli ortamlardaki işleyişini simüle etmelerini sağlar.
5. Bulutu beslemek için
Birçok bulut hizmeti (, AWS, Azure ve Google Cloud) gibi sanal makineler üzerine inşa edilmiştir. Bir bulut örneği başlattığınızda, uzak bir veri merkezinde web siteleri, uygulamalar veya veritabanları barındırmaya hazır bir sanal makine başlatmış oluyorsunuz.
Blockchain ağları sanal makineleri nasıl kullanır?
Geleneksel sanal makineler izole ortamlardır, blockchain sanal makineleri ise blockchain üzerinde akıllı sözleşmeleri yürüten bir motor gibi çalışır. Ethereum sanal makinesi (EVM), geliştiricilerin Solidity, Vyper ve Yul gibi dillerde akıllı sözleşmeler yazmasına ve bunları Ethereum ve diğer EVM uyumlu ağlara dağıtmasına olanak tanır. EVM, ağın her düğümünün akıllı sözleşmeler oluştururken veya etkileşimde bulunurken aynı kuralları uygulamasını garanti eder.
Blockchain ağları, tasarım hedeflerine bağlı olarak kendi sanal makine türlerini uygular. Bazıları hız ve ölçeklenebilirliğe odaklanırken, diğerleri daha güvenli veya geliştiriciler için daha esnek olmayı amaçlar. Near ve Cosmos gibi ağlar, birden fazla programlama dilinde yazılmış akıllı sözleşmeleri destekleyen WebAssembly (WASM) tabanlı sanal makineleri kullanır.
Diğer blockchain ağları, Sui gibi, Move dilinde yazılmış akıllı sözleşmeleri yürüten MoveVM'i kullanır. Solana blockchain'i, genellikle Solana sanal makinesi (SVS) olarak adlandırılan özel bir yürütme ortamı kullanır ve bu ortam, işlemleri paralel olarak işlemek ve yüksek bir ağ aktivitesini yönetmek için tasarlanmıştır.
Sanal makineler eylemde
Belki de fark etmiyorsunuz, ama sanal makineler her defasında merkeziyetsiz uygulamalarla etkileşimde bulunduğunuzda arka planda çalışıyor (DApps).
Eğer Uniswap gibi bir merkeziyetsiz finans uygulaması (DeFi) kullanıyorsanız, işlemleriniz EVM'de yürütülen akıllı sözleşmelerle yönetilmektedir.
Bir NFT oluşturduğunuzda, sanal makine, her NFT'nin kime ait olduğunu belirleyen kodu çalıştırır. Bir satın alma veya transfer yaptığınızda, sanal makine kayıtları güncelleyerek NFT'nin mülkiyetinin doğru kalmasını sağlar.
Eğer bir katman 2 rollup (layer 2) kullanıyorsanız, işlemleriniz özel bir sanal makine tarafından işlenebilir, örneğin zkEVM. zkEVM'ler, zk-rollup'ların sıfır bilgi kanıtı teknolojisini kullanarak akıllı sözleşmeler çalıştırmasına olanak tanır (ZKP).
Sanal Makinaların Sınırları
1. Performans aşırı yükü: sanal makineler, donanım ile yürütülen kod arasında ek bir adım ekler, bu da süreçleri yavaşlatabilir veya uygulamaların doğrudan fiziksel bir makinede çalıştırılmasına kıyasla daha fazla hesaplama kaynağı gerektirebilir.
2. Operasyonel karmaşıklık: sanal makinelerin bakımı ( özellikle bulut altyapısında veya blockchain ağlarında ) önemli ölçüde yapılandırma ve güncellemeler açısından önemli çabalar gerektirir. Bu zaman alır ve genellikle özel araçlar ve bilgiler gerektirir.
3. Uyumluluk: Akıllı sözleşmeler genellikle belirli bir sanal makine ortamı için tasarlanır. Ethereum akıllı sözleşmeleri için yazılan kod, Solana gibi uyumsuz diğer blok zincirlerinde çalışabilmesi için yeniden yazılmalı veya uyarlanmalıdır. Bu, geliştiricilerin aynı uygulamayı birden fazla ortamda çalıştırmak istiyorlarsa daha fazla zaman ve çaba harcamaları gerektiği anlamına gelir.
Sonuç
Sanal makineler, klasik bilgisayarların ve blockchain sistemlerinin işleyişinde kritik bir rol oynar. Farklı işletim sistemlerini çalıştırmayı, yazılımları güvenli bir şekilde test etmeyi ve aynı donanımı çeşitli görevler için kullanmayı sağlar.
Sanal makineler, akıllı sözleşmeleri ve merkeziyetsiz uygulamaları çalıştırmak için blockchain ağlarında da kullanılmaktadır. Uzman olmasanız bile, sanal makinelerin nasıl çalıştığını anlamak, kullandığımız birçok DeFi aracı ve platformunun mekanizmalarını aydınlatabilir.