4 ms·
Sounds a little bit crazy to me at first but when thinking about it, it is a nice idea. May you should take a look at Rump Kernels and build your stuff on top.
by hanez 11y ago
Sounds a little bit crazy to me at first but when thinking about it, it is a nice idea.
May you should take a look at Rump Kernels and build your stuff on top. Then you do not need to implement the OS stuff - It's done already. May I am wrong but it seems to be a similiar idea but the following project is currently at the OS level only but some applications like ngnix are working already. I was very confused when I first read about Rump Kernels and after reading a while and watching some conference talks a lot of stuff made sense to me even if I do not understand in detail what they are doing.
http://rumpkernel.org/ http://rumpkernel.org/
https://github.com/rumpkernel https://github.com/rumpkernel
- semisight 11y agoThis seems more like MirageOS/Ling than a rumpkernel. From what I remember, rumpkernels are more general, at the cost of being less "unikernel-y" (i.e. lean and fast). I agree that it would be easier and faster to use a rumpkernel if the intention is use in production soon. I can't tell if this is a research project, or intended to be production quality at some point.
- vive-la-liberte 11y ago>I can't tell if this is a research project, or intended to be production quality at some point. Found this on their website [1]: >IncludeOS is the result of a research project at Oslo and Akershus University College of Applied Science (hioa.no) >IncludeOS is not production ready - but we're working hard to become so. [1]: http://www.includeos.org/ http://www.includeos.org/
- semisight 11y agoThanks, I didn't catch that. I'll have to make some time to play with this, especially once it gets further along.
- hanez 11y agoI believe to get this production ready will take some years. From what I understand in the projects FAQ page they want to implement the concept of a Unikernel and this is what the Rump Kernel at http://rumpkernel.org/ http://rumpkernel.org/ is intending too. May I am wrong because I am not to deep into it. If it is a research project then they should go on... It looks like it is because it is beeing developed at a university in Oslo, Norway. http://www.hioa.no/eng/ http://www.hioa.no/eng/
- anttiok 11y agoNo, a rump kernel is not an unikernel, check the FAQ linked from http://rumpkernel.org/ http://rumpkernel.org/ However, you can use rump kernels as a major component of a unikernel implementation. A rump kernel provides environment-agnostic drivers, meaning you can integrate them pretty much anywhere. Now, what is a unikernel? From my perspective it's essentially: 1) application 2) config/orchestration 3) drivers 4) nibbly "OS" bits So from the bottom, the nibbly bits include things such as bootstrap, interrupts, thread scheduler, etc. It's quite straightforward code, and a lot simpler that the counterpart you'd find e.g. in Linux. But you can't do much anything useful with the OS when that part is written. Drivers are difficult because you need so many of them for the OS to be able to do much anything useful, and some drivers require incredible amounts of effort to make them real-world bug compatible. Just consider a TCP/IP stack -- you can write one from scratch in a weekend, but the result won't work on the internet for years. Then you may need to pile on a firewall, IPv6, IPsec, .... A rump kernel will provide componentized drivers for free. The policy of if you use those drivers in a unikernel or microkernel or whateverkernel is up to you, but I guess here we can assume unikernels. The config/orchestration bits are actually quite an interesting topic currently, IMHO, at lot of opportunities to make great discoveries. Also, a lot of opportunities to use the rope in the wrong way. The applications depend on what sort of interfaces your unikernel offers. If it offers a POSIX'y interface, you can run existing applications, otherwise you need to develop them for the unikernel. Now putting rump kernels and unikernels together: the nibbly bits are straightforward, the drivers come for free via rump kernels, and those drivers provide POSIX syscall handlers, so POSIX'y applications just work. That leaves the config/orchestration stuff on the table. There's a rumpkernel-based unikernel called Rumprun available from repo.rumpkernel.org. It's essentially about solving the config/orchestration problems. Due to the rump kernel route, the other problems were already solved in a way which can be considered "good enough" for our purposes. Hope that clarified the difference between rump kernels and unikernels. (edit: minor formatting fix)
- timClicks 11y agoThere is actually an active unikernel project called IncludeOS (http://www.includeos.org/ http://www.includeos.org/), which could be a good place to start.
- hanez 11y agoExactly this is what the original post is about... ;)
- timClicks 11y agoUrgh, completely thought that the name was clobbered by a second project. Silly me.
- hanez 11y agoUh, he ist not a bot, he is not a bot, he is not a bot... :D
- nickpsecurity 11y agoMaybe it's a bot designed to promote IncludeOS. Gives a stock response to anything on the Internet that has IncludeOS in its name. That would make more sense.