VM AND EMULATORS
The not existing hardware
A subtle but substantial difference exists between Simulators, Emulators and Virtual Machines. This is enough to generate some confusion in those approaching the subject. The aim and the final result, in the eyes of the user who uses them, is practically the same: within a given operating system, another operating system is run, completely different or absolutely identical, it doesn't matter. For example MacOs within MS Windows, or MS Windows within Linux. In any case, there is always a physical machine that hosts the system (also called host), and a virtual hosted machine (also called guest).
I briefly describe the fundamental characteristics of these three categories:
- Simulators
A simulator is software that fully mimics an operating system, or a hardware system with the software system integrated (a calculator, for example). Obviously we are dealing with a product that is not the original one, but which tries to imitate it in every aspect, this gives rise to differences and discrepancies. The simulated system's code is written entirely from scratch, so it doesn't have the exact same deep features as the original system. However, the code is optimized and written for the host machine, and therefore very fast to execute.
- Emulators - Compatibility Layers
An emulator, on the other hand, reproduces the hardware conditions of the guest machine, but does not itself possess the guest machine's software. It is therefore usually necessary to have a copy of the launcher or the specific operating system. In many cases the operating system is stored in a chip used for this function, so it is necessary to have an image file of the chip itself (the ROM files). The emulators therefore, in general, are specific and have the task of emulating a specific hardware system. As an advantage we have that the result is completely identical to the real one, including programming defects and incompatibilities, as we work on the original operating system, which believes it is in its native hardware, as a disadvantage we have that the system is slower be executed, as the host machine has to perform many more calculations, to make the guest work and all the additional calculations it needs (basically they are two machines one inside the other, but both leaning on a single real processor). Among the emulators we find game consoles, palmtops, cell phones.
Very often these virtual machines are provided together with the development and programming tools for new applications. In this way it is possible to create new software and test them without the risk of damaging any device, but also by making many tests quickly, without having to deal with connection and software transfer problems on the device (which never have peripherals such as CD-ROMs, or standard USB ports to transfer software), so they must necessarily be connected with a special cable to a computer. Sometimes it is possible to meet the term "Compatibility Layer", generally used for Wine, a program created for Linux with the aim of making programs compiled and created for MS Windows usable within Linux. A Compatibility Layer is a hardware emulator that includes software similar to an operating system that runs inside the emulator and starts simultaneously with the emulator (in the sense that it cannot be avoided that the operating system does not avii). In this way the package is ready to run programs created for the emulated environment. Generally the result is slightly less performing than a virtual machine with the original operating system installed on board, and compatibility is often not very high.
- Imaginary machines
The name says it, they don't exist in reality, but only in cinematic or narrative fiction. Some of these machines have become a myth and an icon that has spanned years and generations. Sometimes there are interactive simulations.
- Virtual Machines
There are two basic types of SW called Hypervisors, to manage VMs:
TYPE 1 - VM manager is an OS, all real resources are available for VMs.
TYPE 2 - the VM manager is an application within an OS, the available resources are limited.
The virtual machines are generated by a SW that is able to use part of the real HW to build a machine that has characteristics inherited from the real machine and smaller in size. They are unable to emulate processors different from that of the host machine, but they exploit it to operate machines hosted within the host.
Inside a virtual machine it is possible to install operating systems, in a completely analogous way to reality, the operating system believes it is in a real physical computer, of which it uses all its peripherals and to do so it needs drivers. A feature of virtual machines is that you can install the operating system you believe, regardless of the system hosting the virtual machine. In general, the hard disks on which the operating system is installed are simple files managed by the virtual machine, so duplicating an HD, moving it or mounting it on a different virtual machine are operations that are limited to the simple management of a file and are can be done in seconds. Furthermore, it is often very simple to change the HW configuration of the machine itself: do we need more ram? open the settings panel and write how many mega or giga you need (obviously they must physically exist inside the real machine that hosts the VM and will be subtracted from the real machine); Is your video card underpowered? in the same way you increase the video ram. Need a second hard drive? with three mouse clicks a second HD is generated and mounted. Do you have to figure out how to network completely different operating systems? Want to test which is the best open operating system for a server? Do you want to test an OS prototype in beta release? One needs to install and uninstall dozens of applications on the same system whose real reliability is not known (and if we are under MS Windows this means altering and polluting the registry in a heavy and often deleterious way, and filling the system with residual files in large quantities)? With a virtual machine, these are all operations that cost us nothing in terms of money and system stability: if something gets damaged, I delete the machine and recreate a new one. A VM is a folder on the host's disk, with some files inside. Furthermore, in many cases it is possible to freeze the operation of the machine in several points and recover it in the future (what is called a "snapshot"). In a context such as the one just described, it is immediately clear that carrying out tests, tests and stresses of various types is very easy and very simple. With such a structure, creating, testing, accidentally ruining machines and restoring them in a couple of minutes is extremely simple and fast. A further and extremely interesting application of virtual machines consists in creating on a single real machine (obviously very powerful in this case) countless virtual machines used as network servers or web servers. The costs of the HW system drop while in general the performances remain quite high, furthermore the maintenance and management costs of the machines are reduced to almost zero. At this point, a company that provides network servers for rent cuts costs and rents fully performing virtual machines to its customers. In fact, there are virtual machines that allow the movement of a virtual computer from one real host to another, without the VM realizing anything, without being turned off or even losing the connection to the network. Obviously there are virtual machines that can be installed on any platform and system, while others are limited and sectorial, there are commercial and other Open Source VMs. There is only the embarrassment of choice.
Simulators - |
AGC Apollo Guidance Computer |
Emulators - | Palm Emulator WinUAE |
Compatibility Layers - | DosBox DosEmu Wine |
Imaginary Machines - | Startrek computer |
Virtual Machines - | Basilisk PearPC VirtualBox |
===============================
ABACO
TYPE - Simulator
HOST - MS Windows
GUEST - a Chinese Abacus
MANUFACTURER - Halcyon Computer Company
LINK - Unfortunately no longer valid, the SW is no longer available...
A curious simulator of a real Chinese abacus (recognizable by the fact that the tens in the small section are managed with two balls and not with just one as happens with Japanese abacuses). It is a very simple software. The same company also created the slide rule simulator. This software is in this section as the abacus is one of the oldest systems to assist human being in calculating large numbers. The earliest abacuses date back to 2700 BC, dating back to the Sumerian culture, and have spread throughout the known and civilized world. I rightfully include this tool in artificial systems of calculation.
Screenshots: Simulator running on a MS Windows guest hostend in a VirtualBox VM on Linux guest.
Abacus the chinese abacus simulator | Abacus on Windows |
===============================
AGC Apollo Guidance Computer
TYPE - Simulator
HOST - Linux, Mac OS, MS Windows
GUEST - AGC
PRODUCER - Ron Burkey
LINKS - http://www.ibiblio.org/apollo/index.html
It is a very faithful simulation of the computerized guidance and control system of the Apollo family of spaceships. Able to simulate a large part of the Apollo versions. From the reference site it is also possible to download the code for which it is possible to compile the program also for other platforms, on the site itself there are the instructions for compiling for FreeBSD, Solaris, iPhone. Trying it out is a lot of fun and you realize how abstract the use of this computer was, all the commands were given via a numeric keyboard, identifying the numeric commands entered via other buttons which defined them as Verbs or Nouns. On the site there is also a small operating manual to prepare the computer for navigation with detailed and well-described instructions.
Screenshots: Simulator running on a MS Windows guest hosted in a VirtualBox VM on Linux guest.
The start control panel for to choise the type of Apollo | The computer running with 2 keyboard and joystic | The joystic control panel |
===============================
BASILISK
TYPE - Virtual Machine, needs ROM
HOST - Amiga BeOS Linux MacOS MS Windows Solaris
GUEST - MACOS 7 MACOS 8
PRODUCER - Christian Bauer et al.
LINK - http://basilisk.cebix.net/
Project carried out by a single person, not open but freely distributed. Latest developments date back to 2006. Elaborate virtual machine of older MAC platforms equipped with 68k processors. It has a pretty elaborate configuration panel where you can set a huge amount of hardware and system variables. Need original ROM chip image. In the example shown, a Powerbook 1400 from the webmaster's personal collection was used. The fact that Apple has made the installation of the old MACOS 7.5.3 system available for download, now considered obsolete and abandoned, has allowed a fair diffusion of this nice and decidedly interesting program. However, its usefulness is limited to the amateur study of old MAC systems, as the MACOS 7 system is decidedly very old, but Basilisk in this way allows the use of ancient softwares to be used also on PC or Linux. A MACOS 7 system can easily be upgraded to later versions using original MAC software. Using a MAC system with Basilisk is very pleasant, it is also able to load the HD of the host machine in read and write. MACOS 7 in this virtual machine works at a speed that the system in its time has never experienced.
Screenshots: VirtualBox VM host: Linux, Guest: MS Windows XP that is a host pf Basilisk with guest MACOS 7.5.3.
Control panel | MACOS 7.5.3 running | Installing MACOS 7 |
3 OS inside one by other, |
===============================
DOSBOX -
TYPE - Compatibility layer
HOST - Linux MAC OS MS Windows BeOS
GUEST - DOS in x86 machine
PRODUCER - Open source project
LINK - http://dosbox.sourceforge.net
Carried out by four people, interesting emulator of an old-style x86 machine running a simulated DOS version 5.0. It also emulates SoundBlaster hardware very well, so that very demanding games run believing they have a real SB at their disposal. Very useful for reusing old games and programs created for MS DOS. It supports the main typical DOS commands even if not many, and also some typical Unix commands, such as "mount". Basically it does not load any device and it is necessary to mount the CDROM and any folders that are mapped as if they were hard disks. This makes it very easy to use programs inside the emulator, as you just need to copy what you want into the mapped folder. The emulator system disk is mapped to Z: and is read-only. By typing the "intro" command at the prompt, a short but useful list of examples and commands for using the emulator appears. Furthermore, it is very simple to increase or decrease the speed of the emulated processor, in order to regulate the execution of the programs. For old games it is really very effective and fun, perhaps a little inconvenient having to map CDROMs and folders at each start, but then the fun is guaranteed. The old working games are over 800, certainly tested. The system does not load any particular keyboard so the English keyboard is loaded by default. The window is not resizable but can be extended to full screen.
Screenshots: Linux version running on real Linux Ubuntu 8.04. MS Windows version running on MS Windows XP guest in guest Linux VirtualBox.
DosBox running on di Linux | DosBox running on MS Windows | Who hasn't played Alone in the Dark? |
Goblin crazy French adventure | King Quest V, adventures mit | Who forgets Monkey Island? |
===============================
DosEmu -
TYPE - Compatibility layer
HOST - Linux
GUEST - Dos in machine x86
PRODUCER - Open Source Project
LINK - http://dosemu.org/
Interesting project available only for Linux, it emulates an x86 machine with a very complete FreeDos pre-installed. The window can be resized as desired, the keyboard of the host system is loaded directly into DosEmu, the CDROM reader is loaded automatically when starting the compatibility layer. Disk C: of the system coincides with a folder, with read and write access, in the user's home, loaded when the emulated system starts up. Just copy the data into that folder to find them available at the prompt. The project is stuck in 2007, but is mature enough to be used without problems. Compatibility with MS DOS programs is very high and is capable of running a large amount of software, including even MS Windows 3.0.
It has an excellent editor identical to DOS EDIT.
Screenshots: DosEmu running on real machine Linux Ubuntu 9.04
DosEmu running with mounted HD | The internal editor interno | Duke Nukem from my personale original collection |
Windows 3.0 running inside Linux |
===============================
PALM Emulator 3.0a7 -
TYPE - Emulator ROM needed
HOST - MS Windows
GUEST - PALMOS
PRODUCER - 3Com Palm Computing
LINK -
Produced by PalmOS but found only on various download sites. The links within the program itself are no longer valid. However, there are many sites that provide manuals and instructions for its use and configuration. It comes with a Palm IIIc ROM, but also supports other Palm versions such as Palm V, various versions, Palm VI. All maintenance commands are given through the menu called up with the right key. Through the right contextual menu it is possible to install the software created for PalmOs, save and recall the configuration, change the skin, create a new machine with a different ROM and much more. Through this system it is possible to create various machines with different ROMs and with different sets of programs installed. The interface can be displayed in normal or double size, as in the following images. Again by right-clicking it is possible to export and import any database file within the system. There are several assistance systems for debugging installed software and for studying program execution. A great way to test Palm applications before installing them on a real Palm. The behavior of the PDA is perfect, it really feels like using one of these machines, it's very pleasant and fun.
Screenshots: VirtualBox in Linux with MS Windows XP guest hosting PalmEmulator.
Wine 1.01 in Linux Ubuntu 9.04 running PalmEmulator for Windows.
PalmEmulator inside MS Windows | The same emulator in Wine on Linux | Right click menu |
Tipical About | Generic skin | Text editor |
===============================
Palm Simulator Cobalt 6.1 -
TYPE - Simulator
HOST - MS Windows
GUEST - PalmOS 6.1
PRODUCER - Palm Source Inc.
LINK -
According to the manufacturer's declaration it is a simulator, the software is all contained in a folder with a direct executable, it works without installation. The program then interprets the contents of a ROM, supplied with the program, which contains the original PalmOS system. All management commands and simulator options are located in the right button. Also in this case it is possible to install programs for PalmOs and monitor their behaviour. The program also simulates an SD card whose size can be chosen and which corresponds to a folder on the disk of the host system. All the features of the PalmOS Cobalt 6.1 system are maintained, the possibility of rotating the desktop, the seasons illustrated in the heading of the agenda, the BlueTooth and wireless connections, synchronization with the cradle, the mobile phone keyboard, etc. The speed of the simulator is not immediate, we notice some slowdowns in the functioning, which instead is not felt in PalmEmulator 3.0a7.
Screenshots: Simulator inside MS Windows guest of a Linux VirtualBox host on Linux Ubuntu 9.04
Main screen | 90° rotation | About |
The simulator inside Windows | The phone keyboard | Memo editor with keyboard |
Memo editor with pen | Generic skin |
===============================
PearPC -
TYPE - Emulator
HOST - MS Windows
GUEST - MACOS X
PRODUCER - open source project
LINK - http://pearpc.sourceforge.net/
An interesting open source project that emulates the PowerPC architecture, stopped in 2015. It requires the original installation disk provided by Apple, while the hardware is completely emulated without the need for anything else. There are some distributions in torrent format that include the operating system, obviously illegal and as such their use is not recommended. The system is perfect, no difference from a real MAC, apart from the speed, which depends on the power of the host machine. It also works within a MS Windows virtual machine hosted within Linux, but mouse management is really inconvenient (pointer speed is difficult to manage).
Screenshots: VirtualBox VM hosted in Linux Ubuntu 9.04 guest MS Windows XP
The choice on booting in BIOS | The boot | loadin process |
Il Desktop |
===============================
STARTREK LCARS
TYPE - GUI
HOST - MS Windows
GUEST - LCARS
PRODUCER - proprietary
SITO - https://www.lcars-terminal.net/
Funny and funny GUI interface for MS Windows, a very old project that runs on new versions of Windows in Windows XP compatibility. Its name means: Library Computer Access and Retrieval System.
Requires registration, as shareware, but works fine without it, you just have to close the popup reminding you of registration every now and then. It allows to use the SW as a resolution explorer, with the possibility to access some Windows configuration resources. It has a DB related to the Strar Trek world and it is possible to download epsnsions from the original site. It has a system for configuring panels and internal menus. Each action is accompanied by a systematic voice announcing the operation. Using the commands you can perform shutdown, restart and logoff from the Windows system. It integrates a system of notes, calendar, diary, contacts and mail, all in LCARS style
Screenshot: VM VirtualBox on Windows 10 running on Xubuntu
Booting the system | Host Desktop | To Do |
Calendar | Star Trek Database | The manual |
LCARS control panel | Interaction with MS Windows |
===============================
TYPE - Hypervisor
HOST - Linux MacOS MS Windows OS/2
GUEST - Every OS running on X86 machines, Linux, MS Windows etc.)
PRODUCER - Sponsored Opensource
LINK - http://www.virtualbox.org/
Open source project then sponsored by various companies, currently by ORACLE, but in the past others have sponsored, including Sun Microsystems Inc. It is a type one hypervisor, i.e. a SW capable of making available to the virtual machines it creates the HW of the real machine it is installed on.
Equipped with a large control panel for each virtual machine it creates, it is easy to adjust RAM and video memory, albeit with some limitations on the latter. The sound card and the network card can be emulated in various ways. The CDROM can be the physical one of the host machine, or use an ISO file. In the same way we move for the floppy. Hard disks can be easily created with an internal tool in a few seconds in this case they are files that are used as virtual disks, or it is possible to directly mount entire physical disks. Any operating system that can run on a 32-bit or 64-bit x86 machine can be installed on a VirtualBox virtual machine. Also available, in ISO format, are driver and utility packages that allow you to connect the virtual machine to the host machine via network. This makes it very easy to transfer data in and out of the guest system. It is a powerful, practical and very useful solution to carry out all possible experiments and tests, with the possibility of restoring the system in seconds.
Screenshots: Various guest inside Linux Ubuntu 9.04 host
VirtualBox running in Ubuntu 9.04 | Dos, Reactos, Win98 and WinXP running at the same time on Ubuntu | Linux Mepis guest in Linux Ubuntu, Konqueror open on this side |
===============================
WINE -
TYPE - Compatibility layer
HOST - Linux MacOS BSD
GUEST - Variou versions of MS Windows
PRODUCER - Open source project
LINK - http://www.winehq.org
In constant development, the project aims to recreate an environment compatible with applications compiled for MS Windows. On the declaration of the developers themselves, Wine is not an emulator: "Wine Is Not an Emulator". The layer is based on the API libraries made available by Microsoft, the same basis on which the Reactos project is based. The program has a complete control panel that allows a good configuration of the operating modes. The program has the ability to emulate all versions of MS Windows starting from Windows 2 up to an imaginary Windows 2008, following Vista, perhaps meaning Windows 7. Compatibility with the various programs compiled for MS Windows is not very high, often one has to intervene in the configuration and sometimes you have to install various libraries, on the site, well done and well documented, there is an extensive compatibility list and numerous images. It has many points in common with the Reactos project, which is also based on the same free API.
Screenshots: Wine 1.01 in Ubuntu 9.04
Wine control panel | The simulated HD C:\ | WineChinese A SW created for Windows 3.0 |
ClamWin installation in Windows XP |
===============================
WinUAE -
TYPE - Amiga Emulator
HOST - Linux MacOS Windows
GUEST - Amiga
PRODUCER -
LINK - https://www.winuae.net/
Amiga emulator, very accurate and complete, full of controls and tools to configure the machine in a very refined way. It is very fun to recover and use old programs and games created for the Amiga. The control panel at the bottom of the window allows you to check the disks and their performance. AMIGA games have always been famous for their graphics and music, which, to fit everything on a 1.4 floppy, reached an incredible degree of definition. The ability to adjust the sensitivity of the mouse to make it manageable is very useful, often it is so fast as to be unusable.
Screenshots: Emulator in MS Windows guest of a VirtualBox VM guest on Linux Ubuntu 9.04