Some of you might have heard that I am planning to get a bunch of different Raspberry Pis for later testing if my Game works on them (and maybe i get some other fun ideas). This means I will need some Operating Systems to run on them that aren’t just Raspian. And ofcourse I need to know which ones in advance so I know how many cheap Micro SD Cards to get (all 32GB or below).
Here are the Options that I am already considering, if you have to say something about those Options or want to Suggest more Options then go ahead. ^^
Raspian (kinda a duh one, gonna need multiple Micro SD Cards on that one)
Arch Linux (probably not really needed due to inheritance, but it’s popular so its on the List)
Linux Mint (also a popular one)
OpenSUSE (I happen to have seen that one used at University, so why not)
Knoppix (if nicely doable)
Pop! OS (specifically because people already use it for Gaming on Pis)
OpenBSD (though not sure if I can get things to work with its default max security configuration)
FreeBSD (because it’s the most popular BSD)
NetBSD or FreeNAS (totally not just because I plan to use one of the Pis as a NAS) Redox (a Rust based OS, I hope that one works on ARM processors, lol)
Android based OS. Maybe Prime OS. Windows 10 (just to say NOPE)
There we go, let’s see if there is any ARM Processor Compatible OS that I am missing.
It’s possible to build applications that run ‘as’ the kernel, they need a bit of hoisting if you don’t want to make it yourself, libraries generally fix that, but it’s not entirely uncommon in the C++ (and Rust recently it seems) worlds. Even OCaml (a GC language) has such an embedded single-application kernel as well called MirageOS. ^.^
In general though they are for making highly compact container images for minimal size as of late.
So are you telling me, that in theory I could make my Game, put it on a USB Stick, and boot from that USB Stick in order to run pretty much everywhere? Though I probably need Drivers too so that’s a dumb Idea.
So a while ago I saw Redox-OS a Rust based operating System and edited it in the List above, but now that i look more closely I dont really know where the fuck to find its actually usable Releases, because it seems like a “you have to compile it yourself” kinda thing.
That’s super common for kernels (and generally super easy), so the kernel gets configured with the information it needs to run on the hardware for maximum speed. Let’s see, it looks like that just involves running make all and it does it all for you, so yeah pretty simple. It looks like it only handles 64-bit x86 systems so far but seems open to build on others once their bootstrapping processes are added, so unsure if it would work on an rpi currently. Ah, there is currently a GSoC project going on to add arm64 support, specifically to support the rpi, so although the rpi is not supported yet, it looks like it will be fairly ‘soon’.
Looks like a fun thing to mess with, still very incomplete but it seems they are trying to build a lot more than ‘just a kernel’, it has a windowing system and all.
Running make all on which Device? it can only run on the Pi if the Pi itself has another OS on it already to run make all.
So I presume install Raspbian on the Pi, run make all, take the results and uhh transfer them over the network or a USB Stick and then putting them on another Micro-SD Card. Oh wait i have multiple Micro SD Card Readers, because dongle-tastic USB Hubs tend to include those and I like multi-functional stuff.
Think of it this way, you compile it for the rpi/arm64, that way it knows what drivers it needs to include, rather than including ‘all’ drivers and testing to see which needs to be used. This is common on high-end servers. Like back in my FreeBSD days I’d customize the kernel to only load what was needed for the hardware and set optimizations for it then I’d make world and come back the next day, not only would the kernel be recompiled but so would all applications with the additional optimizations for that specific kernel build (make world remakes everything with the configuration and patch set you’ve set as default).