Rudster816 wrote:In short, if you actually want the possibility of other people using your OS with a managed userland, proving a backend for LLVM is the obvious way to go.
Choosing LLVM bytecode would go against the core architecture of my OS and the reason I choose to use bytecode in the first place. I'm not trying to attract as many users as possible, I want to develop the kind of OS I dream about.
LLVM's bytecode is about being a common instruction set for front ends to compile to, allowing the backend to deal with platform dependent code generation and optimisation.
My bytecode is about aiming for memory safety and inter process compatibility (shared interfaces and objects), as is more akin to Java or .Net bytecode.
Rudster816 wrote:If you can emulate or provide basic POSIX calls, you'll make your job a lot easier. But that pretty much goes without saying.
I could always implement a userland POSIX compatibility layer that allows you to run binutils, GCC, bash. But at this stage, I really don't care about making Yet Another POSIX Clone.
I got into OS development for the beauty of starting from scratch - for building the perfect software platform. My aim isn't to get people running Bash, KDE, Firefox on top of my OS to the point where it looks, behaves, and feels like any other UNIX compatible system.