---
# System prepended metadata

title: 閱讀清單
tags: [Book]

---

# 閱讀清單

## 系統程式

### 程式語言技巧

- [ ] [C Traps and Pitfalls](http://www.literateprogramming.com/ctraps.pdf)

### Tutorial

- [ ] [Writing an OS in Rust](https://os.phil-opp.com/)
- [ ] [Operating System in 1,000 Lines](https://operating-system-in-1000-lines.vercel.app/en/)
- [ ] [Hypervisor in 1,000 Lines](https://1000hv.seiya.me/en/)
- [ ] [Linux from scratch](https://www.linuxfromscratch.org/)

### Process

- [ ] [UNIX 作業系統 fork/exec 系統呼叫的前世今生](https://hackmd.io/@sysprog/unix-fork-exec)

### Memory

- [ ] [What Every Programmer Should Know About Memory](https://people.freebsd.org/~lstewart/articles/cpumemory.pdf)
- [ ] [A Malloc Tutorial](https://wiki-prog.infoprepa.epita.fr/images/0/04/Malloc_tutorial.pdf)
- [ ] [The Lost Art of Structure Packing](http://www.catb.org/esr/structure-packing/)
- [x] [What’s the difference between an integer and a pointer?
](https://blog.regehr.org/archives/1621)
- [ ] [Dynamic Memory Allocation](https://www.cs.cmu.edu/afs/cs/academic/class/15213-s20/www/lectures/15-malloc-basic.pdf)
- [ ] [Linker Scripts](https://sourceware.org/binutils/docs/ld/Scripts.html#Scripts)

### Data Structure

- [ ] [解析 Hash Table](https://hackmd.io/@ChialiangKuo/quiz6B-hash-table)

### Synchronization

- [x] [Accurate mental model for Rust's reference types](https://docs.rs/dtolnay/0.0.6/dtolnay/macro._02__reference_types.html#accurate-mental-model-for-rusts-reference-types)

### Compiler

- [ ] [Nine ways to break your systems code using volatile](https://blog.regehr.org/archives/28)
- [x] [WRITE_ONCE in linux kernel lists](https://stackoverflow.com/questions/34988277/write-once-in-linux-kernel-lists)

### Cache

- [ ] [CPU Cache](https://lwn.net/Articles/252125/)
- [ ] [Cache 原理和實際影響](https://hackmd.io/@SIlbVPlXR26vjqUoZDgZzA/HkyscQn2z)
- [ ] [A Primer on Memory Consistency and Cache Coherence](https://pages.cs.wisc.edu/~markhill/papers/primer2020_2nd_edition.pdf)

## SoC 設計

### RISC-V

- [ ] [Introduction to the RISC-V Vector Extension](https://eupilot.eu/wp-content/uploads/2022/11/RISC-V-VectorExtension-1-1.pdf)
- [ ] [RISC-V Vector Extension Tutorial](https://riscv.org/wp-content/uploads/2024/12/15.20-15.55-18.05.06.VEXT-bcn-v1.pdf)
- [ ] [RISC-V V 1.0 Vector Processor Design](https://arxiv.org/pdf/2210.08882)

### Debug Port

- [ ] [JTAG Architecture](https://vlsitutorials.com/jtag-architecture-overview/)

### Data Interface

- [x] [Introduction to SPI Interface](https://www.analog.com/en/resources/analog-dialogue/articles/introduction-to-spi-interface.html)

### GPU Architecture

- [ ] [Understanding Tiling](https://developer.samsung.com/galaxy-gamedev/resources/articles/gpu-framebuffer.html)
- [ ] [A Parallel Algorithm for Polygon Rasterization](https://www.cs.drexel.edu/~deb39/Classes/Papers/comp175-06-pineda.pdf)
- [ ] [A Trip through the Graphics Pipeline](https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/)
- [ ] [Beginning FPGA Graphics](https://projectf.io/posts/fpga-graphics/)
- [ ] [Framebuffers](https://projectf.io/posts/framebuffers/)
- [ ] [Real-Time DXT Compression](https://www.researchgate.net/publication/259000525_Real-Time_DXT_Compression)

### HDMI

- [ ] [FPGA HDMI](https://github.com/BrunoLevy/learn-fpga/blob/master/FemtoRV/TUTORIALS/HDMI.md)
- [ ] [Lattice HDMI/DVI Interface](https://www.latticesemi.com/products/designsoftwareandip/intellectualproperty/referencedesigns/referencedesigns02/hdmidvivideointerface)