Public Domain Computer

   Public domain computer is yet nonexistent but [1]planned and highly
   desired [2]simple ethical [3]computer (in the common meaning of the word)
   whose specification is completely in the [4]public domain and which is
   made with completely [5]selfless [6]LRS-aligned goal of being absolutely
   non-malicious and maximally helpful to everyone, with very small
   [7]freedom distance. It should be the "people's computer", a simple,
   [8]suckless, user-respecting [9]hackable computer offering maximum
   [10]freedom, a computer which anyone can study, improve, manufacture and
   repair without paying any "[11]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.

   "Public domain computer" is just a temporary placeholder/general term, the
   actual project would probably be called something different.

   The project is basically about asking: what if computers were designed to
   serve us instead of corporations? Imagine a computer that wouldn't stand
   in your way in whatever you want to do.

   In our [12]ideal society, one of the versions of the public domain
   computer could be the [13]less retarded watch.

   Note that the computer has to be 100% from the ground up in the true, safe
   and worldwide [14]public domain, i.e. not just "[15]FOSS"-licensed,
   partially open etc. It should be created from scratch, so as to have no
   external [16]dependencies and released safely to the public domain e.g.
   with [17]CC0 + patent waivers. Why? In a [18]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
   [19]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. [20]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,
   [21]proprietary, [22]spyware littered non-repairable consumerist computer
   with secret internals.

   The computer can (and should) be very [23]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 [24]LRS philosophy and be more
   similar to the very first personal computers rather than to the
   "[25]modern" HD/[26]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 [27]open consoles.

   Even a pretty simple computer without an [28]operating system is able to:

     * Browse much of the [29]Internet, e.g. [30]smol web (no [31]JavaScript
       websites, [32]gopher, ...).
     * Handle communication, e.g. [33]email, [34]IRC, ...
     * Allow reading, writing and storing [35]books, e.g. those from
       [36]Project Gutenberg or offline [37]Wikipedia -- this can
       tremendously help education e.g. in the third world.
     * Run basic [38]software such as calculator, stopwatch, calendar, note
       taking, alarm clock, memory-card reader, picture viewer, even simple
       [39]games etc.
     * Serve as an [40]embedded computer, e.g. [41]DYI people and small
       business may use the computer in similar ways [42]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 [43]peripherals through simple interfaces.
     * Handle simple [44]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 would be easily adjusted and mapped to any
   specific existing technology -- the goal would be to create an abstract
   [45]hardware specification as well as basic [46]software for the computer.

   Abstract hardware specification means e.g. description on the [47]logic
   gate level so that the computer isn't dependent on any contemporary and
   potentially proprietary lower level technology such as [48]CMOS. The
   project would simply create a big [49]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 parameterized so
   that certain features could be adjusted -- for example it might be
   possible to choose the amount of [50]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:

    1. Create a programming language that will be usable both as a scripting
       and compiled language for the computer. We already have one --
       [51]comun -- though it is not fully finished yet. Now we can already
       start writing software for the computer. Optionally make other
       languages such as [52]C compile to our ISA.
    2. Design a simple [53]instruction set architecture (ISA). This will
       provide some challenge but will be doable.
    3. Write basic [54]software in our language, mainly:
     * Custom tools for designing, simulating and testing [55]logic circuits.
       Not extremely difficult if we [56]keep it simple.
     * [57]Emulator of our custom ISA so that we can run and test it on our
       current computers. It will also be useful to make our computer
       possible to be run as a virtual hardware on other platforms.
     * [58]Shell that will serve to performing basic tasks with the computer,
       e.g. using it as a calculator or interactively programming it in
       simple ways. The shell will also serve as a kind of [59]operating
       system, or rather a simple program loader. For now the shell can run
       on our current computers where we can test it and fine tune it.
       Implementation of this could be the [60]comun shell.
     * Compiler -- this basically just means self hosting our compiler.
     * Basic tools like a text editor, compression utility, image editor etc.
    4. With the logic circuit tools design a simple [61]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, ...).
    5. Compile the MCU logic-level description to an actual circuitboard,
       possibly even with [62]proprietary tools if other aren't available --
       this may be fixed later.
    6. Manufacture the first physical computer, test it, debug it, improve
       it, give it to people, ...
    7. Now the main goal has been touched for the first time, however the
       real [63]fun only begins -- now it is needed to spread the project,
       keep improving it, write more software such as [64]games etc. :)

See Also

     * [65]Project Oberon
     * [66]comun
     * [67]comun shell
     * [68]uxn
     * [69]less retarded watch
     * [70]PDOS

Links:
1. needed.md
2. kiss.md
3. computer.md
4. public_domain.md
5. selflessness.md
6. lrs.md
7. freedom_distance.md
8. suckless.md
9. hacking.md
10. free_software.md
11. intellectual_property.md
12. less_retarded_society.md
13. less_retarded_watch.md
14. public_domain.md
15. foss.md
16. dependency.md
17. cc0.md
18. less_retarded_society.md
19. capitalist_technology.md
20. ubi.md
21. proprietary.md
22. spyware.md
23. KISS.md
24. lrs.md
25. modern.md
26. bloat.md
27. open_console.md
28. os.md
29. internet.md
30. smol_internet.md
31. js.md
32. gopher.md
33. email.md
34. irc.md
35. book.md
36. gutenberg.md
37. wikipedia.md
38. software.md
39. game.md
40. embedded.md
41. dyi.md
42. rpi.md
43. peripheral.md
44. multimedia.md
45. hardware.md
46. software.md
47. logic_gate.md
48. cmos.md
49. logic_circuit.md
50. ram.md
51. comun.md
52. c.md
53. isa.md
54. software.md
55. logic_citcuit.md
56. kiss.md
57. emulator.md
58. shell.md
59. operating_system.md
60. comun_shell.md
61. mcu.md
62. proprietary.md
63. fun.md
64. game.md
65. oberon.md
66. comun.md
67. comun_shell.md
68. uxn.md
69. less_retarded_watch.md
70. pdos.md