- Basic concepts from operating systems
- its Binary All the way down
- Virtualization/Virtualizing resources
- Registers
- General Purpose
- Special ones
- Privileged registers
- Executing data
- Virtualizing the CPU
- Load/store
- Interacting with memory
- Trap/Ret from Trap
- Callbacks
- hardware assisted
- Privilege modes
- Threads + SMP + Scheduling
- Interacting with devices
- Memory
- disk
- Peripherals (keyboard, mouse, display..etc)
- Random Access Memory
- Physical Memory: a linear byte-array of byte addressable data
- I.e., a giant list of binary data where we can
- Q: Ignoring extensions, if we have byte addressable arrays and we can use 64 bit integers (8 bytes) to address the array, what is the maximum number of bytes we can support?
- Virtual Memory
- Page Tables
- Page Table entries
- Virtual Address Descriptors
- Byte Addressable
- Hardware assistance (walking the page table)
- 32bit/64bit
- considerably slower storage
- Cheaper than RAM
- Similar to memory, it is a block of linear storage.
- Usually interacting with the disk is implemented via a driver that helps implement a filesystem
- Example: NTFS, EXT4 FAT32
- Disk: Flash, hard disk/CD, SSD, magnetic tape...etc
- rings of privilege
- User land vs Kernel
- Different types of kernels