# I/O Software
## Official Documentation
- **Linux Kernel Documentation on I/O**
  - [Link](https://www.kernel.org/doc/html/latest/driver-api/index.html)
- **Microsoft Docs on I/O Processing**
  - [Link](https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/i-o-processing)
- **FreeBSD Handbook: Writing FreeBSD Device Drivers**
  - [Link](https://docs.freebsd.org/en/books/developers-handbook/driverbasics/)

## Research Papers
- **"Persistent Memory I/O Primitives" by Jian Xu and Steven Swanson (2016)**
  - [Link](https://dl.acm.org/doi/10.1145/2954679.2872365)
- **"Understanding Modern Storage APIs: A systematic study of libaio, SPDK, DAOS, and Intel DCL" by Manuel Sadowski et al. (2021)**
  - [Link](https://dl.acm.org/doi/10.1145/3458336.3465285)

## Additional Online Resources
- **IBM Knowledge Center on I/O Concepts and Programming**
  - [Link](https://www.ibm.com/docs/en/zos/2.4.0?topic=programming-io-concepts)
- **Oracle Documentation on Device Driver Interfaces**
  - [Link](https://docs.oracle.com/cd/E19253-01/816-4854/6mb1gq3vh/index.html)
- **SNIA Technical White Paper on NVMe Technology**
  - [Link](https://www.snia.org/education/what-is-nvme)

## Books
- **"Linux Device Drivers" by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman**
  - ISBN: 9780596005900
  - Provides a comprehensive guide to writing device drivers for the Linux kernel.

- **"Windows Internals, Part 1" by Pavel Yosifovich et al.**
  - ISBN: 9780735684188
  - Offers detailed information about Windows I/O system and driver model.

- **"Operating Systems: Three Easy Pieces" by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau**
  - ISBN: 9781985086593
  - Includes chapters on I/O devices and I/O management in operating systems.

## For Deep Dive into Implementation
- **"Systems Programming in Unix/Linux" by K.C. Wang**
  - ISBN: 9783319924281
  - Covers system programming in Unix/Linux, including detailed discussions on I/O programming.

- **"The Linux Programming Interface" by Michael Kerrisk**
  - ISBN: 9781593272203
  - Provides a comprehensive guide to Linux and UNIX system programming, including I/O operations.

## Standards
- **POSIX.1-2017 (IEEE Std 1003.1-2017)**
  - This standard defines the interface between operating systems and applications, including I/O operations.
  - Not freely available, but it's an authoritative source on standardized I/O interfaces.

- **ISO/IEC 9945:2009 - Information technology -- Portable Operating System Interface (POSIX®)**
  - This international standard is based on POSIX and includes specifications for I/O operations.
  - Not freely available, but useful for understanding standardized I/O interfaces.
