Que vous deviez ou non les installer séparément est une question délicate. Si votre ordinateur est ancien et que vos ressources sont limitées, éloignez-vous des ordinateurs virtuels et installez un système d'exploitation sur chaque lecteur. D'autre part, si vous avez une machine plus récente avec beaucoup de RAM (minimum 4 Go si vous utilisez Windows 7 avec une VM) et un processeur décent, alors vous devriez pouvoir utiliser une VM pour une programmation occasionnelle.
Étant donné que vous devez installer les deux systèmes d'exploitation dans les deux sens, personnellement, je choisirais un système sur chaque lecteur (tant que vous ne manquez pas d'espace disque). Il est plus facile à configurer et vous obtenez toute la puissance de l'ordinateur pour les deux systèmes d'exploitation. Si vous avez encore des doutes, lisez la suite.
Si vous cherchez à faire de la programmation C sérieuse sur la machine Linux (développez non seulement pour Linux, mais réellement sur Linux), je choisirais alors un système d’exploitation séparé, quelles que soient les capacités de votre ordinateur. De cette façon, vous pourrez utiliser toutes vos ressources lors de la compilation, etc. De plus, si vous envisagez d'utiliser Linux régulièrement, il est logique de lui donner son propre lecteur.
Si vous ne travaillez que sous Windows (y compris le développement), il vous suffit de tester l'exécution de vos programmes sous Linux, vous n'avez aucune intention de faire autre chose sous Linux, et votre ordinateur est suffisamment bon, vous pouvez alors sauvegarder vous un peu d’espace disque et utilisez une VM.
Astuce sur le double démarrage:
Si vous décidez de les installer séparément, assurez-vous d’abord d’installer Windows. Ainsi, lors de l’installation de Linux, grub / lilo peut le détecter et ajouter automatiquement une entrée de chargeur de démarrage Windows.