[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)