惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
月光博客
月光博客
T
Tailwind CSS Blog
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Last Week in AI
Last Week in AI
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
罗磊的独立博客
Jina AI
Jina AI
酷 壳 – CoolShell
酷 壳 – CoolShell
宝玉的分享
宝玉的分享
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
量子位
雷峰网
雷峰网
Apple Machine Learning Research
Apple Machine Learning Research
美团技术团队
博客园 - 聂微东
V
V2EX

Kian Bradley’s Blog

Resurrecting a dead torrent tracker and finding 3 million peers Resurrecting a dead torrent tracker and finding 3 million peers Supporting modern https on Windows XP Supporting modern https on Windows XP Running rumprun for Xen in Ubuntu 16.04 Setting up NAT networking in Xen using virsh Setting up NAT networking in Xen using virsh Setting up Xen in Ubuntu 16.04 Setting up Xen in Ubuntu 16.04
Running rumprun for Xen in Ubuntu 16.04
Kian Bradley · 2016-08-26 · via Kian Bradley’s Blog

Running rumprun under Xen isn’t hard, but it’s less documented than running it under KVM. This page is similar to Rumprun’s guide to building rumprun unikernels with a few Xen-specific changes.

Build the rumprun platform

Install prerequisite xen headers and build tools:

sudo apt-get install build-essential libxen-dev

Clone their repo, cd, build:

git clone http://repo.rumpkernel.org/rumprun
cd rumprun
git submodule update --init
CC=cc ./build-rr.sh xen

Add binaries to PATH

You’ve now build rumprun and the binaries necessary for building, baking, running are located in rumprun/bin. You’ll want to these to your PATH variable for convenient access:

export PATH="${PATH}:$(pwd)/rumprun/bin"

You can also add this to your ~/.bashrc to make these changes permanent.

vim ~/.bashrc

Append the following, where [location of rumprun] represents the directory containing rumprun:

export PATH="$PATH:[location of rumprun]/rumprun/bin"

Building applications

Get some source code and use rumprun’s version of gcc to compile it. (Follow the rumprun tutorial for a more thorough explanation…)

Here, helloer.c is our source code and helloer-rumprun is the output binary.

x86_64-rumprun-netbsd-gcc -o helloer-rumprun helloer.c

Baking applications

I was going to make a joke here but I can’t think of anything clever right now. You need to bake it. That means running a command to add in all the kernel-y bits that makes rumprun ready for it.

Here, helloer-rumprun is the binary we just built and helloer-rumprun.bin is the the binary with the necessary rumprun pieces.

rumprun-bake xen_pv helloer-rumprun.bin helloer-rumprun

Running applications

Here’s the hard part. The rumprun command is a script that will create a Xen configuration file in /tmp and start up a Xen PV guest. For xen, it will look like this:

rumprun -S xen -id -g [Xen config options] -I [network interface] -W [more network options]

The -I and -W commands can be omitted if there is no need for networking. I have networking set up using a NAT, in which there exists a subnet local to the machine. Look at my article on Xen networking to see how I set up networking within rumprun.