There are several ways you can use both Windows and Linux® software.
In the translation-layer approach, an application program is being fooled into thinking it's running on a Windows operating system, when it's actually running on Linux. In the virtual machine approach, you have an entire guest operating system, which thinks it's booting and running on its own computer, an approach with more system overhead. If you're using a netbook with a solid-state hard disk replacement, you probably wouldn't want to try to put a whole copy of Windows on there to use with virtual machines.
There are lots more VM packages than are linked here, many of them proprietary or specialized; see Comparison of platform virtual machines on Wikipedia.
Of course, with considerable propeller-head fiddling, you can get both Linux and Windows installed on the same hard disk in a dual-boot configuration. A menu pops up when the computer boots, and you can choose which OS to load, or else it loads your configured default. Linux provides a couple of ways to set this up. Dual boot never appealed to me much.
You could build a PC with the system-boot hard disk in a removable drive-bay rack, either the original tray type, or one of the new tray-less SATA racks with a door. These rack systems put a 3½-inch hard disk in a 5¼-inch drive bay. Then you could set up a second hard disk that boots a different OS. This is essentially a hardware-based form of dual boot, without all the configuration head-scratching. Depending on how much switching you do, there could be issues with the rack connectors.
Here's a brute-force approach:
If you use a network switch rather than a crossover cable, and you later want to add another PC or a network printer, it's just a matter of plugging in another cable.
You won't be able to copy and paste between systems with this setup, without some combination of Wine, cross-platform software such as OpenOffice.org, virtual machines, or what's probably a better idea, Virtual Network Computing, an open-source system for remote console logins. For more about VNC see my Linux links page.
They have mini print server adapters you can attach or connect to the back of your printer; then you can connect the printer to the network switch with an Ethernet cable, and it becomes a shared resource. Linux can share a local-port printer with a Windows PC over the network, but if you connect the printer to the network, either PC can use it even if the other one isn't running. Of course, if you're never going to run the Windows box by itself, that may not matter. There are also small network switches with, say, four Ethernet ports, plus four USB ports for devices to be shared by all computers. There are adapters to allow old parallel and serial devices to connect to USB ports.
If you own a copy of Microsoft Windows, depending on system configuration, you may be able to experiment with two or more of these technologies.
| System description | PRO | CON |
|---|---|---|
| One PC, Linux installed, no copy of Windows | Can use Wine to run compatible Windows apps. | No way to run Windows apps incompatible with Wine. |
| One PC, Linux installed, copy of Windows | Can use Wine or virtual machines² to run most Windows apps. | Can't boot Windows by itself; expense of copy of Windows; extra RAM and disk space requirments of VM. |
| One PC, Linux & Windows set up dual boot | Can use Wine or virtual machines on Linux, or boot Windows by itself (run all Windows apps). | Can only run one OS at a time; expense of copy of Windows; configuration hassle; security exposure if you use Windows online. |
| Two PCs, Linux & Windows, peer networked, KVM | Run both Linux and Windows natively at the same time; can use file and peripheral sharing, Wine, virtual machines, and VNC; maybe avoid Windows product activation hassles.³ | Expenses: two PCs; network adapters, cables, Ethernet switch; KVM; copy of Windows. Security exposure if you use Windows online. |