This documentation deals with the virtual and USB machines used in the courses organized by the Department of Future Technologies of the University of Turku , which already contain the necessary software packages for the various courses. Descriptions of machines for different courses are provided on the versions page.
When a student uses a virtual machine prepared for the course, there is no need to worry about installing, updating programs or problems caused by different versions. Course work is managed and returned online, in which case the virtual machine is just a tool through which the study material is processed. Once the course is completed, the virtual machine can be deleted. After removal, the user's computer is intact so that the tools used in the course will not remain on the machine to cause any problems later.
In addition to the virtual machine images, pre-built platforms similar to the virtual machines offered are available in USB memory versions, which are presented on the USB version page.
The big advantage of a standardized platform is that it is easier to get support and help with problems from other students when everyone has a similar environment, regardless of, for example, the host operating system. An additional benefit of a machine separate from the student's own operating system is that in more difficult problem cases, the solution is simply to destroy and reinstall the virtual machine, or in the case of the USB version, to reformat it. The user does not have to worry about the machine getting “confused”, but on an easily replaceable virtual or USB machine, you can try different software and solutions more worry-free than in a standard operating system.
About virtualization and virtual machines
Over the last 20 years or so, the use of virtual machines has become widespread in all information technology, and virtualization has become the core technology of current cloud services. Virtual machines are used both in individual desktops and in large computer rooms. The mainstay is the efficiency and great benefits of virtualization - a number of benefits, including better use of resources, faster software development and reduced need for physical equipment.
A virtual machine, as its name implies, is a machine that does not physically exist. The machine is started programmatically inside another computer, and its components are modeled programmatically. A virtual machine (often referred to as a guest or guest) is separate from the actual computer that drives it (referred to as a host or host), thinking it runs alone on a physical computer.
A virtual machine does not automatically have access to the resources of its host computer, but it can be separately granted access to, for example, a shared folder on the disk with the host to allow the transfer of files between machines. The use of accessories connected to the host computer also requires a separate permit.
Multiple virtual machines can be running simultaneously on the host computer, and other virtual machines can be run inside the virtual machines. The term instance is also used for individual virtual machines running.
The running of virtual machines is performed by a hypervisor, or virtual machine monitor, running on the host computer, which simulates the computer hardware of which the virtual machine consists. The introductory chapter on the hypervisor introduces some of the best-known hypervisors, and the installation chapter on the hypervisor introduces them to their implementation.
Version control in course projects
An integral part of modern software development is data warehousing and distributed version control. They are used to manage the source code of software and different versions of code. They also allow group work with source code. Version control stores all changes made to the code, information about who made the change, and other relevant information.
When practicing programming, it is worth learning to use version control from the beginning, as its control plays a very central role in modern software development and is also intertwined with software development processes. When using virtual machines, the use of version control is therefore important that the source code stored in the data warehouse is preserved even if the virtual machine is destroyed. This and other guides to the University of Turku's virtual machines assume that the student uses distributed version control and does not store his / her assignments only on the virtual machine.
The recommended version control of the University of Turku's courses uses Git, which has a separate manual, and the university's GitLab service.