index concept yachts_and_racing_dinghies system_niches elements_principles designs journal

// System Niches

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.


        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,



::: 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.




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

        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.

        MacOS Classic. System came with no dev tools. Original arch was 68k,
        similar to Amiga/Atari. After System 7, you could install python break
        out of the sandbox and do as you liked.

        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

    Past systems of this form were vulnerable to malware. This is not an
    inherent flaw of this niche. Consider if we created a multiprocessor
    system, with limited memory maps. You could sandbox a process to a
    specific core with a limited memory map.

    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


        Unix workstations by Sun, SGI, etc
        AmigaOS 4

    Many of these systems are 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

        Weak IPC


        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.


        Plan 9

::: Niche/7: Consensus network

    Distributed computer operated by multiple parties

    Key qualities

        Strong emphasis on achieving consensus between nodes.



::: Other

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

    Oberon. Where does it fit?

    kOS. Where does it fit?