Computer The word computer may be defined in countless ways and can also adopt many different meanings; a somewhat common definition may be this: computer is a machine that automatically performs mathematical computations. We can also see it as a machine for processing [1]information, manipulating symbols or, very generally, as any tool that helps computation, in which case not just laptops, desktops and cellphones fit the definition, but also primitive computers like a [2]sundial, one's fingers or even a [3]mathematical formula. But nowadays the word of course implicitly implies an electronic [4]digital computer. The electronic digital computer turned out to be one of the greatest [5]technological inventions in [6]history for numerous reasons -- firstly computers allowed creation of many other things which previously required too complex calculations, such as highly complex planes, space rockets and undreamed of factories (and, of course, yet more powerful computers which is why we've seen the exponential growth in computer power), they also allow us to crunch extreme volumes of data and accelerate [7]science; secondly they offered extremely advanced work tools like [8]robots, virtual 3D visualizations, [9]artificial intelligence and physics simulators, and they also gave us high quality, cheap [10]multimedia and entertainment like [11]games -- with computers anyone can shoot video, record music, carry around hundreds of movies in his pocket or fly a virtual plane. Most important however is probably the fact that computers enabled the [12]Internet -- by this they forever changed the world. We can divide computers based on many attributes, e.g.: * by continuous or discrete representation of data: [13]digital vs [14]analog * by [15]hardware technology: [16]electronic ("lightning in sand"), [17]mechanical, [18]quantum, biological etc. * by purpose: special purpose vs general purpose, [19]personal, [20]server, [21]calculator, [22]embedded, [23]workstation, [24]supercomputers, [25]gaming computer etc. * by [26]programmability: non-programmable, partially or fully programmable * by the theoretical [27]model of computation it is based on: [28]Turing machine, [29]lambda calculus etc. * by computational power: how difficult problems the computer is able to solve, i.e. where in the [30]Chomsky hierarchy it stands (typically we want [31]Turing complete computers) * by other criteria: price, reliability, durability etc. ______________ | ________ | \_ | |>.. | | : \ || | | | | : ] |:==-' | |________| | :_/ ___||___ ___ |____________|_/'. ___ /########\ / \ \ \...../ '. / \ \ |""""""""| |;:;| | _____/_____\_____ :|;:;| | |O O O O | |;:;| |:|[o][o],,, === | |.'|;:;| | || | | | | |___|_| |______________|__|:.|___|_| || | | | | __...--': ||,|,|,|,| .-''' .-'' \########/ ___________;__ _:_ /:::::::.::'::/| /-'-) /:::::::'.:.::// (___/ """"""""""""""" On the left typical personal computer, with case, monitor, keyboard, mouse and speakers; on the right a pocket mechanical calculator of the Curta type. Computers are theoretically studied by [32]computer science. The kind of computer we normally talk about consists of two main parts: * [33]hardware: physical parts * [34]software: [35]programs executed by the hardware, made by [36]programmers The power of computers is mathematically limited, [37]Alan Turing mathematically proved that there exist problems that can never be completely solved by any [38]algorithm, i.e. there are problems a computer (including our [39]brain) will never be able to solve (even if solution exists). This is related to the fact that the power of mathematics itself is limited in a similar way (see [40]Godel's theorems). Turing also invented the theoretical model of a computer called the [41]Turing machine. Besides the mentioned theoretical limitation, many solvable problems may take too long to compute, at least with computers we currently know (see [42]computational complexity and [43]P vs NP). And let's also mention some [44]curious statistics and facts about computers as of the year 2024. The fist computer in modern sense of the word is frequently considered to have been the Analytical Engine designed in 1837 by an Englishman Charles Babbage, a general purpose [45]mechanical computer which he however never constructed. After this the computers such as the Z1 (1938) and Z3 (1941) of a German inventor Konrad Zuse are considered to be the truly first "modern" computers. Shortly after the year 2000 the number of US households that had a computer surpassed 50%. The fastest [46]supercomputer of today is Frontier (Tennessee, [47]USA) which achieved computation speed of 1.102 exaFLOPS (that is over 10^18 [48]floating point operations per second) with power 22.7 MW, using the [49]Linux kernel (like all top 500 supercomputers). Over time transistors have been getting much smaller -- there is the famous [50]Moore's law which states that number of transistors in a chip doubles about every two years. Currently we are able to manufacture [51]transistors as small as a few nanometers and chips have billions of them. { There's some blurriness about exact size, apparently the new "X nanometers" labels are just [52]marketing lies. ~drummyfish } Typical Computer Computers we ordinarily talk about in everyday conversations are [53]electronic [54]digital mostly personal computers such as [55]desktops and [56]laptops, possibly also [57]cell phones, [58]tablets etc. Such a computer consists of some kind of [59]case (chassis), internal [60]hardware plus [61]peripheral devices that serve for [62]input and output -- these are for example a [63]keyboard and [64]mouse (input devices), a [65]monitor (output device) or [66]harddisk (input/output device). The internals of the computer normally include: * [67]motherboard: The main electronic circuit of the computer into which other components are plugged and which creates the network and interfaces that interconnect them (a [68]chipset). It contains slots for expansion cards as well as connectors for external devices, e.g. [69]USB. In a small memory on the board there is the most basic software ([70]firmware), such as [71]BIOS, to e.g. enable installation of other software. The board also carries the [72]clock generator for synchronization of all hardware, heat sensors etc. * [73]CPU (central processing unit): Core of the computer, the chip plugged into motherboard that performs general calculations and which runs [74]programs, i.e. [75]software. * [76]RAM/working memory/main memory: Lower capacity volatile (temporary, erased when powered off) working memory of the computer, plugged into motherboard. It is used as a "pen and paper" by the CPU when performing calculations. * [77]disk: [78]Non-volatile (persisting when powered off) large capacity memory for storing [79]files and other [80]data, connected to the motherboard via some kind of [81]bus. Different types of disks exist, most commonly [82]hard disks and [83]SSDs. * expansion cards ([84]GPU, sound card, network card, ...): Additional hardware cards plugged into motherboard for either enabling or accelerating specific functionality (e.g. GPU for graphics etc.). * [85]PSU (power supply unit): Converts the input electrical power from the plug to the electrical power needed by the computer. * other things like fans for [86]cooling, batteries in laptops etc. Notable Computers Here is a list of notable computers. { Some nice list of ancient computers is here: https://xnumber.com/xnumber/frame_malbum.htm. ~drummyfish } name year specs (max, comment approx) [87]brain -500M 86+ billion biological computer, neurons developed by nature [88]abacus -2500 one of the simplest digital counting tools Antikythera mechanism -125 ~30 gears, largest 1st known analog comp., by with 223 teeth Greeks (mechanical) [89]slide rule 1620 simple tool for multiplication and division Shickard's 1623 17 wheels 1st known calculator, could calculating clock multiply, add and sub. [90]Arithmometer 1820 6 digit numbers 1st commercial calculator (add, sub., mult.) 8 digit numbers, mech. digital comp. of Difference Engine 1822 24 axles, 96 polynomials, by Babbage wheels Analytical Engine 1837 ~16K RAM, 40 digit 1st general purpose comp, design numbers not realized, by Babbage [91]nomogram 1884 graphical/geometrical tools aiding computation [92]Z3 1941 176B RAM, CPU 10Hz 1st fully programmable 22bit 2600 relays electronic digital computer ~85B RAM, ~5KHz 1st general purpose [93]ENIAC 1945 CPU, 18000 vaccum computer tubes [94]PDP 11 1970 4M RAM, CPU legendary [95]mini 1.25Mhz 16bit [96]Apple II 1977 64K RAM, 1MHz CPU popular TV-attached home 8bit computer by Apple [97]Atari 800 1979 8K RAM, CPU 1.7MHz popular TV-attached home 8bit computer by Atari [98]VIC 20 1980 32K RAM, 1MHz CPU successful TV-connected 8bit, 20K ROM home computer by Commodore 256K RAM, CPU 1st personal computer as we [99]IBM PC 1981 4.7MHz 16bit, know it now, modular BASIC, DOS [100]Commodore 64 1982 64K RAM, 20K ROM, very popular TV-connected CPU 1MHz 8bit home computer 128K RAM, CPU successful UK TV-connected [101]ZX Spectrum 1982 3.5MHz 8bit, home comp. by Sinclair 256x192 screen 2K RAM, 2K VRAM, TV-connected Nintendo game [102]NES/Famicom 1983 CPU 1.7MHz 8bit, console PPU 128K RAM, CPU 7MHz very popular personal [103]Macintosh 1984 32bit, floppy, computer by Apple 512x342 256K RAM, 256K personal computer by [104]Amiga 1985 ROM, CPU 7MHz Commodore, ahead of its 16bit, AmigaOS time 8M RAM, 256M famous workstation, used [105]NeXT 1988 drive, CPU 25MHz e.g. for Doom dev. 32bit, NeXTSTEP OS 128K RAM, 64K [106]SNES 1990 VRAM, CPU 21MHz game console, NES successor 16bit 2M RAM, 1M VRAM, popular TV-connected game [107]PlayStation 1994 CPU 33MHz 32bit, console by Sony CD-ROM 7K RAM, CPU famous programmable [108]TI-80 1995 980KHz, 48x64 1bit graphing calculator screen [109]Deep Blue 1995 30 128MHz CPUs, 1st computer to defeat ~11 GFLOPS world chess champion 8M RAM, CPU 93MHz famous TV-connected game [110]Nintendo 64 1996 64bit, 64M ROM console cartr. 32K RAM, 16K VRAM, handheld gaming console by [111]GameBoy Color 1998 CPU 2MHz 8bit, Ninetendo 160x144 ~256K RAM, 96K [112]GameBoy Advance 2001 VRAM, CPU 16MHz successor to GBC 32bit ARM, 240x160 [113]Xbox 2001 64M RAM, CPU TV-connected game console 733MHz Pentium III by Micro$oft 4M RAM, 256K ROM, famous handheld game [114]Nintendo DS 2004 CPU ARM 67MHz, console by Nintendo touchscreen [115]Nintendo Wii 2006 24M RAM, 512M ROM, famous family TV console SD, CPU PPC 729M with "stick" controllers [116]iPhone (aka 128M RAM, CPU ARM 1st of the harmful Apple spyphone) 2007 620MHz, GPU, cam., "smartphones" Wifi, 480x320 [117]ThinkPad X200 2008 8G RAM, CPU legendary laptop, great 2.6GHz, Wifi constr., freedom friendly [118]ThinkPad T400 2008 8G RAM, CPU legendary laptop, great 2.8GHz, Wifi constr., freedom friendly [119]Raspberry Pi 3 2016 1G RAM, CPU 1.4GHz very popular tiny ARM, Wifi inexpensive SBC 2.5K RAM, CPU tiny Arduino [121]open [120]Arduboy 2016 16MHz AVR 8bit, 1b console display [122]Pokitto 2017 36K RAM, 256K ROM, indie educational [123]open CPU 72MHz ARM console [124]Raspberry Pi 4 2019 8G RAM, CPU 1.5GHz tiny inexpensive SBC, ARM, Wifi usable as desktop [125]Frontier 2021 9000+ 64 2GHz fastest supercomputer to CPUs, 37000+ GPUs date, 1st with 1+ exaFLOPS [126]Deep Thought fictional computer from Hitchhiker's Guide ... [127]HAL 9000 fictional AI computer (2001: A Space Oddysey) [128]PD computer planned LRS computer [129]Turing machine infinite RAM important theoretical computer by Alan Turing TODO: mnt reform 2, pinephone, 3DO, ti-89, quantum? Links: 1. information.md 2. sundial.md 3. math.md 4. digital.md 5. tech.md 6. history.md 7. science.md 8. robotics.md 9. ai.md 10. multimedia.md 11. game.md 12. internet.md 13. digital.md 14. analog.md 15. hw.md 16. electronics.md 17. mechanical.md 18. quantum.md 19. pc.md 20. server.md 21. calculator.md 22. embedded.md 23. workstation.md 24. supercomputer.md 25. game.md 26. programming.md 27. model_of_computation.md 28. turing_machine.md 29. lambda_calculus.md 30. chomsky_hierarchy.md 31. turing_completeness.md 32. compsci.md 33. hw.md 34. sw.md 35. program.md 36. programmer.md 37. turing.md 38. algorithm.md 39. brain.md 40. incompleteness_theorems.md 41. turing_machine.md 42. computational_complexity.md 43. p_vs_np.md 44. interesting.md 45. mechanical_computer.md 46. supercomputer.md 47. usa.md 48. float.md 49. linux.md 50. moores_law.md 51. transistor.md 52. marketing.md 53. electronics.md 54. digital.md 55. desktop.md 56. laptop.md 57. phone.md 58. tablet.md 59. case.md 60. hardware.md 61. peripheral.md 62. io.md 63. keyboard.md 64. mouse.md 65. monitor.md 66. hdd.md 67. motherboard.md 68. chipset.md 69. usb.md 70. firmware.md 71. bios.md 72. clock.md 73. cpu.md 74. program.md 75. sw.md 76. ram.md 77. disk.md 78. volatile.md 79. file.md 80. data.md 81. bus.md 82. hdd.md 83. ssd.md 84. gpu.md 85. psu.md 86. cooling.md 87. brain.md 88. abacus.md 89. slide_rule.md 90. arithmometer.md 91. nomogram.md 92. z3.md 93. eniac.md 94. pdp.md 95. minicomputer.md 96. apple_ii.md 97. atari.md 98. vic_20.md 99. ibm_pc.md 100. c64.md 101. zx_spectrum.md 102. nes.md 103. macintosh.md 104. amiga.md 105. next.md 106. snes.md 107. playstation.md 108. texas_instruments.md 109. deep_blue.md 110. n64.md 111. gbc.md 112. gba.md 113. xbox.md 114. nds.md 115. wii.md 116. iphone.md 117. thinkpad.md 118. thinkpad.md 119. rpi.md 120. arduboy.md 121. open_console.md 122. pokitto.md 123. open_console.md 124. rpi.md 125. frontier.md 126. deep_thought.md 127. hal_9000.md 128. public_domain_computer.md 129. turing_machine.md