Arc - First system loader ever made for Picotron
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.
Warning
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.
How to use Arc
- Install arc via
load #arcsystem
- Ensure you have network setting on and have access to a network!
- Run arcsystem and install it.
- Now you can access to system selector.
- Download any system you want and put them under
/system/{name}
. - Now you can run arc again, select your system and reboot to your selected system!
- If you ever want to delete it. Go to your drive folder on %appdata%/Picotron/drive and delete
/systems
and/system
.
Technical Information About How It Works
Installer:
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.
Custom booter (boot.lua)
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.
Github
- Arc System Loader: https://github.com/TunayAdaKaracan/arc-system-loader
- Demo System: https://github.com/TunayAdaKaracan/dev-system
Arcsystem 1.0.0 is here!
We spent hours of work to this version and there is still to add so many things!
Changelog
- Added safety features to boot.lua. A system crash will revert back to picotron. If picotron default os is faulty, deletes
/system
folder. - Installer new GUI from 369px!
- New bootscreen feature!
?store_metadata("/systems", {type=1})
I know it might seem a few changes. But it is really indeed hard to develop such an app. The amount of crashes we had, it was pretty hard to debug and sometimes we spent hours trying to find simple mistakes. On the next update, you will see much cooler things!
Update for 0.1.0h
Hey arc system users, as you might have noticed an issue with arc after updating your picotron to 0.1.0h. We temporarily released an update for the issue. In any case, you have to delete your /system
and /systems
(do not forget to back up any custom OS you might have). And re-install the arc. This was our first time that we saw an update on Picotron and we weren't ready for it. We will work on a update protection system. Sorry for the inconvenience.
Update 1.1.0
Here’s an updated version including your message about not being able to work as much:
Hello everyone,
I’m excited to announce a major update to arcsystem, though I apologize for the delay in getting here. I haven’t had as much time to work on it as I would have liked, and I’m sorry for that. But now, after a long period of development, I’m happy to share what’s new.
What’s changed? From the user’s perspective, not much is visibly different. But behind the scenes, we’ve made significant improvements: better debugging, stronger security measures against Picotron updates, and a complete overhaul of our boot screen.
Previously, the boot screen was just a replica of Picotron running our selector app, adding unnecessary overhead. Now, we’ve rebuilt the boot screen from the ground up. It still functions as its own OS but is no longer dependent on Picotron and is now reduced to just a few lightweight files. As a result, the boot speed has increased by several fold!
Thanks for your patience and continued support!
[Please log in to post a comment]