cs140e-24win/notes/devices/DEVICES.md at main · dddrrreee/cs140e-24win
This note gives a give a crash course in thinking about devices and their datasheets. It's both incomplete and yet somewhat repetitive with both itself and the GPIO writeup. But hopefully better than nothing. Table of Contents: Each hardware device an operating system supports requires a "device driver" that can configure and use the device. Since there are thousands of devices, there are thousands of drivers. Because of device numbers and device complexity, about 90% of Linux or BSD is device drivers. However, weirdly, not much gets written about driver code other than to sneer at its high number of bugs or low elegance. While you can find tens of thousands of research papers and hundreds of book chapters on "core" operating system topics such as virtual memory, processes or file systems, comparatively little gets written about devices despite them making up the monster proportion of the code. Partly this is because devices are necessarily ad hoc. Among other things, this makes it har
Crash course: devices and datasheets (using GPIO as an example) NOTE: still editing: send any feedback This note gives a give a crash course in thinking about devices and their datasheets. It's both incomplete and yet somewhat repetitive with both itself and the GPIO writeup. But hopefully better than nothing. Table of Contents: Crash course: Devices What is a device driver The first rule of devices: errata Expectations and heuristics for datasheets Device access = remote procedure calls Device configuration is not instantaneous Interrupts versus polling for device events . Device memory + com
Explore this link on the map →related reading
- What Every Programmer Should Know About Memorypeople.freebsd.org
- The little book about OS developmentlittleosbook.github.io
- https://danluu.comdanluu.com
- GPU Driver Developer’s Guide — The Linux Kernel documentationdocs.kernel.org
- CUDA C++ Programming Guide (Legacy) — CUDA C++ Programming Guidedocs.nvidia.com
- Writing an OS in Rustos.phil-opp.com
- Porting Mac OS X to the Nintendo Wii | Bryan Keller’s Dev Blogbryankeller.github.io
- Banned Book Library | Rick's Blogrichardosgood.com
- Get better at programming by learning how things workjvns.ca
- research!rsc: Hardware Memory Models (Memory Models, Part 1)research.swtch.com
- OS 202 Class Notescs.nyu.edu
- Lab: networkingpdos.csail.mit.edu