Computing: the really big picture - Dutton-Christian-Robotics/Learning-to-Code GitHub Wiki
Very very broadly considered, the world of technology is broken into two categories:
Hardware
It's hard in two senses. First, you can touch it; it's tangible. Second, hardware is "hard" in the sense that it can't change dynamically. Things may move, but change orientation, grow, or shrink. But hardware cannot fundamentally change into a new piece of hardware.
Microchips
Single "chips" containing micro- and even nano-scale electrical circuits based on the electrical device called a transistor.
- Processors
- Central Processing Unit (CPU): the brain of most devices or computers
- Graphics Processing Unit (GPU): helps the CPU by processing graphics information. Is also becoming very important in powering artificial intelligence.
- Coprocessors: other kinds of chips that help with specific types of processing
- Memory
- random access memory (RAM): temporary ("volatile") memory of what the computer is doing at a given point in time. RAM needs to be actively receiving power to hold its contents. When that power is removed, the memory is erased.
- read only memory (ROM): a kind of chip that can hold store information (such as firmware) but does not require constant power (making it "non-volatile"). The information contained in ROM cannot be changed—which is why it's called "read only."
Input
Combinations of physical and electrical components that provide information input to a computer or device
- Keyboards: mechanical or pseudo-mechanical devices that usually take the form of "buttons" or sets of buttons
- Pointing devices: mice, trackpads, trackballs, joysticks, tablet styluses
- Motion sensors: accelerometers, gyroscopes—things that allow the sensing of position and movement through space
- Combination devices: gamepad controllers technically combine keys/buttons and pointing devices—and possibly even motion sensors
- Optical sensors: digital cameras, scanners, brightness or color sensors—things that turn visual information into computer data
- Radio-based receivers: a variety of types of sensors receive over-the-air information through non-visible radiation. Examples include GPS signal receivers and cell-phone antennas.
Output
Combinations of physical and electrical components that turn data into some physical artifact or produce an effect.
- Motors and Servos: convert information into physical movement—usually with some type of rotational movement.* Monitors and Displays: data turned into visual information. Displays can function based on light or on e-ink "dots"
- Printers: turn data into a 2D artifact (an ink printer), a 3D artifact built by building-up (a physical model built by "printing" plastic or metal), or a 3D artifact built by removal (a physical model built by cutting, removing, or burning part of a physical medium; routers, saws, lasers). Printers are complex devices that include multiple physical components, including motors.
- Accessible displays: Braille displays, for example, turn data into physical braille dots that can be "read" by touch
- Haptics: turn data into motion, such as a vibration motor in a phone or a simulated click on a laptop trackpad
- Radio-based transmitters: allow information to be sent over-the-air. Examples include cell-phone antennas.
- Storage: takes data from memory and turns it into a more permanent and/or transportable product. Examples include magnetic storage (tapes or disks), flash memory, punch cards, or optical disks
Physical Interfaces
A combination of elements, hardware and software, that allow information to be passed from one computing device to another, or to a connected peripheral. Interfaces are composed of:
- physical plugs and connectors, known as the "male" parts of the interface
- physical receptacles that plugs attach info, known as the "female" parts of the interface
- cables, wires, or optical fiber that transmit signals between connectors
- protocols: software instructions that explain how to understand the data sent back and forth along the interface
Examples of "general purpose" interfaces:
- USB
- Thunderbolt
- Lightning
Examples of video-specific interfaces:
- HDMI
- VGA
- DVI
- DisplayPort
Other physical interfaces:
- Ethernet: cable-based networking
Wireless Interfaces
These are, in principle, the same as physical interfaces but instead of sending signals through wires they travel as electromagnetic radiation broadcast through the air. Wireless interfaces do not have plugs, receptacles, or cables. Instead output signals are sent out using a transmitter and brought in using a receiver. Without both, two-way communication is not possible.
Examples include:
- Bluetooth: used for connecting devices to peripherals and for some limited networking between devices. Generally doesn't require a lot of power, but also doesn't have a very long range.
- WiFi: allows computers and devices to share information with each other. Operates over a fairly large physical range.
- Near-field Communication (NFC): very short range interface, usually for mobile phones to send payment information to credit card terminals in stores.
- Cellular communication: mobile phones (though also laptops with the appropriate transmitter/receiver) communicate voice and data information using these special networks. The technology has advanced through a number of types and generations, with communication speeds generally increasing over time.
Software
Software is called "soft" because of the ways it's different from hardware. First, you can't touch it—it's not tangible. Second, it can usually be readily changed. Software is simply data or information stored in an electronic format which takes the form of instructions that hardware can "execute." As data, software exists on long-term storage or in RAM.
Software exists at many levels:
- Low-Level: very basic instructions the computer needs in order to access inputs and outputs and to process information.
- Operating System: while we experience operating systems every day (e.g. Windows, Mac, Android, iOS), they're hard to define. OSes are the level of software that take care of basic tasks like reading and writing files to storage and defining how users can interact with their computer or device. OSes create the tools used by app/programs to accomplish more specific goals.
- Applications/Programs: Now generally known as "apps"—though that term seems to have only really become popular with the rise of smartphones. Apps are specific programs that accomplish specific purposes.
Firmware
Technically, there is one additional category that lives somewhere between software and hardware—as the term "firm" might suggest. Rather than being "between" it's more like it's a bit of both. Firmware refers to specific software that's physically "burned" into hardware. This code is almost always at the "Low-Level" of software, and includes the most basic instructions that a device needs to turn on and function. If you've heard the term BIOS, then you've heard about firmware.
Generally speaking, firmware is read-only. It cannot be changed or updated. In some instances, a device's firmware may be "flashable"—which means that there is a process by which it can be updated, though it's not a process that most normal users would be comfortable doing.