Earlier quoted context omitted.
(I work for Includeos) I don't think we need to run everything. I think we'll be happy if we can take some common libraries and compile them and they work. That is currently our goal. Down the road, depending on interest, we can perhaps expand a bit. >> Moreover, since implementing a system call is typically pretty simple [...] > You're in for a fun ride, folks. Thanks for the heads up. It was meant as opposed to imp…
That sounds much more attainable than what the blog post suggested - sorry if I took that the wrong way!
Linux compatibility in IncludeOS
21–30 of 36 posts
Re: Linux compatibility in IncludeOS
#22Earlier quoted context omitted.
The number of system calls says close to nothing of the actual API surface present here. It's a poor measure. What actually matters is: what can I run? That said, 42 is not enough to run a lot of applications. It'll be interesting to get to the point where they can run a language's runtime or unit tests. Take it from someone who worked on gVisor: this is gonna take a long time, and eventually you'll end up with a sys…
Given what I just read about IncludeOS (I'm not really familiar), it feels like implementing as much of musl as possible is probably the best you can do compatibility wise. There are going to be a lot of Linux features simply incompatible with includeOS, so claiming that 400 syscalls will be implemented is unlikely. That said - why do you have to get musl compatibility by implementing the Linux syscalls? Is contribut…
Wrt. to why we have to implement Linux-like syscalls; Musl is written specifically for Linux so in order to "unlock" the relevant POSIX-bits that Musl can provide we have to provide the underpinnings that Musl requires.
I'm hoping we can upstream some of our non-intrusive changes to Musl. However since Musl has a very specific purpose (a Linux-specific C and POSIX library) I'm not certain that our changes are within the scope of the project. To date we've only concerned ourselves with a small subset of Musl and only on amd64.
Re: Linux compatibility in IncludeOS
#23If you're into unikernels, rumpkernels[0] are the least-modification-required approach I've seen. Basically, if you compile your program with a minimally (as minimal as is possible) modified compiler, you get "rumprunnable" output. there's a list of popular packages built to run on rump kernels[1] (Rust is supported[2]). I haven't tried to use the toolchain yet, but it's pretty appealing to me. The biggest issue is t…
Last I heard the author of Rumprun has picked up beer brewing full time and isn't interested in maintaining the project.
It would be great if someone where to pick it up.
OSv is also very relevant. They provide a much richer and more compatible runtime environment compared to IncludeOS (I think they even have zfs). And OSv is pretty active these days, so if you looking for a way to run some high performance stuff OSv is worth looking into.
Re: Linux compatibility in IncludeOS
#24Looks like Linux syscalls are becoming some kind of de-facto standard. They are already implemented by Linux, FreeBSD, Windows and now IncludeOS.
Not because Linux is a bad kernel, mind you, but because UNIX itself reeks of ideas that were ok when it was originally developed and clunky at best today. Even Microsoft seems to have given up. The future of computing looks pretty grim to me.
Re: Linux compatibility in IncludeOS
#25Re: Linux compatibility in IncludeOS
#26I'm pretty ignorant on Unikernels so maybe there's another solution, but not being able to `fork()` is a significant problem for many applications.
My understanding is that unikernels are single-application by design. I agree that a mechanism to spawn other apps is useful, but in this case it won't be a simple fork but the creation of a complete new os instance.
Re: Linux compatibility in IncludeOS
#27Looks like Linux syscalls are becoming some kind of de-facto standard. They are already implemented by Linux, FreeBSD, Windows and now IncludeOS.
The mind reels. Not because Linux is a bad kernel, mind you, but because UNIX itself reeks of ideas that were ok when it was originally developed and clunky at best today. Even Microsoft seems to have given up. The future of computing looks pretty grim to me.
Re: Linux compatibility in IncludeOS
#28Would it be possible to run Linux as a unikernel and port your application as a kernel module? How a leaned down Linux kernel would compare to includeOS?
A leaned down Linux-kernel with the application linked into kernel space would be pretty comparable. But it would be pretty enormous beast.
Re: Linux compatibility in IncludeOS
#29Earlier quoted context omitted.
My understanding is that unikernels are single-application by design. I agree that a mechanism to spawn other apps is useful, but in this case it won't be a simple fork but the creation of a complete new os instance.
There are plenty of applications that used multiple processes.
Re: Linux compatibility in IncludeOS
#30Can someone point me to a more detailed overview of IncludeOS than the brief summary they have on their home page?
https://www.youtube.com/watch?v=h7D88U-5pKc (one hour, quite entertaining).
There is also the original paper which was presented at the 2015 IEEE 7th International Conference on Cloud Computing Technology and Science (CloudCom).