12 KiB
Computer
The word computer can be defined in many ways and can also take 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 information or, very generally, as any tool that helps computation, in which case one's fingers or even a mathematical formula itself can be considered a computer. Here we are of course mostly concerned with electronic digital computers.
We can divide computers based on many attributes, e.g.:
- by continuous or discrete representation of data: digital vs analog
- by hardware technology: electronic ("lightning in sand"), mechanical, quantum, biological etc.
- by purpose: special purpose vs general purpose, personal, server, embedded, supercomputers, gaming computer etc.
- by programmability: non-programmable, partially or fully programmable
- by the theoretical model of computation it is based on: Turing machine, lambda calculus etc.
- by computational power: how difficult problems the computer is able to solve, i.e. where in the Chomsky hierarchy it stands (typically we want Turing complete computers)
- by other criteria: price, reliability, durability etc.
Computers are theoretically studied by computer science. The kind of computer we normally talk about consists of two main parts:
- hardware: physical parts
- software: programs executed by the hardware, made by programmers
The power of computers is limited, Alan Turing mathematically proved that there exist problems that can never be completely solved by any algorithm, i.e. there are problems a computer (including our 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 Godel's theorems). Turing also invented the theoretical model of a computer called the Turing machine. Besides the mentioned theoretical limitation, many solvable problems may take too long to compute, at least with computers we currently know (see computational complexity and P vs NP).
Typical Computer
Computers we normally talk about in daily conversations are electronic digital mostly personal computers such as desktops and laptops, possibly also cell phones, tablets etc.
Such a computer consists of some kind of case (chassis), internal hardware plus peripheral devices that serve for input and output -- these are for example a keyboard and mouse (input devices), a monitor (output device) or harddisk (input/output device). The internals of the computer normally include:
- 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 chipset). It contains slots for expansion cards as well as connectors for external devices, e.g. USB. In a small memory on the board there is the most basic software (firmaware), such as BIOS, to e.g. enable installation of other software. The board also carries the clock generator for synchronization of all hardware, heat sensors etc.
- CPU (central processing unit): Core of the computer, the chip plugged into motherboard that performs general calculations and which runs programs, i.e. software.
- 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.
- disk: Non-volatile (persisting when powered off) large capacity memory for storing files and other data, connected to the motherboard via some kind of bus. Different types of disks exist, most commonly hard disks and SSDs.
- expansion cards (GPU, sound card, network card, ...): Additional hardware cards plugged into motherboard for either enabling or accelerating specific functionality (e.g. GPU for graphics etc.).
- 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 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, approx) | comment |
---|---|---|---|
brain | -500M | 86+ billion neurons | biological computer, developed by nature |
abacus | -2500 | one of the simplest digital counting tools | |
Antikythera mechanism | -125 | ~30 gears, largest with 223 teeth | 1st known analog comp., by Greeks (mechanical) |
slide rule | 1620 | simple tool for multiplication and division | |
Shickard's calculating clock | 1623 | 17 wheels | 1st known calculator, could multiply, add and sub. |
Arithmometer | 1820 | 6 digit numebrs | 1st commercial calculator (add, sub., mult.) |
Difference Engine | 1822 | 8 digit numbers, 24 axles, 96 wheels | mech. digital comp. of polynomials, by Babbage |
Analytical Engine design | 1837 | ~16K RAM, 40 digit numbers | 1st general purpose comp, not realized, by Babbage |
nomogram | 1884 | graphical/geometrical tools aiding computation | |
Z3 | 1941 | 176B RAM, CPU 10Hz 22bit 2600 relays | 1st fully programmable electronic digital computer |
ENIAC | 1945 | ~85B RAM, ~5KHz CPU, 18000 vaccum tubes | 1st general purpose computer |
PDP 11 | 1970 | 4M RAM, CPU 1.25Mhz 16bit | legendary mini |
Apple II | 1977 | 64K RAM, 1MHz CPU 8bit | popular TV-attached home computer by Apple |
Atari 800 | 1979 | 8K RAM, CPU 1.7MHz 8bit | popular TV-attached home computer by Atari |
VIC 20 | 1980 | 32K RAM, 1MHz CPU 8bit, 20K ROM | successful TV-connected home computer by Commodore |
IBM PC | 1981 | 256K RAM, CPU 4.7MHz 16bit, BASIC, DOS | 1st personal computer as we know it now, modular |
Commodore 64 | 1982 | 64K RAM, 20K ROM, CPU 1MHz 8bit | very popular TV-connected home computer |
ZX Spectrum | 1982 | 128K RAM, CPU 3.5MHz 8bit | successful UK TV-connected home comp. by Sinclair |
NES/Famicom | 1983 | 2K RAM, 2K VRAM, CPU 1.7MHz 8bit, PPU | TV-connected Nintendo game console |
Macintosh | 1984 | 128K RAM, CPU 7MHz 32bit, floppy, 512x342 | very popular personal computer by Apple |
Amiga | 1985 | 256K RAM, 256K ROM, CPU 7MHz 16bit, AmigaOS | personal compuer by Commodore, ahead of its time |
SNES | 1990 | 128K RAM, 64K VRAM, CPU 21MHz 16bit | game console, NES successor |
PlayStation | 1994 | 2M RAM, 1M VRAM, CPU 33MHz 32bit, CD-ROM | popular TV-connected game console by Sony |
TI-80 | 1995 | 7K RAM, CPU 980KHz, 48x64 1bit screen | famous programmable graphing calculator |
Deep Blue | 1995 | 30 128MHz CPUs, ~11 GFLOPS | 1st computer to defeat world chess champion |
Nintendo 64 | 1996 | 8M RAM, CPU 93MHz 64bit, 64M ROM cartr. | famous TV-connected game console |
GameBoy Color | 1998 | 32K RAM, 16K VRAM, CPU 2MHz 8bit, 160x144 | handheld gaming console by Ninetendo |
GameBoy Advance | 2001 | ~256K RAM, 96K VRAM, CPU 16MHz 32bit ARM, 240x160 | successor to GBC |
Xbox | 2001 | 64M RAM, CPU 733MHz Pentium III | TV-connected game console by Micro$oft |
Nintendo DS | 2004 | 4M RAM, 256K ROM, CPU ARM 67MHz, touchscreen | famous handheld game console by Nintendo |
iPhone (aka spyphone) | 2007 | 128M RAM, CPU ARM 620MHz, GPU, cam., Wifi, 480x320 | 1st of the harmful Apple "smartphones" |
ThinkPad X200 | 2008 | 8G RAM, CPU 2.6GHz, Wifi | legendary laptop, great constr., freedom friendly |
ThinkPad T400 | 2008 | 8G RAM, CPU 2.8GHz, Wifi | legendary laptop, great constr., freedom friendly |
Raspberry Pi 3 | 2016 | 1G RAM, CPU 1.4GHz ARM, Wifi | very popular tiny inexpensive SBC |
Arduboy | 2016 | 2.5K RAM, CPU 16MHz AVR 8bit, 1b display | tiny Arduino open console |
Pokitto | 2017 | 36K RAM, 256K ROM, CPU 72MHz ARM | indie educational open console |
Raspberry Pi 4 | 2019 | 8G RAM, CPU 1.5GHz ARM, Wifi | tiny inexpensive SBC, usable as desktop |
Deep Thought | fictional computer from Hitchhiker's Guide ... | ||
HAL 9000 | fictional AI computer (2001: A Space Oddysey) | ||
PD computer | planned LRS computer | ||
Turing machine | important theoretical computer by Alan Turing |
TODO: mnt reform 2, pinephone, NeXT, ti-89, quantum?, wii?