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.