1. 11

PDF: https://freebsdfoundation.org/wp-content/uploads/2022/04/Journal-MarchApril-2022.pdf

  1. 3

    What are the viable options for personal/hobby general computing in the ARM64 space? I would like some recommendations for a commodity workstation that drives a couple 4K screens and serves a dozen TB storage, while not breaking my bank.

    1. 2

      On a laptop space Pinebook should work fine.

      For desktop systems check this list:

    2. 2

      I am hopeful that riscv64 will be next.

      1. 7

        It will be a while. 32-bit Arm and MIPS (any variant) never made it to tier 1 for roughly the same reason: the inability to define a platform. Arm used to be a complete mess, different boot processes, different UARTs, different interrupt controllers, and so on. Basically everything that you need in early boot was different on boards, so it was very hard to target ARMv6, you needed to target specific SoCs. This improved a lot and by ARMv7 it was more or less possible, but most of the interest moved to AArch64 platforms by then. Arm now has a couple of specs for complete systems, which make it far easier to produce a portable image.

        RISC-V is trying to define platform standards but vested interests are not helping: existing SoC vendors all want their (usually not-very-well-designed) core components to be part of the spec and are reluctant to engage in a process of designing things based on experience. I also have no idea what the patent space for interrupt controllers looks like. I wouldn’t be surprised if there are things related to virtualisation that are patented by Arm or Intel in different variants, negotiating around that is probably not fun.

        MIPS was even worse because every vendor wanted to ship something that was, generally, R4K + some extra stuff. Privileged mode on MIPS was not part of the core spec (it was a separate coprocessor, though generally not a physical coprocessor on later machines) and so anything that didn’t just copy R4K had different ways of manipulating virtual memory (some of the Cavium parts had hardware page-table walkers, R4K had a purely software-managed TLB, but some R4K-derivatives had different variants on the software-managed TLB). Some booted the same code on every core and required them to read the core ID (using a coprocessor-0 instruction that wasn’t universally supported) and spin if they were not core 0 until they received a notification that the initial thread had booted, others started only one core running until they received an interrupt.

        Worse, on MIPS, most of the CPUs also had a load of ISA extensions. If you targeted MIPS III then code would run, but often at a fraction of the speed of targeting the supported extensions. If you targeted the extensions then your binaries weren’t portable. This made shipping a package repo basically impossible. This is likely to be the case with RISC-V as well. The privileged extension is not great, so I expect a lot of the Chinese vendors will see it as space for differentiation and do something better and ship their own patched Linux. The userspace ISA space has a huge number of extensions already. You can target some lowest common denominator (I think the Linux distros are aiming for RV32IADMFC or similar) but a bunch of things get a big speedup from the various bit-manipulation extensions or either the vector or SIMD extensions. If you don’t require them then your binaries will be slow, if you do then you’re reducing the number of cores.

        I don’t know if fragmentation will kill RISC-V but it killed MIPS and it prevented Arm from attaining any kind of dominance for 20 or so years until they started aggressively killing it off (a few companies still have licenses that allow them to ship ARMv4 + arbitrary extensions but I don’t know of anyone who has done so for well over a decade). It will definitely not help grow a software ecosystem outside of platforms that have well-funded app stores that can recompile everything on the server for every target variant. That’s not something that a community-funded open-source operating system can afford. Especially for a platform that is so hostile to FreeBSD (all of the feedback from the folks like Andy and Ruslan doing FreeBSD bringup on RISC-V was rejected because ‘Linux doesn’t need it’).

      2. [Comment removed by author]

        1. 5

          What context do you need to FreeBSD bi-monthly Journal that has been released today?