Congrats Anti,

One quick question if I want to port the bare metal on a newer hardware
i.e. amd64 which is my laptop from i386 for testing.

Do I need to change something more besides the /platform/baremetal/Makefile
gcc parameters?

Thanks
Sotiris

On Wed, May 20, 2015 at 7:31 PM, Antti Kantee <[email protected]> wrote:

> Hi folks,
>
> I've been generalizing platform support in the rumprun launch tool that
> Martin Lucina pioneered for launching POSIX application unikernels on top
> of Xen.  After small adjustments we support a rumprun nginx unikernel on
> KVM, Xen, and also my old laptop.  (Why test/demo with nginx instead of
> some other application?  It's a real-world, well-known and most
> importantly, simple-to-verify-working piece of software).
>
> Assuming you have built nginx, the same rumprun syntax works for all
> platforms:
>
>         KVM:
>
> rumprun kvm -b nginxdata.iso,/etc -I iftag,vioif,'-net tap,ifname=tap0'\
>     -W iftag,inet,dhcp bin/nginx -c /etc/nginx/conf/nginx.conf
>
>         Xen:
>
> rumprun xen -b nginxdata.iso,/etc -I iftag,xenif \
>     -W iftag,inet,dhcp bin/nginx -c /etc/nginx/conf/nginx.conf
>
>         ISO bootable directly on hardware:
>
> rumprun iso -b nginxdata.iso,/etc -I iftag,wm \
>     -W iftag,inet,dhcp bin/nginx -c /etc/nginx/conf/nginx.conf
>
> spot 3 differences ;)
>
>
> That said, the bin/nginx unikernel binaries are of course different, e.g.
> the Xen one contains Xen PV drivers/bootstrap and the raw hardware one
> contains a USB driver stack so that we can access the data files on the
> "guest".
>
> The demand for the KVM and Xen versions is I daresay rather obvious. But
> why do the bare metal one?  First, as we've already seen very recently on
> this list, baking things into self-contained images may be desirable for
> deployment in some cases.  Second, because running directly on hardware
> demonstrates the advantage of the rump kernel approach of separating
> drivers from the OS: we can.  Supporting a piece of hardware as a platform
> just requires selecting which hardware drivers to link into the unikernel
> image.  We probably still need to figure out some usability kinks there, as
> the selection of drivers is currently done by editing a Makefile (*), but,
> by large, things just work.
>
> *) you need to add the following components: rumpdev_pci_usbhc,
>    rumpdev_usb, rumpdev_umass and rumpdev_scsipi
>
> Granted, the usage on hardware is still a bit different from the cloud
> platforms: you have to dd the image to a USB stick, move it to another
> computer and press the power button.  One needs physical exercise ...
>
> In case someone likes reading dmesgs, here's the rumprun dmesg for the
> laptop (and also the spoiler on how I obtained the dmesg without typing it
> down manually ;)
>
> https://gist.github.com/anttikantee/15259b8796eb724722e3
>
>   - antti
>
>

Reply via email to