[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Publicity] rump kernel and Rumprun unikernel proposed post



I agree with Antti, that keeping it simple is the best approach

I think we should add URL's almost everwhere where there is a reference marked 
by [...], e.g. http://luajit.org/, etc. - I can add these, but I don't want to 
edit the post at the same time as Antii

> Might be a few days.
I would like to publish on Thursday or Friday, such that we get this out before 
other announcements planned for next week (although I can discuss with Sarah to 
move a video post planned for next week towards the end of this week) 

Lars


> On 1 Aug 2015, at 14:17, Antti Kantee <pooka@xxxxxx> wrote:
> 
> [added mato to cc]
> 
> On 31/07/15 17:27, Anil Madhavapeddy wrote:
>> (Thanks Russ for sorting out my login)
>> 
>> Great post! Some quick thoughts from vacation:
>> 
>> - In the "the goal of rump was not unikernels", it might be worth pointing 
>> out that Rump provides a long term baseline for other unikernel projects 
>> that have been focussing on the high level structure.  For example, Martin's 
>> work on Mirage+rump now lets us slowly deprecate the old MiniOS runtime in 
>> favour of Rump, and get KVM and baremetal support in addition to Xen, and 
>> focus on the "new horizons" rather than low level device driver hackery.
> 
> Hmm, I wonder if I can succinctly work that in.  I think I should stress that 
> the idea to is to provide a proper architecture so that projects using rump 
> kernels don't need to fork their own copies, and encourage discussion if the 
> architecture or implementation falls short of someone's needs.  Forking is 
> nice for a quick thrill, but when you hit the maintenance stage it's suddenly 
> not so fun.
> 
> I assume that Martin will write about "Mirump" in detail himself, but I guess 
> I can mention it to strengthen the above argument.  Would something in the 
> order of "yaddayadda... the MirageOS unikernel has already started taking 
> advantage of this feature [Martin Lucina]" be appropriate?  Plus a link to:
> http://permalink.gmane.org/gmane.os.mirage.devel/954
> 
>> - Link to the third-party applications Rump github repo?
> 
> ah, definitely.
> 
>> - A TL;DR with some hrefs into the rump kernel book on some of the 
>> terminology would be useful for the more casual reader.  You mention in one 
>> blog post -- rump kernel, unikernel and anykernel -- quite a lot to take in 
>> one post :) Your FOSDEM 2013 interview on the topic is good: 
>> https://archive.fosdem.org/2013/interviews/2013-antii-kantee/ or your New 
>> Directions in Operating Systems 2014 talk.
> 
> The problem with the tl;dr is that it's hard to explain things to a global 
> audience when I don't know what their *assumptions* are and which specific 
> piece they are interested in -- even though the pieces are bite-sized, 
> there's a lot of them.  Mini-anecdote: it took years for people to stop 
> saying "oh you've reinvented FUSE".  So, the book is the only thing I trust 
> to explain things in a hard-to-misassume way.  But I'll add some tl;dr if I 
> can figure out what to add.
> 
> I'll see if I can somehow remove "anykernel".  My in-house reviewer 
> complained about that as well.  The problem is that I doubt the figure works 
> if "anykernel" is not there, so I need to think of something else.
> 
>> - if you have time, linking to the xen-devel mailing list posts from the 
>> archives would be really useful.  There were some great threads there that 
>> you reference.
> 
> Ah, right, there was the thread where Ian Jackson got so excited that he 
> forgot that the other Ian wasn't Ian Jackson.  I'll see if the thread is 
> useful.  Most of the interesting discussion may have been in private email :(
> 
>> - nowhere does the article mention what sort of existing applications rump 
>> kernels are bad at -- worth mentioning that fork-heavy applications don't do 
>> so well?  Might be out of scope.
> 
> I won't say that rump kernels have issues with fork because that's not true.  
> Rump kernels work perfectly with fork+exec *if the underlying system supports 
> it*.  Rump kernels do not provide you with fork or exec because I don't 
> consider fork or exec to be protocol translators (a.k.a. drivers).  However, 
> rump kernels do support *the application* performing fork or exec.  Same goes 
> for mmap.
> 
> If you mean the Rumprun unikernel, which is the one example of an underlying 
> system which does not do VM, then yes.  But, as you can gather from above, 
> the discussion on the topic gets convoluted quickly, and will confuse more 
> than clarify unless I spend several paragraphs on it.  So, I think it's 
> better that people read the book if they really want to understand.
> 
> The only thing that I can think of which really doesn't fit into the rump 
> kernel model of splitting execution and [POSIX] drivers is signals.  But 
> we'll soon have to figure out how to cram that in.  I actually sort of have a 
> plan for that already, but just need to brave enough to try to implement it 
> -- it requires touching the rump kernel CPU scheduler, and I'm very afraid of 
> that code.
> 
>> - As a random aside, 2007 seems to have been the year that lots of projects 
>> started.  I remember sitting in a room in Cambridge with Andrew Tolmach and 
>> Adam Wick in Jan 2007 and using MiniOS to create the first Mirage and HalVM 
>> kernels with networking (just ethernet) as well.  Trying to dig out an 
>> online reference to that meeting -- ISTR we had a photo of the whiteboard 
>> somewhere!
> 
> Hahaa, "commit early, commit often" saved me there.  I think this was the 
> first sketch of the mtools "unikernel" which ran both on NetBSD and Linux 
> (not that the infrastructure is strictly speaking that of a unikernel, but 
> anyway):
> 
> http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/rump/fs/bin/fsconsole/Attic/fsconsole.c?rev=1.4&content-type=text/plain
> 
> And, urgh, handwritten syscall handlers and namei (ukfs).  I don't want to go 
> back there.  Though, ukfs displays the quintessential philosophy of rump 
> kernels: either figure out how to use existing code unmodified, or massively 
> simplify it for the case at hand; port-by-copypaste (forking) is evil.  The 
> problem with ukfs was that syscall handlers and namei are complex because 
> they're complex, so it wasn't possible to simplify them and still have them, 
> well, work (like really work, not just superficially work).  So the ukfs 
> experiment failed, c'est la research, and I later figured out how to include 
> the unmodified counterparts.
> 
> 
> Anyway, got a bit sidetracked.  I'll send a ping to the list once I've 
> finished editing everyone's suggestions in.  Might be a few days.
> 
>  - antti
> 
> _______________________________________________
> Publicity mailing list
> Publicity@xxxxxxxxxxxxxxxxxxxx
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/publicity


_______________________________________________
Publicity mailing list
Publicity@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/publicity


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.