# Computer Architecture and Operating Systems
http://www.ee.surrey.ac.uk/Teaching/Unix/
https://www.computerhistory.org/timeline/
- [ ] latency, throughput, [goodput](https://en.wikipedia.org/wiki/Goodput), roofline analysis, nagle's algorithm
- [ ] [cache](https://en.wikipedia.org/wiki/Cache_(computing)), virtual memory, paging, segmentation, canary
- compulsory/capacity/conflict/coherency miss
- write back/through, (no-)write allocate
- How OS actually handles dynamic memory allocation
- huge page
- double free
- memory leak
- dynamic/multiple dispatch, virtual function, vtable
- wiki: as of 2021, C++ only supports single dispatch
- unresolved external symbol (linking?)
- multiple inheritence
- buffer overflow attack
- [write, what, where](https://www.martellosecurity.com/kb/mitre/cwe/123/)
- [ ] deadlock, data race
- [ ] mutex, semaphore, conditional variable, [futex](https://en.wikipedia.org/wiki/Futex)
- [ ] thread, coroutine, synchronization point, barrier
- [futures and promises](https://en.wikipedia.org/wiki/Futures_and_promises)
- [ ] scheduling
- [ ] context switch, interrupt, exception
- [ ] compile, link, load, ELF, DLL
- [ ] inter-process communication
- [ ] shared file
- [ ] shared memory (with semaphores)
- [ ] pipe (named and unnamed)
- [ ] message queue
- [ ] socket
- [ ] signal
- [ ] RAID, LVM, ZFS, XFS, btrfs
- [ ] filesystem, permissions, ACL
- [ ] SELinux, apparmour
- [ ] systemd, syslog
- [ ] namespace, container
- [ ] module
- [ ] PXE, UEFI
- [ ] eBPF
- [ ] VM
- [ ] ipoute2, wireshark, dig, nmap, openvswitch
- [ ] error detection and correction, e.g., CRC
- [ ] ARM, x86-64
- [ ] GPU
- [ ] FPGA
- [ ] raft, paxos
- [ ] profiler, debugger, sanitizer, mtrace, strace, ptrace
- [ ] [2's complement](https://www.youtube.com/watch?v=lKTsv6iVxV4), ieee754
- [ ] ABI
- [ ] blocking, non-blocking, synchronous, asynchronous
- https://stackoverflow.com/questions/2625493/asynchronous-and-non-blocking-calls-also-between-blocking-and-synchronous
- https://stackoverflow.com/questions/7931537/whats-the-difference-between-asynchronous-non-blocking-event-base-architectu/9489547#9489547
- [Faster async functions and promises](https://v8.dev/blog/fast-async)
- [ ] reactor, proactor
- [ ] half-duplex, full-duplex, multiplex