diff --git a/OperatingSystem/inputOutputSoftware.md b/OperatingSystem/inputOutputSoftware.md new file mode 100644 index 00000000..a781fa00 --- /dev/null +++ b/OperatingSystem/inputOutputSoftware.md @@ -0,0 +1,53 @@ +# 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.