diff --git a/content/docs/concepts/virtualization.mdx b/content/docs/concepts/virtualization.mdx index 2d15f04a..b594fec1 100644 --- a/content/docs/concepts/virtualization.mdx +++ b/content/docs/concepts/virtualization.mdx @@ -8,38 +8,41 @@ description: | Virtualization can be done using a hypervisor, which is a low-level software that virtualizes the underlying hardware and manages access to the real -hardware, either directly or through the host Operating System. There are 2 main -virtualized environments: virtual machines and containers, each with pros and -cons regarding complexity, size, performance and security. Unikernels come -somewhere between those 2. +hardware, either directly or through the host Operating System. +There are 2 main virtualized environments: virtual machines and containers, +each with pros and cons regarding complexity, size, performance and security. +Unikernels come somewhere between those 2. ## Virtual Machines A virtual machine represents an abstraction of the hardware, over which an operating system can run, thinking that it is alone on the system and that it -controls the hardware below it. Virtual machines rely on hypervisors to run -properly. +controls the hardware below it. +Virtual machines rely on hypervisors to run properly. A hypervisor incorporates hardware-enabled multiplexing and segmentation of compute resources in order to better utilize, better secure and better -facilitate the instantenous runtime of user-defined programs. By the -means of a virtual machine, an operating system is unaware of the multiplexing -which happens to facilitate its existence. The hypervisor emulates devices on -behalf of the guest OS, including providing access to virtual CPUs, virtual -Interrupt Controllers and virtual NICs, which are segmented from the underlying -hardware. +facilitate the instantenous runtime of user-defined programs. +By the means of a virtual machine, an operating system is unaware of the +multiplexing which happens to facilitate its existence. +The hypervisor emulates devices on behalf of the guest OS, including +providing access to virtual CPUs, virtual Interrupt Controllers and virtual +NICs, which are segmented from the underlying hardware. The hypervisors can be classified in 2 categories: Type 1 and Type 2: * The **Type 1 hypervisor**, also known as **bare-metal hypervisor**, has direct access to the hardware and controls all the operating systems that are running - on the system. The guest OSes have access to the physical hardware, and the - hypervisor arbiters this accesses. KVM is an example of Type 1 hypervisor. + on the system. + The guest OSes have access to the physical hardware, and the hypervisor + arbiters this accesses. + KVM is an example of Type 1 hypervisor. -* The **Type 2 hypervisor**, also known as **hosted hypervisor**, has to go - through the host operating system to reach the hardware. Access to the - hardware is emulated, using software components that behave in the same way - as the hardware ones. An example of Type 2 hypervisor is VirtualBox. +* The **Type 2 hypervisor**, also known as **hosted hypervisor**, has to go + through the host operating system to reach the hardware. + Access to the hardware is emulated, using software components that behave + in the same way as the hardware ones. + An example of Type 2 hypervisor is VirtualBox. Commit messages, along with all source files follow a 80-character rule. diff --git a/content/docs/internals/booting.mdx b/content/docs/internals/booting.mdx index e562b977..f771f303 100644 --- a/content/docs/internals/booting.mdx +++ b/content/docs/internals/booting.mdx @@ -1,12 +1,12 @@ --- title: Booting description: | - Unikraft has an prograrmmable boot sequence which provides the ability to inject functionality at different moments of system initialization. Learn how to how and where to introduce custom functionality. + Unikraft has a prograrmmable boot sequence which provides the ability to inject functionality at different moments of system initialization. Learn how to and where to introduce custom functionality. --- ## Unikraft Boot Sequence -The Unikraft boot sequence is dependent on the selected platform (linuxu, kvm, xen), but is very similar to how any other operating system would behave. +The Unikraft boot sequence is dependent on the selected platform (`qemu`, `firecracker` or `xen`), but is very similar to how any other operating system would behave. In the case of the `KVM` platform, the booting process involves more steps. First, the image is loaded from the disk into memory and the program sections are defined (see `plat/kvm/x86/link64.lds.S`, as example for the x86 architecture). diff --git a/content/docs/internals/debugging.mdx b/content/docs/internals/debugging.mdx index 34a7ef1a..49b7d2e3 100644 --- a/content/docs/internals/debugging.mdx +++ b/content/docs/internals/debugging.mdx @@ -40,14 +40,6 @@ We recommend 3, the highest level. Once set, save the configuration and build your images. -#### Linuxu - -For the Linux user space target (`linuxu`) simply point GDB to the resulting debug image, for example: - -```console -$ gdb build/app-helloworld_linuxu-x86_64.dbg -``` - #### KVM For KVM, you need to start the guest with the kernel image that does not include debugging information.