Rust'ta Xen Hipervizörünü yeniden işlemek için girişim başlatıldı

Xen

Xen, güvenli izolasyon, kaynak kontrolü, hizmet kalitesi garantileri ve sanal makine geçişi sağlayan bir hipervizördür.

Jardines de Viveros XCP-ng platformu geliştiricileri, Xen projesinin kanatları altında geliştirilen, için bir Rust yedeği oluşturmak için bir plan yayınladılar. yazılım yığınının çeşitli bileşenleri Xen.

Xen hipervizörünün kendisi henüz işlenmemiştir ve çalışma esas olarak araç setinin ayrı bileşenlerini yeniden işlemeye odaklanmıştır.

Platform şu anda C, Python, OCaml ve Go'daki bileşenleri kullanıyor. bazıları eski ve bakım sorunlarına neden oluyor. gözlemleniyor ki Rust kullanmak genel bir artışa yol açmaz ilk etapta değiştirilmesi planlanan Go'da yalnızca bir bileşen uygulandığı için dahil olan dil sayısında.

Açıkçası, ilk denememiz olarak Xen hipervizörünü ve Rust'taki her şeyi yeniden yazmamızı beklemeyin. Aslında buradaki amacımız, dili "büyütmemize" ve tüm platform için her şeyi blok blok nasıl değiştireceğimizi düşünmemize izin vererek, etrafındaki daha küçük bileşenlerin bazılarını değiştirmeye başlamaktır.

Rust, yüksek kod performansını birleştiren bir dil olarak seçilmiştir. Güvenli bellek yetenekleri ile sonuçlanır, çöp toplayıcı kullanımını gerektirmez, düşük seviyeli ve yüksek seviyeli bileşenler geliştirmeye uygundur, değişken borçlu (borrow checker) gibi olası hataları azaltmak için ek özellikler sağlar. Rust ayrıca mevcut XAPI dili OCaml'den daha yaygındır ve bu da yeni geliştiricileri projeye çekmeyi kolaylaştıracaktır.

İlk aşamada, çeşitli bileşenler için yedeklerin geliştirilmesi planlanmaktadır csüreçleri çözmek ve yazılım yığınının diğer parçalarını değiştirmek için temel hazırlamak amacıyla. Özellikle Linux konuk araçları, şu anda Go dilinin kullanıldığı Rust'ta yeniden yazılacak ve metriklerin toplanması için arka plan işlemi OCaml'de yazılacaktır.

Rust güvenli ve hızlı olduğuna göre başka neye ihtiyacımız var? Ayrıca çeşitli seviyelerde (yığın altı ve üstü) çalışabilen bir programlama diline ihtiyacımız var. XCP-ng'de sahip olabileceğimiz bu kadar düşük seviyeli şeylerle başa çıkmak için Go veya Python'a ve benzer şekilde daha yüksek seviyeli şeyler yapmak için C'ye güvenmezdim. Rust kullanımı, her yerde XCP-ng yığınında'.

Ayrıca, Rust artık "niş" bir dil değildir. Örneğin, harika olsa bile, OCaml (XAPI'de kullanılır) iyi bilinmiyor, bu da bu dilde deneyimli kişileri kolayca işe alma şansımızı azaltıyor. Bu aynı zamanda bir açık kaynak topluluğunun katkıda bulunanları kazanma yeteneğini de azaltır. Rust'ın buna bir engel olmayacağını düşünüyoruz (hem işe alma hem de katkılar), hatta muhtemelen tam tersi: "aranan" bir teknoloji olduğu için daha fazla insanı çekmek için bir itici güç.

Yeniden tasarlama ihtiyacı araçları linux konuk araçları (xe-misafir-yardımcı programlar) Xen Projesi dışındaki geliştirme ve kod kalitesi sorunlarından kaynaklanmaktadır. geliştirme üzerinde paketleme ve topluluk etkisini zorlaştıran Cloud Software Group'un kontrolü altında. Araç setinin ( xen-guest-agent ) yeni bir varyantının tamamen sıfırdan oluşturulması, mümkün olduğunca basit tutulması ve aracı mantığını kitaplıklardan ayırması planlanmaktadır. Kompakt ve ayrı olduğundan, geliştirme sırasında yeni bir dil kullanmayı denemeyi kolaylaştırdığından, metrikleri toplamak için arka uç sürecini ( rrdd ) yeniden düzenlemeye karar verdik.

Gelecek yıl, geliştirme çalışmaları muhtemelen başlayacak Rust'taki xenopsd-ng bileşeninin, yazılım yığınının mimarisini optimize etmemizi sağlayacak. Ana fikir, düşük seviyeli bir API ile çalışmayı tek bir bileşende yoğunlaştırmak ve tüm yüksek seviyeli API'lerin bunun aracılığıyla yığının geri kalanına sağlanmasını organize etmektir.

Son olarak, bu konuda daha fazla bilgi edinmek istiyorsanız, ayrıntılara başvurabilirsiniz. Aşağıdaki bağlantıda.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: AB Internet Networks 2008 SL
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.