# HIT-Linux-0.11 **Repository Path**: jesson-deng/HIT-Linux-0.11 ## Basic Information - **Project Name**: HIT-Linux-0.11 - **Description**: 哈工大李治军老师操作系统课程,实验环境和源码。 实验要求:https://github.com/hoverwinter/HIT-OSLab 老师录播课:https://www.bilibili.com/video/BV19r4y1b7Aw?spm_id_from=333.788.videopod.episodes&vd_source=7165ad177186208f56217f3a6c7a743a - **Primary Language**: C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-07-26 - **Last Updated**: 2025-08-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 实验要求源项目地址:https://github.com/hoverwinter/HIT-OSLab # 如何开始 1. 该仓库的工具和代码在 Ubuntu 16.04 和 Ubuntu 24.04 系统上测试通过,做实验的时候最好用这两个系统,避免不必要的折腾。 2. 克隆该仓库到你的系统上 ``` $ git clone https://gitee.com/jesson-deng/HIT-Linux-0.11.git ~/oslab # 这里的 ~/oslab 可以根据自己的需要进行更改。 ``` 3. 环境搭建 进入到 0-prepEnv/hit-oslab-jesson 目录,运行 setup.sh 脚本 ``` $ 0-prepEnv/hit-oslab-jesson/setup.sh ``` 4. 编译代码,查看运行效果 可以编译 1-boot 项目,查看运行效果 进入 1-boot/linux-0.11/ 目录 ``` $ make ``` 在 Makefile 同级目录会生成 Image 文件,拷贝到 ~/oslab/linux-0.11 目录下。 oslab 目录下运行 ``` ./run ``` 即可看到 ![运行效果](./images/running.png) # 操作系统代码实现及记录 [操作系统](http://mooc.study.163.com/course/HIT-1000002004?tid=2001329005#/info)所要求的实验的代码及相关记录,授课老师是哈工大的李治军老师,李老师的讲课风格浅入深出,讲得非常好! ## 0. 实验环境搭建 **致谢[DeathKing/hit-oslab项目](https://github.com/DeathKing/hit-oslab)**,提供了Ubuntu环境下的实验环境的一键配置脚本及其所需的源代码,工具等材料。我在此基础上进行了一些小改动,使配置脚本可以在Ubuntu 16.04上使用。具体参见[Linux 0.11实验环境准备](https://github.com/Wangzhike/HIT-Linux-0.11/blob/master/0-prepEnv/准备安装环境.md)。 ## 1. 操作系统的引导 参见[操作系统的引导](https://github.com/Wangzhike/HIT-Linux-0.11/blob/master/1-boot/OS-booting.md)。 ## 2. 系统调用 参见[系统调用](https://github.com/Wangzhike/HIT-Linux-0.11/blob/master/2-syscall/2-syscall.md) ## 3. 进程运行轨迹的跟踪与统计 参见[进程运行轨迹的跟踪与统计](https://github.com/Wangzhike/HIT-Linux-0.11/blob/master/3-processTrack/3-processTrack.md),修改时间片在我本地实验环境效果不明显,弃坑...,以后再研究是怎么回事:( ## 4. 基于内核栈切换的进程切换 参见[基于内核栈切换的进程切换](https://github.com/Wangzhike/HIT-Linux-0.11/blob/master/4-processSwitchWithKernelStack/4-processSwitchWithKernelStack.md) ## 5. 信号量的实现和应用 参见[信号量的实现和应用](https://github.com/Wangzhike/HIT-Linux-0.11/blob/master/5-semaphore/5-semaphore.md) ## 6. 地址映射与共享 ## 7. 终端设备的控制 ## 8. proc文件系统的实现 ## 技术支持: 微信: coder-jesson