菜单

核心系统

相关源文件

本文档涵盖了 OSSU 计算机科学中的核心系统课程,它提供了计算机体系结构、操作系统和网络方面的基础知识。这些材料弥合了理论计算机科学概念与实际系统实现之间的差距,为学生学习高级系统编程和体系结构课程做好准备。

有关课程中涵盖的系统编程语言信息,请参阅核心编程。有关高级系统课程和专业方向,请参阅高级系统

目的与范围

核心系统课程向学生介绍了现代计算机系统背后的基本概念。学生将从构建基本的数字电路开始,逐步深入了解复杂的操作系统内部机制和网络协议。这种循序渐进的设计旨在提供对软件和硬件在多个抽象层次上如何交互的全面理解。

核心学习目标

  • 理解从逻辑门到处理器的计算机体系结构
  • 掌握操作系统概念和实现
  • 学习网络协议和分布式系统基础知识
  • 培养系统编程和低级优化技能

来源:README.md193-216

课程进度架构

核心系统课程遵循精心设计的渐进式结构,逐步建立知识

来源:README.md193-216

详细课程分解

从与非门到俄罗斯方块系列

硬件基础课程从基本的逻辑门开始构建完整的计算机系统

课程组成部分持续时间重点领域主要成果
第一部分:硬件6周布尔代数、门逻辑、内存、计算机体系结构可运行的计算机模拟
第二部分:软件6周虚拟机、高级语言、编译器完整的软件栈

涵盖的主题

  • 过程式编程
  • 手动内存管理
  • 布尔代数
  • 门逻辑
  • 内存
  • 计算机体系结构
  • 汇编
  • 机器语言
  • 虚拟机
  • 高级语言
  • 编译器

来源:README.md213-214

操作系统:三足鼎立 (OSTEP)

OSTEP 课程提供两条不同的学习路径,以适应不同的职业目标

基本方法要求

  • Unix/Linux 系统
  • 基本命令行工具
  • C 编译器 (GCC 或 Clang)
  • C 语言基础阅读理解能力

扩展方法先决条件

  • 精通 C 编程
  • x86 汇编语言知识
  • 完成两门从与非门到俄罗斯方块课程

来源:coursepages/ostep/README.md1-47

OSTEP 扩展实现细节

对于选择扩展方法的学生,课程包含实践内核编程

主要项目组成部分

  • initial-utilities:C 语言编程评估
  • processes-shell:具有进程管理、重定向和并行命令功能的 Unix Shell
  • xv6 内核项目:用于调度、内存管理、并发的直接内核修改
  • ostep-homework:模拟练习和理论问题

来源:coursepages/ostep/README.md66-133

计算机网络课程

网络部分涵盖协议实现和网络体系结构

涵盖的主题

  • 网络协议
  • TCP/IP 协议栈实现
  • 路由算法
  • 网络安全基础
  • 分布式系统概念

实践组成部分

  • Wireshark 实验(用于协议分析)
  • 网络编程作业
  • 协议实现练习

来源:README.md216

先决条件和依赖

核心系统课程有严格的先决条件要求

先决条件领域所需知识验证方法
编程类 C 编程语言从与非门到俄罗斯方块第一部分
数学代数、概率、计算机科学基础计算机网络
工具命令行、版本控制完成计算机科学工具课程
扩展路径高级 C 语言、x86 汇编initial-utilities 项目

先决条件流程

来源:README.md213-216 coursepages/ostep/README.md49-54

与核心计算机科学课程的整合

核心系统是多个高级领域的基础

顺序依赖

  • 核心理论:算法和数据结构建立在系统理解之上
  • 核心安全:安全概念需要操作系统和网络知识
  • 核心应用:数据库和分布式系统依赖于操作系统和网络基础

并行学习机会

  • 系统课程可以与核心数学课程并行学习
  • 网络概念补充了核心安全主题
  • OSTEP 扩展项目为高级系统专业化做准备

来源:README.md64-67 README.md193-304

评估与验证

学生通过以下方式验证其系统知识

  1. 从与非门到俄罗斯方块项目:完整的计算机实现
  2. OSTEP 作业:章节练习和模拟
  3. 扩展项目:内核编程和系统实现
  4. 网络实验:协议分析和实现

时间投入

  • 最短路径:总计 30-32 周(OSTEP 基本方法)
  • 扩展路径:40+ 周,包含密集的内核编程
  • 建议:每周 20 小时,以按时完成

来源:README.md54 coursepages/ostep/README.md8-10