I'm a Mac, Windows, and Linux user. And I use just one computer. If you're curious and have a reasonably modern computer, all you have to do to try Linux is install VirtualBox and create a virtual computer and install whatever flavor of Linux you like. Or create multiple different virtual computers, each with its own OS. The whole Linux computer runs in a window, or you can run it full screen. Delete any computer you don't like. No need to install on disk, stick, or try to run from CD-R or DVD-R.

You don't need to "change" to Linux to use it, and you don't need to set up some sort of dual booting nor boot from stick or CD-R on your Windows computer. Just run Linux right now in a virtual machine that you spin up, for free.

Just out of curiorsity does Windows run inside VirtualBox or does VirtualBox run inside Windows? Or, put another way, does one install VirtualBox on a blank hard disk and then install Windows and Linux etc?

Also, out of curiosity, doesn't the use of VirtualBox (or equivalent) use up a significant amount of the PC's performance before any OS gets a look in?

I have been thinking about something like this but I have never tried it.

...R

Two or three hours spent thinking and reading documentation solves most programming problems.

AWOL

I think VirtualBox performance depends on the processor you're using - you may have to enable "emulation mode" in the BIOS to get the best out of it.Performance is down a little (I wouldn't do an Android build or play video games on it!), but adequate for most things.

Just out of curiorsity does Windows run inside VirtualBox or does VirtualBox run inside Windows? Or, put another way, does one install VirtualBox on a blank hard disk and then install Windows and Linux etc?

Also, out of curiosity, doesn't the use of VirtualBox (or equivalent) use up a significant amount of the PC's performance before any OS gets a look in?

I have been thinking about something like this but I have never tried it.

...R

VirtualBox is an application that runs in Windows, or Linux, or Mac. Whatever system you run it on is called the Host. You then launch it and create Guest computers and spin them up. For a Guest you select the type and sizes of drives, memory, number of processors, processor features, network cards, and all that jazz. All that stuff is stored in files and is emulated when you "boot" the guest computer. You boot the guest computer by clicking a button. You can run whatever OS you want on your guest computers. The only limitation is Mac OSX guest computers are only allowed if the host computer is also Mac OSX.

Since most performance has to do with memory, and most modern computers (less than a dozen years old) have plenty of memory, the guest runs with quite acceptable performance for most applications.

You can do fancy stuff, such as running the guest OS seamless, which makes the guest OS applications run side-by-side with your host OS apps, which is pretty cool. You can also run guests by launching them on the command line in the background or as a scheduled task, and run them "headless" which means they are completely hidden in your host machine and you can't even tell they are running. But they can be doing tasks for you, such as running web, ftp, media, or other servers. You can then remote control the guest with something like remote desktop or VNC when you need access to the screen.

I use this virtualization technology because it is fun, free, and handy, but I don't keep up with the razor's edge of developments. I understand some virtualization hosts run on bare metal, which means there is no host OS. The virtualization software runs as the main OS, and then you create guests for all of your various OS's. I have not messed with that. VMware is another major brand of virtual server, and Microsoft also has one but I don't know the name of it. I have been using VirtualBox for years. It was made by Sun Microsystems, and Sun was purchased by Oracle a few years back, so it is now Oracle software. Oracle also has a Linux distribution, which is free and it is configurable as pretty much an exact copy of Redhat (Redhat is not free).

Just out of curiorsity does Windows run inside VirtualBox or does VirtualBox run inside Windows? Or, put another way, does one install VirtualBox on a blank hard disk and then install Windows and Linux etc?

Also, out of curiosity, doesn't the use of VirtualBox (or equivalent) use up a significant amount of the PC's performance before any OS gets a look in?

I have been thinking about something like this but I have never tried it.

...R

The only thing that can be installed on a blank hard drive so that you can boot it is an operating system (because the definition of an operating system is that you can boot it), so your question about installing it on a blank hard drive is equivalent to asking "Is VirtualBox literally an installable operating system like Linux"? Which is an interesting question and the answer is "No". As far as I know neither virtualbox, nor VMWare, nor QEMU nor any number of other other options can literally be an operating system themselves that you can install on a blank hard drive. They are all applications, like Chrome, Firefox.

Chrome and Firefox can run Javascript, and VirtualBox and other VM's can run a virtual computer.

It's possible to emulate a complete PC in javascript, for example here is an Apple 2 emulator: https://www.scullinsteel.com/apple2/ (warning, it's a bit noisy.)

So, the Apple 2 operating system thinks it's running on Apple 2 hardware. But those calls are really being answered by Javascript. In this case we would say that the Apple 2 is the guest operating system. The host in the above link is actually a javascript program run inside a browser.

Obviously this is very slow, since a browser probably executes hundreds to thousands of instructions for every one it emulates. You wouldn't boot a Windows 7 computer in a Javascript emulator that emulates a machine, because that would be insane.

However, if you step outside of javascript and into a downloaded and installed application like VirtualBox, suddenly it's not insane. Because modern CPU's provide virtualization instructions, so it's easy for them to safely emulate another architecture.

So. If Firefox exists for a Mac, you can run Firefox on the mac and visit the above link to emulate an Apple 2.

If VirtualBox exists on a Mac, you can install virtualbox and run it and actually emulate a complete PC. "Inside" the VM you can install anything, just like "inside" the javascript VM the apple 2 can do anything a normal real apple 2 could do.

what you install inside the emulated computer is called the guest, as someone stated. The computer you're running the program on is called the host.

So just think of VM's like a Firefox browser, and the emulated computer like my Apple 2 emulated link - except a lot faster, because they're closer to the metal. They can also install drivers that let you copy and paste between the guest OS and the host OS, and so forth.

so the first thing you would do after installing VM software is create a blank emulated/fake hard drive which the guest will see. Then you mount a file into the emulated dvd-rom of the guest, such as for example windows installation media. then the guest "boots" (but it only thinks it's doing so on hardware, just like the apple 2 operating system isn't really booting anythign, javascript is answering its instructions). the guest operating system doesn't even know it's not booting on a real computer, and you let it install itself onto the emulated/fake computer inside. it's super-safe.

for example it's a great way to isolate viruses. they don't have any way to "break out" into the rest of your computer, just like the emulated Apple 2 inside Firefox can't write to your hard-drive. it doesn't even know about your hard drive and can't ask about it.

Are you curious about the intersection of Arduino/Electronics/Raspberry Pi/Orange Pi/Beaglebone/niche manufacturing/starting from 0 and scaling? Try: http://curious.boards.net

Virtual box is pretty cool, and performance is usually "reasonably acceptable" (although hard to predict, because the host OS will act as a sort of massive disk cache. Maybe. I run most of by VMs with 2G to 4G of memory, and my host has 14G. Things get pretty painful if I run enough VMs and Host apps at the same time to fill up the available memory.

One problem is that windows (in particular) doesn't come with particularly VM-friendly licenses. Put a purchased windows 8.1 on a VM, and you won't be able to clone it to a second VM on the same host, even if you were only going to run one at a time. I'm not sure what will happen if I delete the VM and try to install windows on a brand new one; I'm afraid to try till I actually HAVE to. (and being able to delete everything and start fresh is a very fundamental feature of using something like virtual box.)

One cool feature that helps with that, is you can take a snapshot, and then revert back to it. So, take a snapshot of your guest while it is pristine, before you screw up your OS installation (with a poorly behaving or experimental program or virus, for example).

Ah; maybe I should be using "snapshot" instead of "clone" to revert back to virgin install state.WXP clones nicely; I put together a nice, bare, XP system, and then cloned it to have one for AVR development, one for PIC development, one for TI development, etc... The W8.1 "clones" are the ones that won't "activate."

I use Ubuntu (Linux). About a year or so ago I made the break from using OS/X (I still have a few Macs) but made my Linux box my main PC. Email, Firefox, Arduino, etc. I haven't regretted it.

For a start it is fast and reliable. Secondly you don't have licensing issues like "I see you haven't activated your copy of Windows yet - you have 14 days to do that".

But the really great thing is, a lot of stuff you just expect to pay for on Windows and Macs, you get for nothing on Linux. For example, video transcoding (ffmpeg). Mucking around with PDFs (pdftk). Some things (like Firefox, Audacity, Blender, ffmpeg) are also available on other platforms as well, to be fair.

I haven't had any problems using Arduino on Ubuntu, after maybe an initial hiccup with permissions (covered on this forum and others).

As for VirtualBox, I am running a Windows XP partition to support my Windows programs I wrote a while ago. Compiling a large program is still fast under VirtualBox, so I don't have any complaints there. Plus Wine is a possibility for running Windows programs.

Another consideration is: virus-writers tend to concentrate on Windows. I'm not saying there aren't Linux viruses, but I haven't personally experienced any.

Another great program to look into is rsync - I use that for incremental backups. It's like Time Machine on the Mac (at least, it can be configured to be similar) where you can keep files that were deleted or altered.

Please post technical questions on the forum, not by personal message. Thanks!

So can I use the live boot USB drive with a small file system ALSO on the USB drive? (saved config, user file, user documents, etc, all in real files on the flash drive.) I'd gladly sacrifice boot time and ram for the "live" image to have a USB stick I could insert "anywhere" and run MY unix environment... (normally, the "try it out" option just decompresses a virgin filesystem to ramdisk, right? I want it to decompress almost everything to ramdisk, and look to the USB drive for everything else...)

The only thing that can be installed on a blank hard drive so that you can boot it is an operating system (because the definition of an operating system is that you can boot it), so your question about installing it on a blank hard drive is equivalent to asking "Is VirtualBox literally an installable operating system like Linux"? Which is an interesting question and the answer is "No". As far as I know neither virtualbox, nor VMWare, nor QEMU nor any number of other other options can literally be an operating system themselves that you can install on a blank hard drive.

You can boot any sort of program on a computer, from the hard disk. It may or may not be an operating system. An operating system is just a program that provides convenience for launching and supporting other applications, and often to manage running multiple programs concurrently. But those same applications could be written to not need an operating system at all, and to boot directly. In this modern times that is called bare metal programming.

You can do bare metal programming with a Raspberry Pi, or even your PC. We are accustomed to doing it with Arduino (at least most Arduinos). It is appropriate to do bare metal programming for some applications, but to do that for any and all applications would be extremely inconvenient, because you would miss out on all the stuff the operating system would normally provide for you. For example, you could write a version of gedit for bare metal, sounds easy, just a file editor. Suppose that is the one and only program you need to run on your PC. When you go to write a bare metal version of it you realize there's all sorts of stuff, like bootstrapping, window handling, file opening and closing, fonts and rendering, cursor and mouse pointer handing, drivers for everything (including mouse, keyboard, screen). The full list would have hundreds if not thousands of items you need to worry about. It would be pretty much a royal PITA.

A hypervisor is a fancy name for a virtualization host. VirtualBox is a hypervisor, or to be specific it includes a hypervisor among all the other software that makes up the suite. I believe Oracle has not made a bare metal version of VirtualBox, but VMWare has one. VMWare's version of a bare metal virtualization program is called vSphere Hypervisor. You boot it up on your box instead of an operating system.