What's the difference between VM and VPS?

We often hear about VPS(Virtual Private Servers) and VM(Virtual Machine), is there any difference between them, or mean the same?


Your question is probably about full system level virtualization:

The term "Virtual Machine" is generally used to describe a technology, while the term "Virtual Private Server" (or "virtual root server", "virtual dedicated server" in some regions) is generally used to describe a product.

"VPS" usually means a server that you rent from a hosting company, together with remote management and such. Here 'virtual' doesn't refer to a specific technology, it merely means that it isn't dedicated hardware. Most VPSes are VMs (often Xen or Linux-KVM), but not always – cheap ones could be container-based (often OpenVZ or FreeBSD Jails).


Note that there are also other kinds of "virtual machines" that do not emulate a whole computer system at all – for example, the Java or .NET runtimes are often called "virtual machines" just because they execute code like a CPU would.