Xen Project Introduces the Unikraft Unikernel Project



  • Unikraft aims to simplify the process of building unikernels through a unified and customizable code base

    SAN FRANCISCO, December 5, 2017 :undefined:–:undefined: TheXen Project, hosted by The Linux Foundation, today announced the formation ofUnikraft. Unikraft is an incubation project under the Xen Project focused on easing the creation of building unikernels, which compile source code into a lean operating system that only includes the functionality required by the application logic.

    The current generation of cloud computing requires workloads that are efficient, fast and secure. Containers are encouraging new ways of looking at the operating system. These trends are driving innovations with unikernels that allow developers to include only the bare minimum of traditional OS components to create lean, efficient, and fast-to-boot applications with an extra degree of isolation for environments like microservices, embedded devices, IoT, and automotive, among many others.

    A long-time advocate of unikernels, the Xen Project supports initiatives likeMirageOS, a library operating system that constructs unikernels for secure, high-performance network applications. The Xen Project is compatible withHaLVM, a port of the Glasgow Haskell Compiler toolsuite that enables developers to write high-level, lightweight virtual machines that can run directly on the Xen Project hypervisor.Galois originally developed HaLVM to allow for quick and easy prototyping of operating system components; however, it can also operate as a network appliance.

    While many projects focus on building out unikernel components, a single unified code base with a modular architecture, like Unikraft:undefined:’:undefined:s, is needed to make the process of building unikernels quick, fast, and easily accessible to more developers.

    :undefined:“:undefined:Unikernels provide a tremendous opportunity for those who are looking to ship workloads quickly and efficiently with isolation to eliminate security risk, but the complexity of building unikernels have stymied this technology:undefined:’:undefined:s time-to-market,:undefined:”:undefined: said Dr. Felipe Huici, Chief Researcher, Systems and Machine Learning Group, NEC Laboratories Europe. :undefined:“:undefined:Unikraft is on a mission to bring unikernels to market faster through an unified code that is customizable to meet the needs of a wide range of applications, and even runtime-specific unikernels, like MirageOS.:undefined:”:undefined:

    :undefined:“:undefined:We are seeing a growing trend and interest around unikernels from inside and outside the Xen Project community with commits growing daily from a range of vendors in the embedded, automotive, enterprise application space, and more,:undefined:”:undefined: said Lars Kurth, Chairperson of the Xen Project. :undefined:“:undefined:We look forward to helping incubate this project and furthering collaboration within the unikernel community.:undefined:”:undefined:

    <u>Customizable Architecture Provides Flexibility</u>

    The Unikraft architecture consists of two basic components to make the process of building unikernels more fluidly: library pools and a build tool.

    Library pools act as building blocks in creating customizable unikernels on top of a consistent code base. The library pools include:

    • Architecture libraries: Containing libraries specific to a computer architecture (e.g., x86_64, ARM32, or MIPS).
    • Platform Libraries: Allowing users to select platforms like Xen, KVM, bare metal, and user-space Linux.
    • Core libraries: Consisting of a rich set of functionality, which includes components like drivers (both virtual such as netback/netfront and physical such as ixgbe), filesystems, memory allocators, schedulers, network stacks, runtimes (e.g. a Python interpreter), and debugging and profiling tools.
    • External libraries: Ports of standard libs (e.g., libc, openssl) to the Unikraft system.

    <u>Automating the Unikernel Build Process</u>

    The Unikraft build tool compiles the application and the selected libraries together to create a binary for a specific platform and architecture (e.g., Xen on x86_64). The tool is inspired by the popular Linux kconfig system and consists of a set of Makefiles allowing users to select libraries, to configure them, and to receive warnings when library dependencies are not met.

    To create a simple application, the user simply implements a main() function, fills out a simple Makefile and runs :undefined:“:undefined:make menuconfig:undefined:”:undefined:, where he or she selects from the libraries described above and configures the image, choosing, in the process, the target platform(s). The user then saves the configuration, types :undefined:“:undefined:make:undefined:”:undefined:, an Unikraft automatically generates the images, one per selected platform. This means that application developers no longer have to target a particular platform; in essence, with Unikraft, they get multiple platform support for free.

    NEC Laboratories Europe, the European labs of NEC:undefined:’:undefined:s research branch focused on software research in the areas of IoT, data science and security and networking, is the main driving force behind Unikraft and is providing the initial implementation for this project.

    The Xen Project will provide Unikraft with basic infrastructure and marketing support. Unikraft uses the 3-Clause BSD license and is available for downloadhere. For more information on how to get involved in the project, the website ishere.

    About Unikraft

    Unikraft is a project that aims to simplify the process of building unikernels. The architecture consists of customizable libraries and a build tool to create quick, fast and lean applications for embedded, IoT and automotive use cases, and more. Unikraft is an incubation project of the Xen Project, which provides basic infrastructure and marketing support to help a project to progress. For more information about Unikraft and to participate, please visithttps://xenproject.org/developers/teams/unikraft.html.

    Additional Resources

    The postXen Project Introduces the Unikraft Unikernel Project appeared first onThe Linux Foundation.

    https://www.linuxfoundation.org/press-release/xen-project-introduces-unikraft-unikernel-project/


 



  • Make ISO from DVD

    In this case I had an OS install disk which was required to be on a virtual node with no optical drive, so I needed to transfer an image to the server to create a VM

    Find out which device the DVD is:

    lsblk

    Output:

    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465.8G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 464.8G 0 part ├─centos-root 253:0 0 50G 0 lvm / ├─centos-swap 253:1 0 11.8G 0 lvm [SWAP] └─centos-home 253:2 0 403G 0 lvm /home sdb 8:16 1 14.5G 0 disk /mnt sr0 11:0 1 4.1G 0 rom /run/media/rick/CCSA_X64FRE_EN-US_DV5

    Therefore /dev/sr0 is the location , or disk to be made into an ISO

    I prefer simplicity, and sometimes deal with the fallout after the fact, however Ive repeated this countless times with success.

    dd if=/dev/sr0 of=win10.iso

    Where if=Input file and of=output file

    I chill out and do something else while the image is being copied/created, and the final output:

    8555456+0 records in 8555456+0 records out 4380393472 bytes (4.4 GB) copied, 331.937 s, 13.2 MB/s

    Fin!

    read more
  • Recreate postrgresql database template encode to ASCII

    UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';

    Now we can drop it:

    DROP DATABASE template1;

    Create database from template0, with a new default encoding:

    CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UNICODE'; UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1'; \c template1 VACUUM FREEZE;

    read more
});