See also note on:
Serial port programing https://www.cmrr.umn.edu/~strupp/serial.html https://en.wikibooks.org/wiki/Serial_Programming/termios termios
The Definitive Guide to Linux System Calls some nice info on how syscalls happens. Interrupt x80,
syscall instruction etc. VDSO - v
fork- make new process.
inotify- be told when certain events happen
ptracea parent process can control another process. Gets to peek and poke memory. Control transferred on singals or system calls. Used by debuggers for example. Single step instructions
io_uringI think this is a set of new system calls. Fast io using a ring buffer. liburing library
io_ctldevice specific control calls
Linux Kernel Labs https://linux-kernel-labs.github.io/refs/heads/master/index.html
kernel documentation https://www.kernel.org/doc/html/latest/
no libc small pre-processed fixed size stack ~4kb no floating point?
processes are tracked
processes own resources
libuv libev libevent
Disk sectors. Disk rotation speed Disk Seek time
RAID - Redundant array of inexpensive disks. Copy data to multiple disks, or use error correction. RAID0 just interleaves disks for parallelism striping - put subsequent blocks on different disks RAID 1 - mirroring. Just rwwrite the same thing to multiple disks
https://github.com/klange/toaruos complete operating system from scratch
Hypervisors - like OS for OSes
How do programs start?
Scheduling - interrupts
Microkernel Functional correctness But also binary level verification. Uses gcc but disassemblers result to verify