# hit-oslab-linux **Repository Path**: zpxuzhen/hit-oslab-linux ## Basic Information - **Project Name**: hit-oslab-linux - **Description**: 学习哈工大李治军老师的《操作系统》 B站学习视频: https://www.bilibili.com/video/BV1d4411v7u7 课程要求:学完此课程要达到可以自己写一个简单的操作系统,对操作系统内部发生了什么做到心中有数。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 6 - **Created**: 2021-09-03 - **Last Updated**: 2025-05-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # hit-oslab-linux #### 介绍 学习哈工大李治军老师的《操作系统》 B站学习视频: https://www.bilibili.com/video/BV1d4411v7u7 课程要求:学完此课程要达到可以自己写一个简单的操作系统,对操作系统内部发生了什么做到心中有数。 #### 环境要求 - 本项目可以在Ubuntu16.04和Ubuntu18.04的64位系统上运行,Ubuntu20.04未做过测试。 - 如果是ubuntu 32位系统(i386)或ubuntu版本 <= 14.04的64位系统,请参考:https://github.com/DeathKing/hit-oslab - 当然也可以去“实验楼”,有直接可以运行的环境,链接:https://www.lanqiao.cn/courses/115 #### 安装教程 使用 -b start 分支,可以获得一个干净的不带后面实验目录的项目。 ``` git clone https://gitee.com/zpxuzhen/hit-oslab-linux.git -b start cd hit-oslab-linux ./start/setup.sh -s # 第一次运行要加-s参数,安装环境,以后就可以把-s省略了。 ``` 安装完成后,会在项目目录下面多出一个oslab,我们的运行环境及linux-0.11代码就在这里面。 如果安装成功,会直接编译linux-0.11,并启动运行。 #### 使用说明 首先进入oslab目录,然后可以执行下面的命令: ```shell 编译linux-0.11的命令: cd linux-0.11 && make 运行linux-0.11的命令: ./run 复原linux-0.11目录的命令: ./run init 调试步骤: 【1】打开1个窗口运行 ./dbg-c 【2】打开另1个窗口运行【不推荐这种,建议直接到步骤3】 ./rungdb 【3】也可以使用Visual Studio Code工具,那就不用再使用./rungdb了。 使用Visual Studio Code打开oslab目录,安装C/C++插件。 我已经提前把调试的配置文件.vscode/launch.json放在了oslab目录。 直接F5开始调试就可以了。 ``` #### 实验内容 实验 1:操作系统的引导 实验 2:系统调用 实验 3:进程运行轨迹的跟踪与统计 实验 4:基于内核栈切换的进程切换 实验 5:信号量的实现和应用 实验 6:地址映射与共享 实验 7:终端设备的控制 实验 8:proc文件系统的实现 **实验内容简介** 实验1~2是操作系统的边缘(引导启动+接口调用)。 从实验3开始就进入操作系统的内部,内部主要分为“**多进程**”和“**文件**”两个部分。 而**多进程视图是操作系统的最基本核心**,文件视图是为了管理除了CPU和内存以外的其他外部设备。 【1】多进程视图(CPU管理、内存管理) 【2】文件视图(IO设备管理、磁盘管理) 更高级的操作系统还会加入:网络管理、电源管理、多核管理。 **更多实验:** 《**操作系统原理、实现与实践**》中的大项目: 大型实践项目一——内核级线程的设计与实现 大型实践项目二——虚拟内存与交换分区的设计与实现 大型实践项目三——鼠标驱动和简单的图形接口实现 大型实践项目四——网卡驱动与网络协议的设计与实现 #### 参考资料: https://www.lanqiao.cn/courses/115 https://hoverwinter.gitbooks.io/hit-oslab-manual/content/index.html 《Linux内核完全注释》内核版本0.11 作者:赵炯 OldLinux:http://www.oldlinux.org/ linux正式版:https://mirrors.edge.kernel.org/pub/linux/kernel/