[HN Gopher] Spectrum OS: a declarative, reproducible, compartmen...
___________________________________________________________________
Spectrum OS: a declarative, reproducible, compartmentalized Linux
Author : SkyMarshal
Score : 65 points
Date : 2021-09-14 20:45 UTC (2 hours ago)
(HTM) web link (spectrum-os.org)
(TXT) w3m dump (spectrum-os.org)
| lijogdfljk wrote:
| This is interesting. One of my major complaints of Nix (of which
| i'm typing on, NixOS) is that my app states easily clobber each
| other. Ie moving between large nix changes can break, and even
| rolling back is broke, because the state is not managed in the
| same safe way that apps themselves are.
|
| If this solves that problem i'd definitely be interested in
| trying it out. As the only thought i had was manage to put 100%
| of my state into my nix config which seems.. a nightmare.
| fouc wrote:
| I'm surprised the app state isn't backed up so that rolling
| back restores it?
| account-5 wrote:
| How does it compare to NixOS?
| X6S1x6Okd1st wrote:
| Looks like this is a distro based off of nixos
| outworlder wrote:
| Doesn't seem to be the case. They are using Nix too(the
| package manager), but I couldn't see other similarities.
|
| I think they are completely different from NixOS. For
| starters, they want to run every app inside crosvm.
| eyelidlessness wrote:
| From their Design page:
|
| > Spectrum will, for now, be a Linux-based system, derived
| from NixOS.
| outworlder wrote:
| Glad to see that they are using Nix, was momentarily concerned
| about duplication of effort.
|
| I've moved all my machines to NixOS, and even replaced Homebrew
| with Nix on my work OSX laptop(with home-manager). It's a rather
| refreshing system. Being able to use nix-shell and temporarily
| install one-off packages is also great.
|
| The motivation behind this system sounds great.
| amelius wrote:
| Does it allow the user to debug all threads of the OS in
| lockstep? Because _that 's_ what I call reproducible.
| voidnullnil wrote:
| Wow so many commas. Must be good.
| imwillofficial wrote:
| Would this be comparable to QubesOS?
| bttger wrote:
| They wrote something about it here: https://spectrum-
| os.org/motivation.html
| mrobot wrote:
| Some more history here https://alyssa.is/leaving-freeagent/
| throwaway984393 wrote:
| It's a nice idea but it won't gain traction as it's still
| designed with 2000's era computing in mind. Nobody manages an
| entire complex system within a specific Linux distribution
| anymore. There is a vast ecosystem of tooling, systems,
| protocols, networks, services, that comprise modern distributed
| systems. All of these things exist outside the scope of a Linux
| distribution.
|
| In fact, I will predict right now the death of Linux as a
| dominant backend computing platform. It's sort of happened
| already. Sure, Linux is the kernel that runs the host machines
| that the cloud runs on. But the services are all either
| serverless/kernel-less, or they run on micro-vms running either
| Linux or another kernel. All the i/o through Linux is just passed
| to an outer layer with a universal adapter, so you can mix and
| match filesystems, logging platforms, policy governance,
| orchestration, scheduling, etc.
|
| Linux will still be around in one form or another, but long gone
| are the days where most people define their system or security
| based on a particular Linux distribution. Hell, most of the
| software used in the cloud today isn't even packaged by distros.
| Linux has become just a kernel again, and its userland no longer
| matters.
| 1MachineElf wrote:
| Latest update from the developer: https://spectrum-
| os.org/lists/archives/spectrum-devel/202108...
| throwaway894345 wrote:
| > The host system and isolated environments will all be managed
| declaratively and reproducibly using Nix, a purely functional
| package manager
|
| Nix seems cool, but all of my forays into it have been so
| unpleasant as to be unworkable. It seems to work well enough if
| all of your dependencies are already in the Nix store and have
| been thoroughly tested, but as soon as one has to start writing
| Nix packages themselves it's a train wreck: the peculiarities of
| the Nix expression language, the chaos and lack of documentation
| in nixpkgs, the immense understanding one must have of the common
| low-level libraries used to create Nix packages, and you'll still
| spend tons of time trying to package obscure C dependencies with
| their own bespoke build systems.
|
| My constructive feedback is:
|
| 1. Add types to the Nix expression language so someone digging
| through the code can have _some_ idea about what needs to be
| passed into various functions. This would probably help people
| traverse nixpkgs as well, since the client code will need to
| "import" the types of its arguments.
|
| 2. Make Nix more syntactically familiar. Familiarity here seems
| like it should be more important than innovating on programming
| language syntax. Thanks for not going full-Haskell on us, but it
| would be nice if looked more like JavaScript or Python or
| something that virtually any programmer could look at and
| recognize (I'm no great fan of either of those languages).
|
| 3. Very controversial, but the whole industry needs to minimize
| the number of C and C++ dependencies. Not only are these
| languages fundamentally insecure, but projects in these languages
| have their own bespoke build systems which assume dependencies
| are already installed at the correct versions and in the correct
| paths. Packaging these projects is _painful_ , and it's largely
| the reason we have package maintainers who specialize not in
| building programs of a certain language, but in building certain
| dependencies.
| tinco wrote:
| > Thanks for not going full-Haskell on us
|
| It would have been so much better if they went full Haskell.
| Haskell is better designed as a language, it has types and
| could support all Nix features without modification as far as I
| can tell. On top of that it's a common language that most have
| used at least in university and has loads of friendly tutorials
| online.
|
| Totally agree on the packaging of C/C++ projects is a drag of
| our entire industry and basically a complete embarrassment.
| SkyMarshal wrote:
| I'm relatively new to NixOS but this is my sense of things
| too - it might have been better to use a subset of Haskell
| for the Nix package manager, instead of a new untyped
| language.
|
| That said, I'm still new to it, so maybe there are good
| reasons why not to. And I hear that types are being looked
| into for future upgrades to Nix.
___________________________________________________________________
(page generated 2021-09-14 23:00 UTC)