1. 18
    1. 12

      One of the key benefits of zVisor is its use of the Zig programming language.

      I am at this point completely fed up with the implementation language of a program being touted as a feature or “key benefit” of that program. Microsoft GitHub encourages this behavior because if you want your repo to attract contributors or certain flavors of users it probably helps your SEO to put the language in your description. But the choice of language is a developer benefit, not a user benefit. Crowing that you’re wise enough to use Haskell/Zig/Go/Rust/C/TypeScript or whatever else before you explain what your program does makes me feel like your core audience is other people who think your language is the good one, not people who want to use your software to get something done.

      1. 5

        As someone who writes quite a lot of Zig, I 100% agree and am fed up as well.

      2. 5

        Interestingly, my first thought seeing such things is indeed “Why?”, because there are already tons of implementations and for the hypervisor part they are basically mostly wrapping the KVM interface that is readily available in Linux and by the means of an ABI available to any programming language.

        Otoh, I totally appreciate people exploring reinventing the wheel to learn more about wheels. And then you get way too excited about how round your wheel is in comparison to others. Human behavior.

      3. 4

        I’m also skeptical about the claim that Zig is “memory-safe.”

        1. 2

          That’s exactly the problem with this kind of thing, it entirely lacks the nuance of the real world and instead talks in absolutes.

          Does Zig have better spatial memory safety than C? Yes it does, slices and pervasive bounds checking make a big difference here.

          Is Zig as memory safe as something with a garbage collector? No, at least not in its present state.

          1. 1

            Yup, fully agree.

        2. 2

          I am skeptical of any language that makes the following two claims:

          • Can be used to implement a hypervisor
          • Is memory safe

          A hypervisor manipulates address translation. It deals with things below the level of an abstract machine that provides an object model (memory-safe or not). You cannot have both properties in the same language. Pick one.

      4. 3

        I hear ya, but to a user, when I see something is written in rust, go, or zig, I know I’m going to be able to run it far easier than something written in ruby, python, or node

        1. 1

          That’s true enough, though sufficiently diligent OS packaging can mitigate the usual issues with the latter.

      5. 3

        But the choice of language is a developer benefit, not a user benefit.

        Are the users of a hypervisor so lacking in technical skills?

        I’m far more interested in tools I can modify and extend (without significant effort) than in tools I can’t. Being written in any of the ten or so languages I can already use is a big plus.

        1. 3

          Are the users of a hypervisor so lacking in technical skills?

          In the general case, yes.

          How many users of QEMU/KVM do you think wish it was easier to delve into its source code compared to how many just want their VMs to run properly without difficulty?