På den mest grundläggande nivån fungerar datorer genom att manipulera
bitar . Lite är den minsta dataenheten, som representerar antingen en 0 eller A. Allt som en dator gör - från att visa bilder till körning av komplexa simuleringar - kokar ner till otroligt snabba sekvenser för att manipulera dessa 0 och 1s.
Här är en uppdelning:
1. Hårdvara: De fysiska komponenterna på datorn, inklusive:
* Central Processing Unit (CPU): Datorns "hjärna". Den hämtar instruktioner (kodade som bitar), avkodar dem och kör dem. Denna exekvering innebär att utföra grundläggande operationer på bitar, som att lägga till, subtrahera, jämföra och flytta dem runt.
* minne (RAM): Lagrar data och instruktioner som CPU behöver åtkomst snabbt. Dessa data representeras också som bitar.
* lagring (hårddisk, SSD): Lagrar data ihållande, även när datorn är avstängd. Återigen är det allt bitar.
* Input/Output (I/O) -enheter: Tillåt interaktion med datorn (tangentbord, mus, skärm, etc.). Dessa enheter översätter användaråtgärder och data till bitar och vice versa.
2. Instruktioner (maskinkod): CPU förstår instruktioner skriven i maskinkod-ett programmeringsspråk på låg nivå som direkt representerar de operationer CPU kan utföra. Dessa instruktioner är sekvenser av bitar som berättar CPU vad man ska göra.
3. logikgrindar: I hjärtat av CPU finns logiska grindar, små elektroniska kretsar som utför grundläggande logiska operationer på bitar. Dessa operationer är baserade på booleska algebra (och, eller inte, etc.). Genom att kombinera dessa grindar på komplexa sätt kan CPU utföra mycket mer sofistikerade operationer.
4. Fetch-Decode-Execute Cycle: Detta är den grundläggande processen som CPU upprepar kontinuerligt:
* hämta: CPU hämtar en instruktion från minnet.
* avkoda: CPU tolkar instruktionen för att förstå vilken operation man ska utföra och var man hittar data.
* execute: CPU utför operationen.
* Upprepa: Cykeln börjar igen med nästa instruktion.
I huvudsak är en dator ett massivt parallellt system med otroligt snabba switchar (transistorer) som slås på (1) och av (0) i extremt exakta sekvenser, efter instruktioner kodade som bitmönster. Dessa sekvenser, på en högre nivå, översätter till de program och applikationer vi använder. Komplexiteten uppstår från det stora antalet bitar och de komplicerade arrangemangen av logikgrindar och instruktioner, men den grundläggande principen förblir manipulering av 0s och 1s.