This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Is there any way to run two different windows environment at the same time on one CPU. Those two environments will have own monitor, keyboard and mice. In other words I want two persons to connect to one CPU but each one can work on their monitors and run applications controlling with their keyboards and mouse.
A remote desktop offering. Most windows versions (all? I'm not sure about that, but the professional and server versions sure do) come with builtin RDC, called mstsc. There are also 3rd party alternative solutions like Citrix.
If additionally you want each user to be able to work on different OSes on the same CPU, use a virtualization application like Virtualbox or VMWare server.
Edit: No strike that - I misunderstood your problem. You'll still need separate boxes even when using RDC. However, the system you describe (with just one box) was used by NIIT among others if I remember right, and a google search shows they used an offering from http://www.ncomputing.com/. It requires specialized hardware to allow multiple keyboards, mice and display outputs - that's what they provide.
Once upon a time, almost every computer supported many users per CPU. It was called timesharing. Computers were expensive, so people shared them. Tops-10, Tenex, Vax VMS, Unix, etc. were all designed for multiple users.
Windows NT was designed for multiple users from the very start. It was designed to compete with Novell NetWare, which would have one server providing file and print services to as many as 50 or 100 people. But it was never designed for timesharing, with two keyboards and two monitors used by two people.
As computers got cheaper, demand lessened, and I think NT quickly lost some/most of its ability. Of course, since NT begat Win 2000, which begat XP, which begat Vista and 7, some of the old capability is probably still in there.
Cloud computing is just timesharing with a new name.