4 ms·
Thanks for following our progress. I think this is a good question. Before getting into "reasons for NixOS", I just want to note that our headset is still an o
by georgewsinger 5y ago
Thanks for following our progress. I think this is a good question.
Before getting into "reasons for NixOS", I just want to note that our headset is still an open-source Linux flavored project, which means that if you don't like our choices, you are free to install whatever Linux distro you want on it. =] You'll probably want to use Simula's window manager, but even here there will be other choices as well (xrdesktop, Stardust's display server, and so forth).
NixOS is definitely an opinionated distro, at least in terms of how it allows developers to configure a system. However, as builders, we view it as our job to make informed, opinionated choices on what the defaults are. (To be clear, not saying we can never be wrong or learn from these choices). Here are some reasons we chose NixOS as the basis for our VR distro:
1. *NixOS allows us to provide the best support to our users.* Simula itself (https://github.com/SimulaVR/Simula https://github.com/SimulaVR/Simula) is built over nix build tools, and we have the most experience and comfort with that ecosystem. This means we are able to solve other people's issues much easier using our own familarity with the system if things go wrong.
2. *NixOS allows for system rollbacks if something goes wrong.* If either we or a user accidentally torches a headset, NixOS makes it so that all they have to do to get things running again is rollback to the most recently working configuration in the boot benu, and the problem is solved. This is particularly important for a beta/early adopter product like ours, and makes it more manageable for us to support things if things go wrong.
3. *NixOS allows us to iterate faster/release headset updates more quickly.* Using NixOS allows us to push frequent (and non-breaking) system updates much more easily than other distros, which is important for an early/iterative product like ours.
4. *Using Nix[OS] allows our software components to work on other distros.* Building all of our software components over nix allows us to support as many Linux distros as possible. This is important so that we can support, e.g., our Tethered headsets when users connect them to different Linux hosts. It also makes it easier for us to support users who change their Linux distro, but still use some Simula components (e.g., our VR window manager).
5. *A disproportionate number of existing Simula users run NixOS.* Despite NixOS being a "niche" distro, we've noticed a shocking number of people (at least in our Discord) run NixOS already, which makes us more comfortable with the choice.
- ryukafalz 5y agoAn underappreciated benefit of the functional distros (Nix/Guix) for specialized hardware like this is that reproducing the original image (potentially with some tweaks) is very straightforward. For Guix this is just a 'guix system image' with essentially the same 'operating-system' declaration you'd use to configure your system normally; I don't have much direct experience with Nix but I imagine it's fairy similar. Provided you distribute the system config (and I can't imagine you wouldn't), building a slightly customized version of the image should be easy. By contrast, it is not clear how I'd build e.g. the customized version of Ubuntu that a laptop manufacturer might ship.
- vineyardmike 5y agoThank you for the great reply! I hope I didn't come across as mean spirited, I spent the whole day worried. My comment was meant to be critical but not dismissive - I feel like your response truly educated me as to how Nix could provide meaningful solutions. Again, keep up the great work, and hopefully one day in the near future I'll be able to try out Simula in person!
- georgewsinger 5y agoNo worries! I enjoyed the discussion. And thanks for your interest in Simula. Can't wait for you to be able to try it out in person. =)