Re: [PATCH v2] Implemented Read-Only File System (ROFS)

2018-02-02 Thread Waldek Kozaczuk
This one is identical to previous patch except it states v2 to clearly indicate it is 2nd version of the original patch I sent in December. It is essentially a minimal subset of ROFS implementation without cache layer. It also does not include unit tests. I will be sending a followup patch to

[PATCH v2] Implemented Read-Only File System (ROFS)

2018-02-02 Thread Waldemar Kozaczuk
The Read-Only File System (ROFS) is a simple implementation of a file system where data from disk can only be read from and never written to. It is simple enough for many stateless applications deployed on OSv which only need to read code from local disk and never write to local disk. The ROFS is

Allocating and switching to larger stack during syscall

2018-02-02 Thread Waldek Kozaczuk
I am trying to implement the idea that Nadav proposed to save memory when implementing callstack switch during syscall. Here is excerpt from our conversation: " > > I was also wondering that existing implementation of syscall stack makes > every app thread allocate it upon creation eagerly

Re: Exodus: Lightweight relocation engine. Useful?

2018-02-02 Thread Rick Payne
On Fri, 2018-02-02 at 16:28 -0800, Dan Kaminsky wrote: > That's where I hit my wall, but it seems pretty much a bullseye on > your wheelhouse. Suggestions? I saw the exodus announcement too - very nice. I wondered if you could alter it to emit a C program that dlopen()s the binary, looks up

Exodus: Lightweight relocation engine. Useful?

2018-02-02 Thread Dan Kaminsky
Good news -- some of the code I was hoping to build just came out, and since I didn't write it, it's actually pretty good :D https://github.com/Intoli/exodus or: pip install exodus-bundler Run: exodus ssh -t | tar xz And you get a self contained binary distributon, for most things short of

Re: Exodus: Lightweight relocation engine. Useful?

2018-02-02 Thread Dan Kaminsky
So Exodus will in fact compile an executable, via dietlibc or musl, but it's an execve wrapper, and it seems you've stubbed that. You have to change the relevant line in src/exodus_bundlers/launchers.py to: args = initial_args + ['-shared', '-fPIC', '-O3', input_filename, '-o',