Bazı Visual Studio geliştirme yapan Linux programcısı için çift önyükleme veya sanal makine?


26

Senaryo:

  • Çoğunlukla Linux'ta (Python, MySQL, MongoDB vb.) Geliştirilen serbest bir yazılım geliştiricisiyim
  • İş bilgisayarım, i7 işlemcili Lenovo dizüstü bilgisayarı ve 8GB RAM. Büyük HD + 128 GB SSD. İşletim sistemi Ubuntu Linux'tur

Yakın gelecekte bazı .NET / C # projeleri alabilirim, bu nedenle aşağıdakilerle ilgili bazı rehberler arıyorum:

  • İkili önyükleme çözümüne mi gitmeli yoksa Windows işleri için sanal makineler mi kullanmalıyım?
  • İkili önyükleme yaparsam: Önerilen kurulum sırası nedir? Önce Windows mu yoksa ilk Linux mu? (Yine de en son LTS'yi almak için tam bir Ubuntu yeniden yüklemeye bakıyorum, böylece her şeyi yeni yüklemeye başlayabilirim)
  • VM'ye gidersem: VMWare Workstation ve VirtualBox performansı nasıl karşılaştırır?
  • Benim hayalimdeki kurulum muhtemelen şöyle olurdu:
    • Çift çizme
    • Ancak Linux'a önyükleme yaparsam, Windows bölümünü sanal bir makine olarak önyükleyebilirim. Mümkün mü?
    • Ve / veya: Windows’a ön yüklersem, Linux bölümünü sanal bir makine olarak önyükleyebilirim. Mümkün mü?

5
Grub'un Windows Bootloader zincirinin önyüklemesini değiştirmesini istediğinizden her zaman önce Windows ve Ubuntu'yu yapmanız gerekir. Bunun nasıl yapılacağı hakkında birkaç düzine soru var. Performans kararları kendiniz
vermeli

Visual studio, yoğun bir uygulamadır ve sanal ortamınızda yeterince iyi çalışabilir veya çalışmayabilir.
Frank Thomas

Yanıtlar:


12

Diğerleri sorunuzun geri kalanını da ele aldı, ancak görüyorum ki bu bölümü değinmeden bıraktılar:

Ancak Linux'a önyükleme yaparsam, Windows bölümünü sanal bir makine olarak önyükleyebilirim. Mümkün mü? Ve / veya: Windows’a ön yüklersem, Linux bölümünü sanal bir makine olarak önyükleyebilirim. Mümkün mü?

Kısa cevap evet.

Uzun cevap evet, ancak uyarıların ve sonuçların sayısı.

Bu ocak ayına kadar (yeni makineler aldığımız zaman), çalışma bilgisayarımı ya ikili önyüklemeye ya da Linux'u doğrudan Windows bölümüne erişen bir Windows 7 VM için bir ana bilgisayar olarak kullanmak üzere yapılandırmıştım. Windows'u bir doğrudan diskli Linux VM için bir ana bilgisayar olarak kullanmaktan hiç rahatsız olmadım, ancak bu da mümkün. Bilgisayarım eski BIOS / MBR kullandı, UEFI / GPT kullanıyorsanız bunun nasıl yapılacağından emin değilim.

Bunu yapmak için VirtualBox'ı seçtim, fakat anladığım kadarıyla VMWare ile de mümkün olmalı.

Performans benim amaçlarıma göre mükemmel bir şekilde kabul edilebilirdi; Windows 1 CPU çekirdeği, 2GB bellek, 1 monitör verdim ve ne kadar video belleği hatırlamıyorum. VM, Java GUI uygulamam ve birçok zengin içerikli web sitesiyle video oynatma ve çalışma yeteneğine sahipti.

Ayrıntılara girmeden önce garipliği tartışacağım:

  • Yerel önyükleme ve VM modu Windows 7 arasında geçiş yapmak, Windows'un Windows kopyamın orijinal olmadığı uyarısını tetikledi. Lisansınıza bağlı olarak, MS iki parça donanıma yükleyerek bu lisans ihlalini düşünebilir. Ayrıca kurulumumu "onarmam" gerekti çünkü düşük seviyeli sürücülerin birçoğu gerçek donanım ve VM "donanımı" için farklıydı.

  • Windows Update her çalıştırıldığında (veya başka bir büyük disk G / Ç işlemi), sabit diskim yük altında ezildi ve her iki makinedeki her şey yavaşladı. Her işletim sistemini kendi özel sabit diskine taşımak bu sorunu güzel bir şekilde çözdü; Bir katı hal sürücüsü kullanarak da sorunu çözebilirdi.

  • Bazı nedenlerden dolayı, Ubuntu ara sıra askıya alındıktan sonra uyanmaktan hoşlanmıyordu (zamanın% 20'si kadardı), bu da Windows VM'm için zor durumda kalmaya eşdeğerdi. Sonuç olarak, ana makineyi askıya almadan önce her akşam VM'yi kapatırdım.

  • Olası veri bozulmalarını / kayıplarını önlemek için Windows bölümünü asla Linux'ta bir araya getirme girişiminde bulunmama konusunda çok dikkatli olmam gerekiyordu. Bunu önlemek için hemen bir udev kuralı ekledim.

Tamam, eğer bu çok kötü gelmiyorsa, işte ayrıntılar: Bunu yapmak için bulduğum en yararlı referans bu blog: http://www.rajatarya.com/website/taming-windows-virtualbox-vm . İşte özetlenen adımlar:

  • KKO. Gerçekten mi. Yanlış yapılırsa dosya sisteminizi bozabilecek komutları kullanacaksınız.

  • Bölümleri bulun.

  • Bölümlerinizin izinlerini değiştirin (alternatif olarak VM'nizi sudo kullanarak önyükleyebilirsiniz, ancak daha sonra ana bilgisayar / konuk paylaşılan sürücüde oluşturulan tüm dosyalar root'a aittir).

  • Konuk normal önyükleyiciyi kullanmayı denememesi için bir MBR oluşturun.

  • VM için kullanılacak vmdk görüntüsünü oluşturmak için bir VirtualBox iç komutu kullanın.

  • VM'yi oluşturun. Yeni oluşturduğunuz vmdk'yi kullanmasını sağlayın.

  • Kurulumu başlatın ve onarın.

Bir Windows ana bilgisayarı kullanarak aynı sorunların çoğunu bulmayı beklerdim, ancak Linux muhtemelen farklı donanımı daha zarif bir şekilde ele alacaktı. Paylaşılan / ev (ve belki / tercih) bölümlerini kullanmak ve yerli misafir misafirleri için yalnızca farklı kök bölümleri kullanmak gerçekten daha kolay olabilir.


Sanal Makine yaklaşımını Mac'lerde yıllarca kullandım ve bir SSD'nin bile tek başına kesemediğini fark ettim. Her iki sistemin de G / Ç bağlamasını önlemek için ana makinenizi ve konuğunuzu tamamen farklı sürücülerden ayırmanız gerekir. Bir SSD, işleri iyileştirse de, ikinci bir sürücü kullanmakla karşılaştırıldığında hiçbir şey olmuyor (ve her ikisi de uçmakta olduğunuz SSD'lerse!)
Keith Jackson

12

Genelde bunun tersini yapıyorum, bu benim ev sistemim bir Windows 7 makinesi ve Linux'un çeşitli lezzetlerini VM'ler olarak kullanıyorum. Linux'un sınırlı kaynaklarla oldukça iyi bir şekilde çalışabilmesi gibi, sadece 4GB RAM olmasına rağmen bu benim için çalışıyor (bunun bir kerede tek bir VM çalıştıracağı ve genellikle en fazla 1024 MB RAM verebileceği anlamına gelir. pencereler için).

8 GB’lık RAM’iniz Windows VM’yi kolayca çalıştırmanıza izin vermelidir. Bence buradaki tek büyük soru, gelişiminiz için ölçmek isteyeceğiniz sonuçların türü. Bir VM'de geliştirdiğiniz ürünler için performans / verimlilik ölçütlerine güvenmekte tereddüt ederim (anakart genelinde aynı özelliklere sahip benzer bir VM ortamına dağıtılmayacaksa). Aksi takdirde, gitmekte iyi olmalısın.

Ve diğer iş parçacığındaki yorumlara değinmek, doğal olarak, büyük miktarda kaynak gerektiren uygulamalar geliştireceğinizi bilmeye devam ediyorsanız, o zaman bu amaç için optimizasyon yapmanızın yolu olacaktır (bu durumda çift önyükleme kesinlikle olacaktır). VM kullanmak tercih edilmeli).

Hem VMWare hem de VirtualBox kullandım ve ikisini de kullanan gerçek performans isabetlerini görmedim. Sanal Makinenin içindeki kıyaslama seviyesine geçmedim, iki platformdan da olumsuz bir etki fark etmedim (hala evde VirtualBox ve işte VMware kullanın).


Eğer Linux'unuz bir VM'de 1 GB RAM'de çalışıyorsa, bu, Windows'u bir VM'de kolayca çalıştırabileceğiniz ve 3GB VRAM da atayabileceğiniz anlamına gelir. Soruda, aynı teori de geçerli. Temel Linux işletim sisteminiz için 1GB tutun ve Windows'a 7GB atayın. Temel işletim sisteminin ve sanal makinenin ne olduğu önemli değil. İkisini birden çalıştırdığın sürece, aynı kaynakları paylaşıyorsun. Bana göre, bu gerçekten önemli değil, her iki işletim sistemi de bir VM'de çalıştırmaktan mutlu ve her ikisini de çalıştıracak kaynaklara sahipseniz, yeniden başlatmaya gerek kalmadan aralarında dolaşabilmek her zaman iyidir.
Jakke

VMbox'ları çalıştırmak için VirtualBox'ı tercih ediyorum, çünkü VMware Player AND Workstation'da ciddi bellek sızıntıları gördüm (sürüm 10). Yine de aynı anda çalışan 4 VM'den bahsediyorum, 32GB RAM'e sahip bir sistemde. Her iki VW ürünü de çarpışana kadar tüm tokmakları kullanmaya başlarken, VB mutlu bir şekilde haftalarca sorunsuzca çalışıyor.
Jakke

8

Nasıl çalıştığınıza ve os'un nasıl hissetmesini istediğinize bağlıdır .

İkili önyükleme, işletim sistemini değiştirmek istiyorsanız yeniden başlatma ve önyükleme anlamına gelir, bu işlem zaman alır . Serbest olarak, "eşyalarını" ("eşyalarını" linux açılışında yapardın) yapmadan bir projeyle 8 saat boyunca çalışır mısın?

Windows'ta arka arkaya 8 saat çalışıyorsanız ve günün geri kalanını Linux'ta geçiriyorsanız, çift önyükleme kullanın. 30 dakika çalışıyorsanız ve Linux'ta bir şey yapmak istiyorsanız, 3 saat boyunca tekrar çalışmaya, sonra tekrar linux'a geçin. Sonra VM'yi seçerdim.

Emin değilseniz ikisini de yapın. Çift önyükleme ve pencerelerdeyken bir VM çalıştırın. İkiniz arasında net bir fark göreceksiniz ve birini diğerine tercih edeceksin.

Kişisel olarak sadece yeni linux dağıtımları ve bazen sahte bir sunucuyu test etmek için bir vm kullanıyorum (bir vm'yi vidalayabilmek paha biçilemez ve gerçek sabit disk sürücünüze göre daha az güçlük çekiyor). VM aynı zamanda daha az tepki veriyor ve hissediyor, duyarlı ve pürüzsüz hissetmek için işletim sistemime ihtiyacım var, VM bu alanda yoksundur. Bu yüzden çift çizme tercih ederim.

Dosya paylaşımı konusunda da bir sorun var. Bir çift önyüklemede paylaşmak daha fazla iş (Windows önyüklemesinde bir dosyayı düzenlemeyi hayal ettikten sonra Linux'ta sadece bir satırı kaçırdığınızı ve yeniden başlatmak zorunda olduğunuzu anlamak için linux'da önyüklemeyi hayal edin!) os arasında gerçek zamanlı olarak dosyaları paylaşmak, hiçbir probs.

Ayrıca Aboba'nın dediği gibi koç yeterli değil. Windows8'de 4GB ve VM kullanıyorum. Projenizin ihtiyaç duyduğu kaynaklardan bahsedin.


Dosyaları paylaşma hakkında: Gerçekten, gerçekten, gerçekten, kaynak kontrolü altında üzerinde çalıştığınız her şeye sahip olduğunuzu umuyorum; Windows ve Linux arasında hala paylaşmak istediğiniz şeyler (çünkü .. bilmiyorum) sadece bir NTFS bölümüne gidin - bu her iki işletim sistemi tarafından da okunabilir ve yazılabilir.
Voo,

4 hayatın GIT! Çok fazla özel programlama yapıyorum, bunun için git'e ihtiyacım yok (bunun iyi bir uygulama olduğunu biliyorum ama tembel olduğumu biliyorum). NFTS hakkında, tam olarak söylediğim buydu! Ancak, ss arasında önyükleme zaman alır. Ve bir vm'de her iki dosya da gerçek zamanlı olarak bulunabilir!
Karl Morrison

Ubuntu Bölümüm, Windows'un tüm bölümlerini otomatik olarak bağlar, bu nedenle en az erişim dosya sistemi / pencerelerin dosyaları sorun olmamalıdır. Ayrıca, EXT3 / 4 bölümlerini pencerelere monte eden üçüncü taraf yazılımıdır.
kuldeep.kamboj

Diğer bir husus, Windows Phone geliştirme yapmak isteyip istemediğinizdir. Bu durumda, Visual Studio'yu sanal bir ortamda çalıştıramazsınız, çünkü WP öykünücülerinin kendisi Hyper-V VM'leridir. Windows 8'i istemci Hyper-V etkin, Linux altında bir VM'de çalıştırabilir ve yine de WP geliştirme öykünücülerine erişebilirsiniz.
rjrapson

5

Ya da bu nasıl. Net / C # ile ilgileniyorsunuz, öyleyse neden linux üzerinde sadece Mono kullanmıyorsunuz? Java anlamında çok çapraz platform.


Tam olarak düşüncelerim - Visual Studio'da basit bir tek pencereli C # Othello oyunu yapmakla oynadım ve projeyi içe aktarırken ve MonoDevelop'ta çalışırken çok iyi geçti.
NoBugs

3
Bir uyarı olarak, Mono WPF projelerini desteklemiyor. Öyleyse OP WPF uygulamaları geliştirmek istiyorsa, bu işe yaramayacak. Ayrıca, Mono'nun büyük bir hayranıydım, ancak Novell'in projeyi bırakması ve Xamarin’in yeni durumları ele alma konusundaki tercihinden vazgeçtiği için, daha fazla çaba sarf etmekte biraz temkinli davranıyorum.
Boluc Papuccuoglu

1
Mono kullanmayı düşündüm ve kesinlikle deneyeceğim. Ancak diğer ekip üyeleri Visual Studio'yu kullanırken sorunlar olabilir mi?
codeape

Visual Studio'yu kullanmıyorsanız .NET eğlencesini gerçekten kaçırırsınız.
demonkoryu

3
@codeape Mono'da pek çok desteklenmeyen özellik ve kitaplık var; Müşteriniz Mono'yu hedeflemeyle özellikle ilgilenmiyorsa, bu muhtemelen ciddi bir seçenek değildir.
Casey,

4

Şahsen ben yarı yolda eve kadar birçok olumlu deneyime sahip oldum, Xen gibi bir hipervizör kullandım , daha sonra hem Linux hem de Windows’un hafif bir mikro çekirdekli hiper yönetici altında çalışmasını sağlayın, ne de önemli bir performansa büründü ve bu yapılandırma çok daha esnek kaynakları istediğiniz zaman ikisi arasında kolayca yeniden konumlandırabilmenizi sağlar.

Bu, kaynakları bir başkasına yeniden tahsis etmek için herhangi bir zamanda iki işletim sistemini bağımsız olarak önyükleyebildiğiniz veya kapatabildiğiniz ve bahsettiğiniz performans farkına varamayacağınız (aslında% yavaş bir kesir olabilir) Bazı vakalar ancak bunu test etmek için özellikle kıyaslama yapmadığınız sürece bunu farketmeyeceksiniz).

Tek yakalamak, bazı özelliklerin CPU'nuzu görselleştirmeyi desteklemesini gerektirir, ancak her i7 (afaik) yapar, bu yüzden bu sizin için bir sorun olmamalı.

DÜZENLE:

Xen kendi mikro çekirdeğini içeriyor, Debian'ın çalıştırılması gerekmiyor, bir linux sistemine ihtiyaç duymanın tek nedeni Xen'i yeniden yapılandırmaktır, çünkü yapılandırma programı konuklardan birinde çalıştırdığınız bir linux programıdır (konuk Xen terimi kullanır. Bir VM demek için). İstediğiniz zaman sadece linux, sadece pencereler veya her ikisini de çalıştırabilirsiniz, ancak Xen'in ayarlarını yapılandırmak için linux uygulamasına ihtiyacınız olacak, böylece gerektiğinde bunu yapmak için arka planda küçük bir linux bırakmanız önerilir.

Donanım birkaç şekilde ele alınabilir; Xen, bir donanım parçasının birden fazla misafir tarafından aynı anda ağ kartları ve ses kartları vb.

Bu şekilde çalışamayan veya yalnızca bir misafir tarafından ihtiyaç duyulan donanım için, xen geçiş cihazlarına sahiptir, bu, hangi konuğun donanım parçasına doğrudan erişimi olduğunu istediği zaman seçip seçebileceğiniz ve bunu istediğiniz zaman değiştirebileceğiniz anlamına gelir. saati. Herhangi bir sanallaştırma ek yükü olmadan yüksek hızlı hızlandırılmış görüntülemeye ihtiyaç duyuyorsanız, bu, belirli bir konuğa grafik kartına gerçek anlamda erişim sağlamak için yapılabilir .

Ayrıca, yukarıda açıklandığı gibi doğrudan ekran kartını kullanarak doğrudan bir misafir kartı almak da mümkündür ancak yine de diğerlerinin ekranının pencerelerde görünmesini sağlayan (sanal kutu veya uzak masaüstü gibi) yerel VNC benzeri bir protokol kullanarak başkalarını görüntüleyebilirsiniz. biri ekran kartının doğrudan kontrolüne sahipken; veya elbette, bir kerede doğrudan erişim sağlayan misafir ekranları arasında geçiş yapabilirsiniz.

Bu kurulumun verimliliği konusunda ne alabileceğinin aksine, aslında her iki işletim sistemini de aynı anda çalıştırmanın ve her ikisinde de etkili yerel performansı korurken birkaç yoldan biri. yüksek performanslı bir oyun makinesi veya diğer zorlu sistemleri çalıştıracak bir kurulum.


Her şeyi belirttiğiniz şekilde ayarlamak için herhangi bir rehber / rehber önerebilir misiniz? Bir gentoo linux / win7 sistemine sahip olmak istiyorum.
Gene Pavlovsky

3

Tecrübelerime göre (aynı zamanda .net uygulamaları üzerinde çalışırken harika şeyler test ederken ve linux'da algo sorunlarını çözerken çalışıyorum), çift önyükleme en iyi bahis olacaktır.

Diğerlerinin de belirttiği gibi, VM kullanmak zaman zaman yavaş ve tepkisiz hissediyor, bu da acı olabilir.

Zaman ayırdığınız ve bir VM çalıştırmayı deneyen ve rahat olup olmadığını kontrol eden bir şey daha var.

Sıra gelince
1) önce pencereleri sonra da linux'u
kur (tercih edilen) 2) Önce linux'yu sonra pencereleri yükle (daha sonra bootloader'ı yeniden yüklemelisin)

Eklemek istediğim bir şey daha küçük. Net projeleri için mono kullanarak linux'u bile kullanabilmenizdir, bu yüzden pencerelerden linux'lara geçiş yapmanıza gerek yoktur.


1

Visual Studio ile başlayıp, zaman içinde linux'a geçerek (bir yıldan beri apt, zsh ve vim!), Bir yıldan fazla bir süredir anahtarlı linux / Visual Studio geliştirme yapıyorum.

Windows ile Ubuntu'yu VMWare Player'da barındırmaya başladım, oldukça iyi çalışıyordu, öncelikle Visual Studio geliştirmesi yapıyorsanız ve sadece ara sıra linux paketine ya da her neye ihtiyacınız varsa kesinlikle harika. Zamanla, çalışmamın daha çok linux ortamında olmasını istediğimi ve VM entegrasyonunun birkaç acı noktasında olduğunu buldum.

Öncelikle linux geliştirmeye (IntelliJ'de çok sayıda AS3 ve bazı düğüm + python) geçiş yaptığım için, yalnızca Windows'a (ASP.NET sitesi) ihtiyaç duyduğumda, bir VirtualBox barındıran Ubuntu'ya döndüm (bir disk2vhd -> .vdi eski Windows diskim). Oldukça fazla miktarda kemandan sonra, genel olarak sahip olduğum iş bölünmesinden dolayı oldukça mutluyum, ancak ciddi miktarda Visual Studio kullanıyorsanız, muhtemelen Linux barındıran Windows olmasını istiyorsanız, VirtualBox veya VMWare Player'ın iyi olması gerekir.

Yine de birkaç acı noktasını not etmeliyim: standart Ubuntu 14.04 AMD video sürücüleri ile VirtualBox'ın 3D ivmesi Visual Studio ~ 10-100x'i yavaşlatıyor, bu yüzden biraz durgunluk pahasına ivmeyi devre dışı bırak; ve sen gerçekten bir SSD üzerinde çalışıyor olmak istiyorsun)


2
Sadece "Yeterince koç yok" diyen cevapların benim için oldukça çılgınca olduğunu belirtmek: VS'nin kendisi 32-bit, bu yüzden 4GB'tan fazla kullanamaz. SQL Server ile IIS'nin tam sürümlerini çalıştırıyorsanız, biraz durgunluk olabilir, ancak bunların normal Express sürümleri iyi olmalıdır. SSD, performans için çok daha önemlidir.
Simon Buchan
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.