Explore a range of niches that computer systems fit into.


::: Niche/1: Real-time systems

    Platforms that must work well.
    
    Many have life-and-death stakes.

    Key qualities

        Device should never cease working correctly.

        Common use of timing guarantees, which must be met.

    Examples,

        Computers driving manufacturing equipment

        Drive systems in motor vehicles


::: Niche/2: Early home system

    Console driven system with no network.

    Traditional examples were 8-bit.

    Modern take on this genre,

        Maximite
    

::: Niche/3: Racing dinghy

    Responsive, single user systems.

    Key qualities

        Developer interacts with the system bedrock.

        Sound and graphics

        Small kernel with support for multitasking

        Lightweight desktop, if any.

        User is all-powerful

        System ships with tools for interacting with the bedrock.

    Historic systems tended to be weak on the last point.

    Examples

        MikeOS

        TempleOS

        Amiga. Well-architected platform. Bundled dev tools were weak, but
        sufficient for a skilled user to bootstrap. Strong third-party tools
        available.

        Atari ST. Well-architected platform. Did it ship with dev tools?
        Strong third party tools available.
        
    Some other systems that come close

        VGA PC era. DOS, OS/2, Win95 and Win98 shipped with a limited machine
        code monitor, plus DOS or REXX, which could be used for scripting.
        Platform awash with legacy complications (e.g. a20 gate). Strong
        third-party tools available.
        
        Transport Tycoon. This DOS game demonstrates many of the qualities of
        a racing dinghy. What would complete the vision is if it offered a
        console and programming tools that allowed the user to directly
        interact with the event loop.

        Apple IIGS. Limited by legacy constraints. Bundled dev tools were
        weak, but sufficient for a skilled user to bootstrap. Better after
        market tools were available. Excellent audio capability.

        Macintosh, before OSX. System came with no dev tools. If you installed
        python on it, you could break out of the python sandbox and do as you
        liked. Underlying 68k is the same CPU architecture as Amiga and Atari.

        JVM, CLR. You can build a universe within these systems. A challenge
        is that they tend to live on top of yachts. With a lot of effort, you
        can strip an underlying linux layer and achieve a high level of
        mechanical sympathy. Examples: LMAX, INET.

        RetroBSD. Unlike modern unix systems, has no memory protection. Offers
        a unix userland including strong array of dev tools (assembler, c,
        several forth dialects). Does not support graphics or sound at this
        time. But these could be added.

        BaremetalOS. Strong mechanical sympathy goals. Does not contain its
        own dev tools, no sound or graphics.

    There have not been any strong examples of this category since ubiquitous
    internet.

    Our attempt

        See dinghy.


::: Niche/4: Yachts

    General-purpose workstation/server bracket

    Key qualities

        Developer interacts with a systems API that supports multithreading.

        Multi-user design
    
        Offers a complex desktop environment

        Interaction oriented around unix-style processes and a filesystem.

        Sophisticated package management and versioning

        Tend to have a huge kernel that incorporates networking

    Examples

        Linux
        NT
        OSX
        Unix workstations by Sun, SGI, etc
        BeOS
        AmigaOS 4
        Oberon

    These systems tend to be grounded in the C programming language.


::: Niche/5: Personal Device

    Phones and tablets have their own niche, the Personal Device.

    Key qualities

        Feel matters.

        Sound and graphics.

        Developers cannot directly interact with the underlying machine.

        User is sandboxed in a simple process model. May not have a
        filesystem.

        Weak IPC

    Examples

        Teenage Engineering OP-1. Pure example. This is a synthesiser built
        from first principles. It runs some kind of minimal operating system
        on custom hardware. Low-enough latency software system, beautiful
        small display, responsive controls let users craft waveforms.

        Apple iOS. Apple control the whole stack and have created a platform
        that is able to run commercial quality audio tools.

        Android. Android is a less pure example. It is a Java shell on top of
        a linux derived OS. It is not well-suited to low-latency audio work.

        OTTO. This is an attempt to build a device similar to the Teenage
        Engineering OP-1, on top of a Raspberry Pi running Linux. Given the
        difficulties that Android has had, it will be interesting to see
        whether they can make this work. Might Arduino be a better foundation.

        Games consoles from Atari 2600 to Nintendo Switch.

        Fitbit. Less pure example. It has an alarm.


::: Niche/6: Fabric

    Distributed computer operated by a single party.

    Key qualities

        Single interface to a system composed of multiple computing nodes.

    Examples

        Mainframes
        Plan 9
        Amoeba


::: Niche/7: Consensus network

    Distributed computer operated by multiple parties

    Key qualities

        Strong emphasis on achieving consensus between nodes.

    Examples

        Ethereum


::: Other

    Word-processors of the 80s. Canon cat, various brother systems.