Giter Site home page Giter Site logo

unikraft's Introduction

Unikraft - "Unikernel Crafting"

Unikraft is an automated system for building specialized OSes and unikernels tailored to the needs of specific applications. It is based around the concept of small, modular libraries, each providing a part of the functionality commonly found in an operating system (e.g., memory allocation, scheduling, filesystem support, network stack, etc.).

In addition, Unikraft has the concept of external libraries. These are what we commonly understand as standard libraries such as libc or openssl, and help to enhance the functionality of Unikraft and the range of applications it is able to support.

Unikraft supports multiple target platforms (e.g., Xen, KVM and Linux userspace for development purposes), so that it is possible to build multiple images, one for each platform, for a single application without requiring the application developer to do any additional, platform-specific work.

The configuration and build process are driven by a menu system inspired by Linux's kConfig system, making it easy to choose different libraries and configure them. This simplifies the process of trying out different configurations in order to extract the best possible performance out of a particular application.

In all, Unikraft is able to build specialized OSes and unikernels targeted at specific applications without requiring the time-consuming, expert work that is required today to build such images.

For more information information about Unikraft, including user and developer guides, please refer to the docs/guides directory.

Further resources

unikraft's People

Contributors

balvisio avatar cbanu96 avatar clupuishere avatar codis avatar felipehuici avatar lascubogdan96 avatar radunico avatar razvancojocaru avatar razvanrotaru avatar roxanan1996 avatar skuenzer avatar vladandrew avatar weichen81 avatar yasukata avatar yvolchkov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

jongwu

unikraft's Issues

hello world can't run on arm64 hardware

I get a trap when I try to boot the vm:

[    0.000000] ERR:  [libkvmplat] traps.c @ 67   : Unikraft: EL1 sync trap caught
[    0.000000] ERR:  [libkvmplat] traps.c @ 38   : Unikraft: Dump registers:
[    0.000000] ERR:  [libkvmplat] traps.c @ 39   : 	 SP       : 0x0000000040024f80
[    0.000000] ERR:  [libkvmplat] traps.c @ 40   : 	 ESR_EL1  : 0x0000000096000061
[    0.000000] ERR:  [libkvmplat] traps.c @ 41   : 	 ELR_EL1  : 0x0000000040011038
[    0.000000] ERR:  [libkvmplat] traps.c @ 42   : 	 LR (x30) : 0x0000000040011000
[    0.000000] ERR:  [libkvmplat] traps.c @ 43   : 	 PSTATE   : 0x00000000200003c5
[    0.000000] ERR:  [libkvmplat] traps.c @ 44   : 	 FAR_EL1  : 0x000000000900000b
[    0.000000] ERR:  [libkvmplat] traps.c @ 50   : 	 x00 ~ x03: 0x0000000009000000 0x0000000000000060 0x0000000000000101 0x0000000000000003
[    0.000000] ERR:  [libkvmplat] traps.c @ 50   : 	 x04 ~ x07: 0x0000000000000067 0x0000000000000067 0x0000000000001618 0x0000000000000003
[    0.000000] ERR:  [libkvmplat] traps.c @ 50   : 	 x08 ~ x11: 0x0000000040000000 0x0000000040024eac 0x00000000000015fc 0x000000000000159c
[    0.000000] ERR:  [libkvmplat] traps.c @ 50   : 	 x12 ~ x15: 0x0000000000000000 0x0000000040000000 0x000000004001f000 0x0000000000000000
[    0.000000] ERR:  [libkvmplat] traps.c @ 50   : 	 x16 ~ x19: 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x000000004001e000
[    0.000000] ERR:  [libkvmplat] traps.c @ 50   : 	 x20 ~ x23: 0x0000000040000000 0x0000000000000000 0x0000000000000000 0x0000000000000000
[    0.000000] ERR:  [libkvmplat] traps.c @ 50   : 	 x24 ~ x27: 0x0000000000000000 0x0000000000000000 0x0000000040025000 0x000000004001f000
[    0.000000] ERR:  [libkvmplat] traps.c @ 53   : 	 x28 ~ x29: 0x0000000000000000 0x0000000040024f80
[    0.000000] CRIT: [libkvmplat] traps.c @ 71   : EXIT
Unikraft halted

The command I use is

qemu-system-aarch64 -M virt -cpu host -smp 1 -enable-kvm -nographic -kernel helloworld_kvm-arm64

The hardware I'm using is hikey 960 with open embedded rocko image. The qemu is built from openembedded-core.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.