På det mest basale niveau fungerer computere ved at manipulere
bits . Lidt er den mindste dataenhed, der repræsenterer enten en 0 eller en 1. alt, hvad en computer gør - fra at vise billeder til at køre komplekse simuleringer - koger ned til utroligt hurtige sekvenser af at manipulere disse 0'er og 1'er.
Her er en sammenbrud:
1. hardware: De fysiske komponenter på computeren, inklusive:
* Central Processing Unit (CPU): Computerens "hjerne". Det henter instruktioner (kodet som bits), afkoder dem og udfører dem. Denne udførelse involverer udførelse af grundlæggende operationer på bits, som at tilføje, trække, sammenligne og flytte dem rundt.
* hukommelse (RAM): Gemmer data og instruktioner, som CPU'en har brug for at få adgang til hurtigt. Disse data er også repræsenteret som bits.
* opbevaring (harddisk, SSD): Gemmer data vedvarende, selv når computeren er slukket. Igen er det alle bits.
* input/output (I/O) enheder: Tillad interaktion med computeren (tastatur, mus, skærm osv.). Disse enheder oversætter brugerhandlinger og data til bits, og omvendt.
2. Instruktioner (maskinkode): CPU'en forstår instruktioner skrevet i maskinkode-et programmeringssprog på lavt niveau, der direkte repræsenterer de operationer, som CPU'en kan udføre. Disse instruktioner er sekvenser af bits, der fortæller CPU'en, hvad de skal gøre.
3. logiske porte: I hjertet af CPU'en er logiske porte, små elektroniske kredsløb, der udfører grundlæggende logiske operationer på bits. Disse operationer er baseret på boolsk algebra (og, eller ikke osv.). Ved at kombinere disse porte på komplekse måder kan CPU'en udføre meget mere sofistikerede operationer.
4. Dette er den grundlæggende proces, som CPU'en gentager kontinuerligt:
* Hent: CPU'en henter en instruktion fra hukommelsen.
* afkode: CPU'en fortolker instruktionen til at forstå, hvilken operation der skal udføres, og hvor man kan finde dataene.
* Udfør: CPU'en udfører operationen.
* Gentag: Cyklussen starter igen med den næste instruktion.
I det væsentlige er en computer et massivt parallelt system med utroligt hurtige switches (transistorer), der tændes (1) og slukket (0) i ekstremt præcise sekvenser, efter instruktioner kodet som bitmønstre. Disse sekvenser oversætter på et højere niveau til de programmer og applikationer, vi bruger. Kompleksiteten opstår fra det store antal bits og de komplicerede arrangementer af logiske porte og instruktioner, men det grundlæggende princip forbliver manipulationen af 0s og 1s.