Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finish porting the osFree OS/2 personality to Genode and L4Re #89

Open
prokushev opened this issue Aug 30, 2022 · 0 comments
Open

Finish porting the osFree OS/2 personality to Genode and L4Re #89

prokushev opened this issue Aug 30, 2022 · 0 comments

Comments

@prokushev
Copy link
Member

We have our OS/2 personality (OS/2 API implementation prototype) working under L4Env. Though,
it is discontinued, outdated for almost 10 years, so we need migrate to more alive environment. L4Env
is superseded by L4Re (http://os.inf.tu-dresden.de/L4Re/), so we, probably, need to port it to L4Re.
Also, very promising and quickly developing is Genode OS framework (http://genode.org/). Also,
Genode is promoted as a community-driven project , with a commercial company having the core
team, behind it. L4Re is mostly, academic project, though, it has more in common with L4Env (being
its successor). Also, L4Re is ported on more architectures than Genode. So, it is very promising too.
So, ideally, we need to port our OS/2 personality prototype to both of them. Currently, porting to
Genode is in progress. Also, there is a port to L4Re started too, though, some very basic functions are
implemented.

We mostly converted the OS/2 personality to more portable form. Now the missing parts are:

  1. L4Env-like region mapper functions. The most missing part in Genode is the l4rm_lookup
    analogue. So, we need to implement the accounting for VM regions ourself. The required functions
    implementation we need is contained in "ports-foc" repository for L4Linux port to Genode/Fiasco.OC.
    This is almost we need.

  2. Create the code for spawning a child process. This is required in os2srv for starting other servers
    and os2app instances. The example of the required code is in Genode's "loader" server.

  3. Refactor the code for KalCreateThread/KalKillThread/KalSuspendThread/KalResumeThread/KalWaitThread
    functions for both L4Env and Genode for more portability and code reuse. (platform-independent code, based
    on code for ThreadCreate/ThreadKill/ThreadSuspend/ThreadResume/ThreadWait, which are platform-dependent).

  4. Implement required address-space layout management, with using of managed dataspaces + using customized
    linker scripts to move some VM areas around.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant