你将学到的
  • x86 模拟器 Bochs
  • GDB 调试器
  • 系统调用的实现
  • Linux 进程切换
  • 进程同步与互斥
  • Linux 内存共享
  • Linux 虚拟文件系统
  • GCC 编译器
  • 系统引导
  • Linux 多进程编程
  • Linux 信号量
  • Linux 地址映射
  • Linux 设备管理
课程内容
  共15个章节
实验 1 熟悉实验环境
实验 2 操作系统的引导
实验 4 进程运行轨迹的跟踪与统计
实验 5 基于内核栈切换的进程切换
实验 6 信号量的实现和应用
实验 7 地址映射与共享
实验 8 终端设备的控制
实验 9 proc文件系统的实现
实验 10 C 语言实现 Linux pwd 命令

知识点: 1.Linuxpwd命令的使用 2.Linux文件系统中文件及目录的实现方式 3.Linux文件及目录系统调用接口的使用

实验 11 C 语言实现 Linux touch 命令

知识点: 1.函数getopt 2.UNIX系统函数open 3.函数utimensat

实验 12 C 语言实现文件类型统计程序

知识点: 1.保存文件类型信息的stat结构及lstat函数的使用 2.文件的七种类型及判断文件的类型的函数 3.读目录的相关系统调用,如opendir,readdir 4.保存目录项的dirent结构

实验 13 C 语言实现 Linux who 命令

知识点: 1.了解who命令工作流程 2.对两个系统数据文件var/run/utmp和/var/log/wtmp的了解 3.访问系统文件的接口函数getutentendutent、 4.了解utmp的结构内容

实验 14 C 语言实现 LRU 缓存

知识点: 1.LRU缓存的基本概念 2.C语言基本编程技巧 3.双向链表的C语言实现 4.哈希表的C语言实现

实验 15 Linux 多线程实现生产者消费者模式

知识点: 1.生产者消费者模型的概念 2.互斥量的使用,锁机制的实现方式 3.pthread_createpthread_joinpthread_mutex_initpthread_cond_initpthread_barrier_waitpthread_cond_wait的使用 4.描述停车场的数据结构

课程介绍

实验任务

  • 熟悉 hit-oslab 实验环境
  • 修改 bootsect.s 和 setup.s 完成系统引导
  • 添加两个系统调用并用于测试程序
  • 基于模板 “process.c” 编写多进程的样本程序并输出日志
  • 重写 switch_to 完成堆栈切换实现 TSSS
  • 用信号量解决生产者—消费者问题
  • Bochs 调试工具跟踪 Linux 0.11 的地址映射过程、为程序增加共享内存功能
  • 修改 Linux 0.11 对键盘输入和字符显示进行控制
  • 在 Linux 0.11 上实现 proc 文件系统内的 psinfo 结点

先学知识

需要了解实验楼的基本操作,推荐学习 新手指南之玩转实验楼

如果你以前没有使用过 Linux 和 C 语言,推荐学习 Linux 基础入门(新版)C 语言入门教程

本课程为网易云课堂李治军老师《操作系统之基础》、《操作系统之进程与线程》等四门课程的配套实验课,推荐开始实验之前先学习理论课程。

课程难度

本课程难度为较难。

面向用户

本课程为网易云课堂李治军老师《操作系统之基础》、《操作系统之进程与线程》等四门课程的配套实验课,面向有一定 Linux 与 C 编程基础的用户,推荐用户进行实验之前先学习理论课程。

课程教师

实验楼 共发布过 57 门课程

查看老师的所有课程 >
蓝桥楼+
实验楼会员
会员
开通会员,即刻开始学习