-
Notifications
You must be signed in to change notification settings - Fork 302
Loader #98
Comments
Probably the "easiest" thing would actually be to have each executable run This probably isn't much more difficult than supporting elf or other -- Ben On Wed, Jul 8, 2015 at 2:32 AM, Mason X [email protected] wrote:
|
However, I fell like this loader should not be a part of the OS, but instead a program that you can run. |
My idea was that it could be part of a shell
|
So the intent is for the shell should provide a relocatable loader? Elf or -- Ben On Fri, Jul 10, 2015 at 5:53 PM, Katze [email protected] wrote:
|
My intent was to have a shell, which is a shell, and a loader, which So we would have the kernel being minimalistic. But that's only one possibility. |
The thread started out as a discussion for how to handle multiple apps My thoughts so far, that would keep the kernel minimalistic but capable of Care to clarify which intent (or some other) you have in this regard? I -- Ben On Fri, Jul 10, 2015 at 6:15 PM, Katze [email protected] wrote:
|
The loader I'm currently thinking of is just an app which can load(and relocate) another binary into memory and jump to the start of it. This could be used by a shell to start another binary. But first of we need to be able to load an executable. If this kernel is 'just' starting VMMs its basically a Hypervisor Hypervisor and not an exokernel. And if you want to load multiple VMMs you'd need to load them to different locations, too. |
@scherrey Sorry for making that ambiguous. I edited that comment. |
We can already load an executable. Only a binary, but an executable one. So if someone make a program called "loader" that reads some e.g. elf file, parses and loads it (via paging so multiple instances can be run simultaneous) and provides that functionality to the program it just loaded, the underlying program could set up a fully working environment with process isolation and the usual stuff while keeping the kernel a simple exokernel. |
A part of this functionality was built into the CLI in the past. The CLI would begin and look for an app on the disk called 'start.app'. If it existed then it would be loaded and executed automatically. This function was removed for some reason I can't recall at the moment. Probably because it was limited to a specific app name to work properly. I guess we sort of need an |
I think in the long term it would be best to choose what application is started first by the OS (currently hardcoded to the cli) by calling it a certain name (start.app, init.app ... the name is not a matter of this discussion) where the default would be to start a shell reading and executing another file (start, init ...) as shell script this hypothetical shell can then be build in another repository |
I was playing with the idea about writing a simple loader for BareMetal OS so that it is possible to start another app while running (i.e. a shell starting a application or a application and a network stack running in paralell)
I have some ideas but i don't know which to try out first:
If anyone has some advices or suggestion, feel free to post
The text was updated successfully, but these errors were encountered: