Conceptually see OwnConcepts#RestrictionStack, the core idea being that a tech stack is not neutral. The abstraction describes the stack as hardware/software, then firmware, OS, user software, etc but in practice each component can be restrictive or not. An example of restriction can be a locked bootloader, a BIOS default setting prevention the installation of another OS, an OS with a default store and no alternative, a closed source application without any user scription capability.
The linchpin being that the components do stack on top of each other and thus restriction at one level of the stack will have implications, positive or negative, for the rest.
| Restriction stack | Free stack | Theoretical stack |
|---|---|---|
| Account required and access monitored, e.g. Netflix, Disney+ | No account required, e.g. Wikipedia, PeerTube instances, etc | Content distribution |
| DRM required and enforced, e.g Widevine, kernel level "anti-cheat", Denuvo | Ignored or at least entire optional and sandboxed, removed via e.g. DeCSS, DeDRM, libgourou | Content restriction |
| Banned or limited | Allowed or encouraged | User scripts and extensions of applications |
| Closed source, e.g. Zoom, OpenAI | Self-hosted, e.g. Jitsi Meet, Ollama (on AI more broadly see Self Hosting Artificial Intelligence) | Remote services |
| Closed source, e.g. Outlook | Open source and modifiable, e.g Firefox | Software |
| Proprietary stores, e.g App Store, Play Store | All stores possible yet optional, e.g F-Droid | Application distribution |
| Locked OS, no source available, e.g. Windows, MacOS, Android components by Google, iOS forcing browser engine | GNU/Linux distributions, /e/OS, GrapheneOS, BSD, handeld ones e.g MuOS or ArkOS | Operating system |
| TPM, bootloader locked | Open, e.g. LibreBoot, ANAVI TPM 2.0 module, LetsTrust-TPM(2Go) | Hardware booting |
| Closed source support required | Standards e.g. Bluetooth and open source support, e.g. GadgetBridge | Mobile peripherals requiring companion apps |
| Proprietary formats e.g. PDF | Open formats e.g. glTF, OpenDocument formats (e.g. .odt .ods .odp .odg) | File formats |
| Closed connectivity or proprietary protocols e.g. Microsoft or Logi dongles | Standards e.g. Bluetooth or ZigBee | Drivers for peripherals |
| Closed firmware that can not be modified e.g. Microsoft keyboards or Logi mouses | Open source e.g. ZMK or QMK | Firmware of peripherals |
| Closed codecs, e.g. MPEG | Open codecs, e.g. Opus | Compression codecs for video and other media |
| Closed sources, e.g. NVIDIA driver | Open, e.g. NVK | Drivers for internal hardware |
| Closed architecture relying on IP cores, e.g ARM, Intel CPU, NVIDIA GPU | RISC-V | Processors and DSP |
| Closed devices, e.g. Nintendo Switch | Open hardware, ideally devices compliant with OSHW | Devices integrating several layers of the stack |
| Closed e.g. Windows Mixed Reality, Meta Browser | Open e.g OpenHMD, OpenXR runtime e.g. Monado | Middlewares, runtimes, SDK, intermediary layers |
| DMCA, private/public research partnerships | Achieving interropability, Right to repair, OpenAccess and APIs, e.g OpenAlex | Law, politics and lobbying |
Note that it must understood that a computer is not just a desktop, a computer is :
It is fundamental not to be restrictive about the form-factor and capabilities.
Consequently different having non restricted hardware or software relying on other computers with a restricted stack risk restricting it too. For example using a GNU/Linux laptop behind a closed source routeur might force attempt at forcing it to use their DNS or monitor traffic on behalf of the ISP or 3rd parties.
| Restriction stack | Free stack | Theoretical stack |
|---|---|---|
| Backup data (e.g. GDPR request) | Identify equivalent | Pick 1 item in 1 layer of the stack |
General recommendations
Ship of Theseus illustration from Wikipedia
Imagine that each plank or other part of boat is a component of that stack, them must not all be changed at once.
Motivated by PiratesInBrussels2025, specifically :