Software: Kernel, OSI model, APIs, etc.
Hardware: Transistors → Gates Level → RTL (FIFO, MUX, etc) → System Level
Computer System: Hardware → HAL → Kernel → Syslibs → Applications
Single address space: same for data and instructions
System bus
Bottleneck: High I/O and Memory latency (CPU needs to wait)
Fixes:
Caching for memory
Contract between software and operating system.