Introduction to Computer System
By ICS Team, based on lectures by Danfeng Shan, Hao Li, and others.
These are the course notes for COMPSCI 400727: Introduction to Computer System at Xi'an Jiaotong University.
Here is the official course description:
This course is inspired by the CMU-15-213 curriculum and delves into the intricacies of computer hardware, guiding students through the step-by-step process of how C code is translated into X86_64 assembly and executed on the CPU. The course is structured with increasing levels of complexity:
It begins with data representation, introducing the fundamental concepts of assembly language, followed by an exploration of memory structure and the significance of cache design. The course then covers CPU pipelining and strategies for program optimization to enhance performance. Additionally, we will examine how a C program transitions into machine-readable machine code, including the process of linking. Finally, the concept of virtual memory will be introduced.
As an introductory course to systems, it offers both depth and breadth, serving as a prerequisite for future research in computer architecture and network systems.
Disclaimer: Beta
These notes have not been proofread. They likely contain errors.
If you’re an ICS student at XJTU, in any case of dispute, the official course lectures are the correct source of truth.
Corrections
As of the Spring 2025 semester, this textbook is still being actively maintained and updated.
If you see any parts that needs to be corrected, please open a Github issue here.
Source and Changelog
The source for the textbook and a log of all changes are available on Github.
License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Acknowledgements
The design of this textbook is inspired by many outstanding courses. We would like to express our gratitude to the following courses that have provided us with valuable inspiration:
© 2025. ICS Team. All rights reserved.
Part 1
© 2025. ICS Team. All rights reserved.
Chapter 1
© 2025. ICS Team. All rights reserved.
Chapter 2
© 2025. ICS Team. All rights reserved.
Part 1
© 2025. ICS Team. All rights reserved.
Chapter 1
© 2025. ICS Team. All rights reserved.
Chapter 2
© 2025. ICS Team. All rights reserved.
ICS Labs
© 2025. ICS Team. All rights reserved.
Lab 0: How to Start
© 2025. ICS Team. All rights reserved.
Lab 1 Data Lab
© 2025. ICS Team. All rights reserved.
Lab 2: Bomb Lab
© 2025. ICS Team. All rights reserved.
Lab 3: Attack Lab
© 2025. ICS Team. All rights reserved.
Lab 4: Cache Lab
© 2025. ICS Team. All rights reserved.
Lab 5: Optimization Lab
© 2025. ICS Team. All rights reserved.
Lab 6: Linker Lab
© 2025. ICS Team. All rights reserved.
Contributors
Core Developers
We would like to express our heartfelt thanks to all the contributors who have helped improve XJTU-ICS! Your efforts and collaboration make this project better every day 🌟.
Special thanks to XJTU-ICS Team Members. Big shout-out to them 🚀:
- Danfeng Shan (Professor)
- Hao Li (Professor)
- Yunguang Li (HEAD TA, Master Student)
- Orion (TA, Senior Student)
- Tang Tang (TA, Senior Student)
- Jinnuo Du (TA, Senior Student)
- Boxuan Hu (TA, Junior Student)
You can view the full list of contributors and their contributions here.
If you feel your contributions are not listed, please feel free to open a pull request to add yourself. Your work is greatly appreciated 🎉!
How to Contribute
We welcome contributions from everyone! If you're interested in contributing to XJTU-ICS, please follow these steps 👀:
- Fork the repository to your own GitHub account.
- Clone the forked repository to your local machine.
- Create a new branch for your changes.
- Make your changes and commit them with clear and concise commit messages.
- Push your changes to your forked repository.
- Open a pull request to the main repository.
- Since Rule Set is in use, you must contribute with a PR.
If you are curious about how to set up a textbook with mdBook, we have also provided a detailed tutorial for you to start.
© 2025. ICS Team. All rights reserved.