Arc system loader, or shortly arc is a system made inspired by multi-booting in computers. Arc tries to replicate this behaviour by mounting /system on host and switching between systems as user wants.
This can open door to new systems and more customizations! You can make your own changes and publish them on net so everyone can try it.
Arc is still in very early development. And the development takes time as the only source to debug this kind of system is via logs. I have to personally test tens not if hundreds of ways to achieve such problems. Initial release took about 15~ hours to make -it is not even that long!-. If you want to contribute to project you are free to. Github links below.
Installer creates a new folder with name of /systems
. This is where your systems are stored. By default your current /system
is copied to /systems/picotron
. It is always the default system. Any modifications made by you persists.
While copying, boot.lua
is renamed to sysboot.lua
which is entry point of any arc system.
The reason is that boot.lua
is replaced with custom boot file that copies selected system from /systems/{name}
to /system
and runs sysboot.lua
. More details on boot.lua
section.
After creation of systems folder and copy operation, /system
directory is mounted on host. However, any changes made to /system
does not persist. More details on boot.lua
section.
Then boot.lua
gets downloaded from github repo and is put under /system
Finally, metadata of /system
is set to {system="picotron"}
. You can access the current system via fetching metadata this way. Which is a huge + considering there might be apps that targets to work on multiple systems.
The job of boot.lua is pretty simple. It fetches current system from /systems
folder.
After fetching, it prepares /system
folder by removing anything inside /system
folder and then copying everything from /systems/{selected system}
to /system
.
Finally it fetches /system/sysboot.lua
, loads it and runs it.
Any more details of how they really work can be found on files.