Lazy loaded imageICS01 概述

type
status
date
slug
summary
tags
category
icon
password
💬
本系列文章基于笔者于2024秋季学期在计算机系统导论(ICS)课上所做的笔记,借助 GPT / Deepseek 进行了一些删改。由于本人学识有限,难免出现错误和遗漏之处,敬请读者谅解。
CSAPP(Computer Systems: A Programmer's Perspective)和ICS(Introduction to Computer Systems)是计算机系统基础的重要课程,让我们从初学者的角度来了解它们。
CSAPP(Computer Systems: A Programmer's Perspective)是一本经典的计算机系统教材,国内译本为机械工业出版社的《深入理解计算机系统》,最新版本为原书第三版。这本书从程序员的视角出发,帮助读者理解计算机系统的工作原理。
notion image
ICS(Introduction to Computer Systems)以CSAPP为教材,是计算机科学(CS)专业本科生的重要基础课程,使你能够:
  1. 理解程序运行的底层原理,写出更好的代码
  1. 掌握内存管理、程序优化的基本技能
  1. 了解计算机系统的基本组成部分及其工作原理
  1. 具备解决系统层面问题的能力
  1. 为后续学习操作系统、编译原理等课程打下基础
ICS包含多个精心设计的Lab,有助于你深入掌握理论知识并获得实践经验:
  • Data Lab:位级操作和整数/浮点数运算,加深对计算机数据表示的理解
  • Bomb Lab:通过反汇编和调试拆除"二进制炸弹",提升汇编语言理解能力
  • Attack Lab:学习缓冲区溢出攻击原理,了解栈帧和程序安全机制
  • Arch Lab:处理器架构设计与优化,24年使用Rust进行了重新编写
  • Cache Lab:实现高性能存储系统,理解缓存原理、优化程序性能
  • Shell Lab:构建简单的Unix shell,学习进程控制和异常处理
  • Malloc Lab:实现动态内存分配器,深入理解动态内存分配机制
  • Proxy Lab:开发网络代理服务器,掌握网络编程基础
这些实验项目由易到难,循序渐进,每个实验都聚焦于特定的系统概念,通过实践加深理解。

在 CLab 上运行实验

CLab是由北京大学学生 Linux 俱乐部开发并维护、开箱即用的免费云计算服务,为教学与科研服务。在ICS课程中,助教将介绍使用CLab在服务器上部署Linux主机、并远程地在主机上完成Lab的过程。完成Lab之后,你需要通过 autolab 提交;某些Lab可能限制你的提交次数(版本数)。
Lab的完成时间一般不少于两周,最后一个Proxy Lab一般截止在期末考后。你共有5个graceday可以使用。具体而言,不使用graceday,你必须在每个Lab的due前提交;每使用一个graceday可以将期限延长一天;每个Lab最多使用2个graceday。

成绩评定

⚠️
此为24秋课程的数据,请以实际选课时为准
  • 期中考试 15%
  • 期末考试 40%
  • Labs 30%
  • 平时表现(小班课、书面作业)15%

文章的一些记号

page icon
这里是每个部分的前言,简要介绍该部分包含的内容。
page icon
这里是一些概念解释、概念总结以及主线之外的“拓展知识”,大部分不是考试的重难点,甚至在考试范围之外,你可以选择性阅读。
Prev
关于建站
Next
ICS02 数据
Loading...
Article List
SunVapor的小站
计算机系统导论
文档