This is not the highest priority, but something to think about. Eventually, I think that programs should be able to store metadata. This should probably just be a third segment aside from the code and data segments. We can then leverage the assembler's logic to parse it.
Each field should have a name string (null-terminated?), followed by u32 length, and then some data. The data could be string for string fields, or binary data in the case of something like an app icon.
What kind of info do we want to store in the medatata?
program name (string)
version? (string)
short description (string, up to some number of characters, e.g. 255 chars)
Flags, such as specifying whether JIT compilation support is enabled, jit_enabled
This allows the program to write to its own code segment while running (implement a JIT)
May want to specify an address range or min address?
An icon to be used in a GUI, e.g. icon_32x32, RGB24 data
A list of required syscalls for the program to run
This is not the highest priority, but something to think about. Eventually, I think that programs should be able to store metadata. This should probably just be a third segment aside from the code and data segments. We can then leverage the assembler's logic to parse it.
Each field should have a name string (null-terminated?), followed by
u32
length, and then some data. The data could be string for string fields, or binary data in the case of something like an app icon.What kind of info do we want to store in the medatata?
jit_enabled
icon_32x32
, RGB24 data