minexew / templeos-loader

User-space loader for TempleOS
4 stars 6 forks source link

Investigate possibility to run directly in host kernel #16

Open minexew opened 4 years ago

minexew commented 4 years ago

The loader could then provide a sane interface for TOS to access hardware (input, block devices, video, network, USB). You would still have the full TempleOS environment with a high degree of compatibility, except you don't need to care about x86 quirks anymore, and you get hardware support "for free".

Best of both worlds?

Note: host kernel doesn't necessarily have to be Linux, could probably be also BSD. However Linux is, in my understanding, more self-contained, so it should be easier to do.

minexew commented 4 years ago

For the host-guest interface, we can draw inspiration from QEMU's virt machine

tos11 commented 4 years ago

This is definitely possible and would be a lot of work. The thing that worries me the most is would this be significantly faster than running Temple OS under QEMU with KVM enabled when it is all said and done?

minexew commented 4 years ago

Significantly faster? Probably not. But that's not the point. The point is to be able to run on physical hardware!

Do you think the big amount of work would be in understanding how to integrate with the kernel, or in writing new code, or both?

tos11 commented 4 years ago

I don't really have a good feel for how much work it would be. If I were going to do it, I would just do keyboard, mouse, block devices, PC speaker, and video. I wouldn't do anything with USB or networking without the help of having access to a real Linux user space as well.

I do get the feeling that it would probably be just as easy to do everything in user space. Also I think most people are going to want to be able to use all the programs that come with a standard Linux user space in addition to Temple OS?