Sanal bir makine kullanarak bir linux modülü geliştirmek / test etmek güvenli midir?


18

Bir işletim sistemleri sınıfındayım. Yakında, çekirdek kodunu değiştirmek için biraz iş yapmak zorundayız. Kötü kod yazabilmemiz ve yapmamamız gereken bir yere yazabileceğimiz için test etmek için kişisel makineleri kullanmamamız tavsiye edildi (sanırım bunu yüklemek anlamına gelir). Güvenli olmak için laboratuvardaki bir makineye erişimimiz var.

Bir VM kullanarak test yapsaydım, bu, ana bilgisayar sistemini potansiyel olarak güvenli olmayan kodlardan korur mu? Gerçekten okuldaki bir sisteme takılmak istemiyorum ve enstantaneler faydalı olacak.

Hala yüksek riskli ise, güvenli bir şekilde test etmek için nelere dikkat etmeliyim?

Başlamak için linuxmint gibi bir şey kullanacağız. Birisi mevcut projede ne olacağını görmek istiyorsa: http://www.cs.fsu.edu/~cop4610t/assignments/project2/writeup/specification.pdf


Dürüst olmak gerekirse, özellikle yedeklemeler alırsanız, gerçek donanımda bunu yapmak çok fazla risk değildir. Ben de var ve eminim ki diğer birçok geliştirici de var.
Ocaklar

@hobbs Çünkü çoğumuz tehlikeli bir şekilde yaşamayı seviyoruz, genellikle pişman olacak kadar uzun. Oldukça küçük modüller üzerinde çalışan dikkatli bir geliştiriciyseniz, gerçek makinenizde çalışmak iyidir. Daha büyük gelişmeler (veya dikkatsiz geliştiriciler) için , yalıtılmış bir ortamda çalışmak muhtemelen en iyisidir. Ayrıca, çekirdek düzeyinde özelleştirmenin modülünüze müdahale edemeyeceğinden emin olmak için "temiz dağıtım" üzerinde çalışmak iyi bir fikir olabilir. Çekirdek modülü geliştirmenin en küçük hatanın en korkunç sonuçlara yol açabileceğini unutmayın: D
John WH Smith

Yanıtlar:


28

Çekirdek modüllerini geliştiren temel riskler, sisteminizi normal koddan çok daha kolay bir şekilde kilitleyebilmenizdir ve muhtemelen bazen yüklenemeyen modüller oluşturduğunuzu göreceksiniz, bu da yeniden yüklemek için yeniden başlatmanız gerekeceği anlamına gelir. yanlış olanı düzelttikten sonra onları.

Evet, bir VM bu tür bir geliştirme için iyidir ve çekirdek modülleri üzerinde çalışırken kullandığım şey budur. VM, test ortamınızı çalışan sisteminizden güzel bir şekilde yalıtır.

Anlık görüntüleri alıp geri yükleyecekseniz , VM'nin geçerli durumunu attığınızda yanlışlıkla en son kodunuzu kaybetmemeniz için kaynak kodunuzu VM dışındaki bir sürüm kontrol havuzunda kontrol altında tutmalısınız .


3
Veya sanal makinenin yalnızca belirli yönlerini yakalamak mümkün olabilir. Örneğin, kaynak kodunu ayrı bir sanal diskte tutmak. Elbette, düzenli olarak kodu kontrol ettiğiniz VM dışı bir kaynak kodu deposu zaten iyi bir fikirdir; sizi birçok utanç verici hatadan kurtarabilir ve iyi kodlama pratiği öğretir.
CVn

Sisteminizi daha kolay kilitlemenin diğer tarafı, sisteminizi kilitlediğinizde, teminat bozulmasına neden olma şansınızın daha yüksek olmasıdır.
user253751

14

Gerçek donanım için bir sürücü yazmaya çalışmadığınızı varsayarsak, bu modüller üzerinde çalışmanın harika bir yoludur. Çalışma sisteminin anlık görüntüsünü alabilirsiniz ve bir şey havaya uçurursanız, anlık görüntüye geri dönün.

Mümkünse, anlık görüntü sisteminin düşündüğümden daha tuhaf olması durumunda VM'nin tam bir kopyasını alın. :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.