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

docs: Write about high-level design goals #4

Open
perlun opened this issue Jun 15, 2017 · 0 comments
Open

docs: Write about high-level design goals #4

perlun opened this issue Jun 15, 2017 · 0 comments

Comments

@perlun
Copy link
Owner

perlun commented Jun 15, 2017

  • ABI and/or API compatibility with Linux and/or POSIX. Can be thought of in different forms:
    • Be able to recompile Linux/POSIX programs with a minimal set of changes (ideally, none), i.e. source-level API compatibility, or
    • Be able to run Linux/POSIX programs without modifications (binary ABI compatibility)
    • Be able to load Linux kernel modules without modifications. We need to target a specific Linux kernel I think, perhaps 4.9.32 (current LTS version). This would be incredibly cool since it means we could jumpstart the development and use ready-made components from Linux as a form of "lego" blocks. I.e. the ip module (TCP/IP subsystem) could be use straight away, and the same with block devices, file system implementations, etc. This forces cocOS to be very compatible with Linux of course, but it would be cool to see if something this could actually be pulled through.

The end goal: be able to run an unmodified Debian/Ubuntu userland on top of cocOS, and do stuff like this:

$ sudo apt-get install nginx
$ gcc -c file1.c

...etc. Think of it of something like Windows Subsystem for Linux, but instead of running it on top of the Windows NT kernel, it would be running more on "bare metal".

Is it doable to achieve something like this as a one-man project? I don't know, I haven't tried yet. 🤣

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