When I started learning code, I must confess it didn’t give me the joy of learning something new. Then I figured it out, the joy of learning lies in connecting what you have learnt to the whole picture. Hence I plan to pass my first principles and mental models whenever possible.
We all know that computers work on binaries(i.e. 0 and 1).In a crude sense, computers serve mainly two purposes memory and operations.
Memory — To store the data(0 and 1's)
Operation — We operate or perform operations on stored data(Basically addition, multiplication and other complex calculations).
How do we tell the computers about what to perform?
That’s where software comes →Each and every software serves some functionality. They are coded(a fancy way of saying instructions) in programming languages. Programming languages as we know will be mostly in English(Human readable) in fact not understandable by all
Note:
CPU has address bus and data bus(basically wires)
Address bus -> How much RAM memory it can access?
Data bus →How much data can be transferred to and fro (CPU and RAM)
For 32 bit -> at the max, we can transfer 4GB of data…Therefore we can access only 4GB RAM. If more RAM, it is not useful.
For 64 bit ->at the max, we can transfer 16TB of data…Therefore we can use 8GB,16 GB or even 16TB of RAM
Stay tuned for the next part of the series — Interpreters and Compilers