Resources
Instructor:
Dr. Rasit Eskicioglu
E2-574 EITC
The following are only a very small, but representative set of material on the subject. You can always find more on the web.
UNIX
- Unix Intro on Youtube.
- The UNIX time-sharing system, Dennis M. Richie and Ken L. Thompson. Communications of the ACM, Volume 17, Issue 7, pp. 365-375, July 1974.
- For more on UNIX and the C Programming Language, check the archives of the late Dennis Ritchie.
C Programming
- The C programming language (second edition), Kernighan and Ritchie, Prentice Hall, Inc. 1988. Several online copies of this book is available on the web, but I did not put any links here due to copyright issues.
x86 Emulation
- QEMU - A Fast x86 platform and CPU emulator
- Bochs - A more mature, but quirkier and much slower x86 emulator. But, Bochs is a more faithful emulator of real the hardware.
x86 Assembler and Architecture
- PC Assembly Language, Paul A. Carter, November 2003.
- Intel 80386 Programmer’s Reference Manual, Michael Ludwig, 1987. Not an official Intel source, but much shorter than the below set, yet gives the essential information.
- IntelĀ® 64 and IA-32 Architectures Software Developer Manuals
- GCC In-line Assembly, Sandeep S.
PC Hardware Programming
Debugging
xv6 operating system
We will use the latest edition (Spetember 4, 2018)
You can also get the pdf versions of both the book and the code.
Zephyr Project
The following link is the main resource of the Zephyr project.
Tock operating system
The following link is the main resource of the tock operating system.
Some relevant Blogs (written by Gustavo Duarte)
- Motherboard Chipsets and the Memory Map
- How Computers Boot Up
- The Kernel Boot Process
- Memory Translation and Segmentation
- CPU Rings, Priviledge, and Protection
- What your Computer does While you Wait
- Getting Physical With Memory
- Anatomy of a Program in memory
- How the Kernel Manages Your Memory
- Page Cache, the Affair Between Memory and files
- Journey to The Stack, Part I
- Recursion: Dream With a Dream
- Closures, Objects, and the Fauna of the Heap
- When Does Your OS Run?
- System Calls Make the World G Round