7.2 KiB
Public Domain Computer
Public domain computer is yet nonexistent but planned and highly desired simple ethical computer (in the common meaning of the word) whose specification is completely in the public domain and which is made with completely selfless LRS-aligned goal of being absolutely non-malicious and maximally helpful to everyone. It should be the "people's computer", a simple, suckless, user-respecting hackable computer offering maximum freedom, a computer which anyone can study, improve, manufacture and repair without paying any "intellectual property" fees, a computer which people can buy (well, while money still exist) for extremely low price and use for any purpose without being abused or oppressed.
The project is basically about asking: what if computers were designed to serve us instead of corporations?
In our ideal society, one of the versions of the public domain computer could be the less retarded watch.
Note that the computer has to be 100% from the ground up in the true, safe and worldwide public domain, i.e. not just "FOSS"-licensed, partially open etc. It should be created from scratch, so as to have no external dependencies and released safely to the public domain e.g. with CC0 + patent waivers. Why? In a good society there simply have to exist basic tools that aren't owned by anyone, tools simply available to everyone without any conditions, just as we have hammers, pencils, public domain mathematical formulas etc. -- computing has become an essential part of society and it certainly has to become a universal "human right", there HAS TO exist an ethical alternative to the oppressive capitalist technology so that people aren't forced to accepting oppression by their computers simply by lack of an alternative. Creating a public domain computer would have similarly positive effects to those of e.g. universal basic income -- with the simple presence of an ethical option the oppressive technology would have a competition and would have to start to behave a bit -- oppressive capitalist technology nowadays is possibly largely thanks to the conspiracy of big computer manufacturers that rely on people being de facto obliged to buy one of their expensive, proprietary, spyware littered non-repairable consumerist computer with secret internals.
The computer can (and should) be very simple. It doesn't -- and shouldn't -- try to be the way capitalist computers are, i.e. it would NOT be a typical computer "just in the public domain", it would be different by basic design philosophy because its goals would completely differ from those of capitalists. It would follow the LRS philosophy and be more similar to the very first personal computers rather than to the "modern" HD/bloated/superfast/fashion computers. Let us realize that even a very simple computer can help tremendously as a great number of tasks people need can actually be handled by pretty primitive computers -- see what communities do e.g. with open consoles.
Even a pretty simple computer without an operating system is able to:
- Browse much of the Internet, e.g. smol web (no JavaScript websites, gopher, ...).
- Handle communication, e.g. email, IRC, ...
- Allow reading, writing and storing books, e.g. those from Project Gutenberg or offline Wikipedia -- this can tremendously help education e.g. in the third world.
- Run basic software such as calculator, stopwatch, calendar, note taking, alarm clock, memory-card reader, picture viewer, even simple games etc.
- Serve as an embedded computer, e.g. DYI people and small business may use the computer in similar ways Raspberry pi is used nowadays (auto switching lights, opening doors, recording data from sensors, tiny robots, ...).
- Be programmed and serve as an educational tool for programming.
- Do many scientific calculations.
- Control peripherals through simple interfaces.
- Handle simple multimedia such as low-res images and animations, 8bit sounds...
- ...
Details
The project wouldn't aim to create a specific single "model" of a computer but rather blueprints that may be easily adjusted and mapped to any specific existing technology -- the goal would be to create an abstract hardware specification as well as basic software for the computer.
Abstract hardware specification means e.g. description on the logic gate level so that the computer isn't dependent on any contemporary and potentially proprietary lower level technology such as CMOS. The project would simply create a big logic circuit of the computer and this description could be compiled/synthesized to a lower level circuit board description. The hardware description could also be parametrized so that certain features could be adjusted -- for example it might be possible to choose the amount of RAM or disable specific CPU instructions to make a simpler, cheaper circuit board.
The computer would have to be created from the ground up, with every design aspect following the ultimate goal. The project roadmap could look similarly to this one:
- Design a simple instruction set architecture (ISA). This isn't that hard.
- With current free technology, e.g. C and GNU, create custom tools for designing, simulating and testing logic gate circuits. Also not extremely difficult if we keep it simple.
- With these tools design a simple MCU computer based on the above mentioned ISA. This is doable, there are hobbyists that have designed their own 8bit CPUs, a few collaborating people could definitely create a nice MCU if they keep it simple (no caching, no floating point, no GPUs, ...).
- Design a simple (e.g. FORTH-like) self-hosted programming language, create its compiler with support for the above mentioned ISA so that it is possible to write software for the computer. This may preceded or succeeded by adding the ISA support to an existing languages such as C, e.g. by adding a new backed to gcc. Again, pretty doable.
- Write basic software for the computer. EZ.
- Compile the MCU logic-level description to an actual circuitboard, possibly even with proprietary tools if other aren't available -- this may be fixed later.
- Manufacture the first physical computer, test it, debug it, improve it, give it to people, ...
- Now the main goal has been touched for the first time, however the real fun only begins -- now it is needed to spread the project, keep improving it, write advanced software such as an operating system etc.
See Also
- Varvara computer
- less retarded watch