-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
5c17fe4
commit 735d9f9
Showing
20 changed files
with
241 additions
and
63 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# 实验一:操作系统的启动 | ||
|
||
!!! tip "就像宇宙的大爆炸,操作系统的启动是一切的起点。<br/>在这个微妙的瞬间,一切从无到有,从混沌到秩序。" | ||
|
||
<p align="right" style="font-weight: bold">by Copilot</p> | ||
|
||
## 实验目的 | ||
|
||
1. 了解页表的作用、ELF 文件格式、操作系统在 x86 架构的基本启动过程。 | ||
2. 尝试使用 UEFI 加载并跳转到内核执行内核代码。 | ||
3. 实现基于 uart16550 的串口驱动,使用宏启用输出能力、并启用日志系统。 | ||
4. 学习并尝试使用调试器对内核进行调试。 | ||
|
||
## 实验基础知识 | ||
|
||
!!! note "善用 LLM 进行学习" | ||
|
||
对于现代计算机专业的学生,我们建议并要求大家学习借助 LLM(Large Language Model)进行学习,这是一种非常有效的学习方法,可以帮助你更快的学习到知识。 | ||
|
||
对于不理解的知识点和概念,我们建议优先参考文档、借助 LLM 进行实践,在仍然无法解决的情况下再向他人提问。 | ||
|
||
对于本次实验内容,你需要参考学习如下实验资料: | ||
|
||
|
||
## 实验任务与要求 | ||
|
||
1. 请各位同学独立完成作业,任何抄袭行为都将使本次作业判为 0 分。 | ||
2. 请参考 [代码规范](../../general/coding_convention.md) 进行实验代码编写。 | ||
3. 依据 [实验任务](./tasks.md) 完成实验。 |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# 实验二:中断处理 | ||
|
||
!!! tip "一场未预知的风暴,突如其来,改变了原本平静的世界。" | ||
|
||
<p align="right" style="font-weight: bold">by Copilot</p> | ||
|
||
## 实验目的 | ||
|
||
1. 了解中断的作用、中断的分类、中断的处理过程。 | ||
2. 实现基于 APIC 的中断处理程序,编辑 IDT 实现时钟中断,实现一个跑马灯。 | ||
3. 注册内核堆分配器。(不实现内存分配算法,使用现有代码赋予内核堆分配能力) | ||
4. 实现串口驱动的输入能力,尝试进行基础的 IO 操作和交互。 | ||
|
||
## 实验基础知识 | ||
|
||
!!! note "善用 LLM 进行学习" | ||
|
||
对于现代计算机专业的学生,我们建议并要求大家学习借助 LLM(Large Language Model)进行学习,这是一种非常有效的学习方法,可以帮助你更快的学习到知识。 | ||
|
||
对于不理解的知识点和概念,我们建议优先参考文档、借助 LLM 进行实践,在仍然无法解决的情况下再向他人提问。 | ||
|
||
对于本次实验内容,你需要参考学习如下实验资料: | ||
|
||
|
||
## 实验任务与要求 | ||
|
||
1. 请各位同学独立完成作业,任何抄袭行为都将使本次作业判为 0 分。 | ||
2. 请参考 [代码规范](../../general/coding_convention.md) 进行实验代码编写。 | ||
3. 依据 [实验任务](./tasks.md) 完成实验。 |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# 实验三:内核线程与缺页异常 | ||
|
||
!!! tip "在无尽的时间舞台上,微妙的轮转编织成了某种无形的序曲,舞者轮番上场,演绎着各自的生命。" | ||
|
||
<p align="right" style="font-weight: bold">by ChatGPT</p> | ||
|
||
## 实验目的 | ||
|
||
1. 了解进程与线程的概念、相关结构和实现。 | ||
2. 实现内核线程的创建、调度、切换。(栈分配、上下文切换) | ||
3. 了解缺页异常的处理过程,实现进程的栈增长。 | ||
|
||
## 实验基础知识 | ||
|
||
!!! note "善用 LLM 进行学习" | ||
|
||
对于现代计算机专业的学生,我们建议并要求大家学习借助 LLM(Large Language Model)进行学习,这是一种非常有效的学习方法,可以帮助你更快的学习到知识。 | ||
|
||
对于不理解的知识点和概念,我们建议优先参考文档、借助 LLM 进行实践,在仍然无法解决的情况下再向他人提问。 | ||
|
||
对于本次实验内容,你需要参考学习如下实验资料: | ||
|
||
|
||
## 实验任务与要求 | ||
|
||
1. 请各位同学独立完成作业,任何抄袭行为都将使本次作业判为 0 分。 | ||
2. 请参考 [代码规范](../../general/coding_convention.md) 进行实验代码编写。 | ||
3. 依据 [实验任务](./tasks.md) 完成实验。 |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# 实验四:用户程序与系统调用 | ||
|
||
!!! tip "" | ||
|
||
<p align="right" style="font-weight: bold">by</p> | ||
|
||
## 实验目的 | ||
|
||
1. 了解用户态与内核态的区别、用户程序的加载与执行。 | ||
2. 补充页表、内存分配相关知识,了解使用链接器脚本编译能够被加载执行的程序。 | ||
3. 实现基本的系统调用。 | ||
4. 实现用户程序的加载与执行,并切换到用户态。 | ||
|
||
## 实验基础知识 | ||
|
||
!!! note "善用 LLM 进行学习" | ||
|
||
对于现代计算机专业的学生,我们建议并要求大家学习借助 LLM(Large Language Model)进行学习,这是一种非常有效的学习方法,可以帮助你更快的学习到知识。 | ||
|
||
对于不理解的知识点和概念,我们建议优先参考文档、借助 LLM 进行实践,在仍然无法解决的情况下再向他人提问。 | ||
|
||
对于本次实验内容,你需要参考学习如下实验资料: | ||
|
||
|
||
## 实验任务与要求 | ||
|
||
1. 请各位同学独立完成作业,任何抄袭行为都将使本次作业判为 0 分。 | ||
2. 请参考 [代码规范](../../general/coding_convention.md) 进行实验代码编写。 | ||
3. 依据 [实验任务](./tasks.md) 完成实验。 |
File renamed without changes.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# 实验五:fork 的实现、并发与锁机制 | ||
|
||
!!! tip "" | ||
|
||
<p align="right" style="font-weight: bold">by</p> | ||
|
||
## 实验目的 | ||
|
||
1. 了解 fork 的实现原理,实现 fork 系统调用。 | ||
2. 了解并发与锁机制的概念,实现基于操作系统的自旋锁、信号量。 | ||
3. 编写基于 fork 的并发程序,并测试自旋锁、信号量的正确性。 | ||
|
||
## 实验基础知识 | ||
|
||
!!! note "善用 LLM 进行学习" | ||
|
||
对于现代计算机专业的学生,我们建议并要求大家学习借助 LLM(Large Language Model)进行学习,这是一种非常有效的学习方法,可以帮助你更快的学习到知识。 | ||
|
||
对于不理解的知识点和概念,我们建议优先参考文档、借助 LLM 进行实践,在仍然无法解决的情况下再向他人提问。 | ||
|
||
对于本次实验内容,你需要参考学习如下实验资料: | ||
|
||
|
||
## 实验任务与要求 | ||
|
||
1. 请各位同学独立完成作业,任何抄袭行为都将使本次作业判为 0 分。 | ||
2. 请参考 [代码规范](../../general/coding_convention.md) 进行实验代码编写。 | ||
3. 依据 [实验任务](./tasks.md) 完成实验。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# 实验五:fork 的实现、并发与锁机制 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# 实验六:硬盘驱动与文件系统 | ||
|
||
!!! tip "" | ||
|
||
<p align="right" style="font-weight: bold">by</p> | ||
|
||
## 实验目的 | ||
|
||
1. 了解文件系统的概念、作用。 | ||
2. 实现块设备、磁盘、分区、文件系统的抽象。 | ||
3. 了解 ATA 硬盘的工作原理、实现基本的读写驱动。 | ||
4. 实现 FAT16 文件系统的读取和只读文件访问。 | ||
|
||
## 实验基础知识 | ||
|
||
!!! note "善用 LLM 进行学习" | ||
|
||
对于现代计算机专业的学生,我们建议并要求大家学习借助 LLM(Large Language Model)进行学习,这是一种非常有效的学习方法,可以帮助你更快的学习到知识。 | ||
|
||
对于不理解的知识点和概念,我们建议优先参考文档、借助 LLM 进行实践,在仍然无法解决的情况下再向他人提问。 | ||
|
||
对于本次实验内容,你需要参考学习如下实验资料: | ||
|
||
|
||
## 实验任务与要求 | ||
|
||
1. 请各位同学独立完成作业,任何抄袭行为都将使本次作业判为 0 分。 | ||
2. 请参考 [代码规范](../../general/coding_convention.md) 进行实验代码编写。 | ||
3. 依据 [实验任务](./tasks.md) 完成实验。 |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# 实验七:更好的内存管理 | ||
|
||
!!! tip "" | ||
|
||
<p align="right" style="font-weight: bold">by</p> | ||
|
||
## 实验目的 | ||
|
||
1. 实现帧分配器的内存回收,操作系统的内存统计。 | ||
2. 实现操作系统栈的自动增长。 | ||
3. 尝试实现 mmap 系统调用,实现用户态的内存管理算法。 | ||
|
||
## 实验基础知识 | ||
|
||
!!! note "善用 LLM 进行学习" | ||
|
||
对于现代计算机专业的学生,我们建议并要求大家学习借助 LLM(Large Language Model)进行学习,这是一种非常有效的学习方法,可以帮助你更快的学习到知识。 | ||
|
||
对于不理解的知识点和概念,我们建议优先参考文档、借助 LLM 进行实践,在仍然无法解决的情况下再向他人提问。 | ||
|
||
对于本次实验内容,你需要参考学习如下实验资料: | ||
|
||
|
||
## 实验任务与要求 | ||
|
||
1. 请各位同学独立完成作业,任何抄袭行为都将使本次作业判为 0 分。 | ||
2. 请参考 [代码规范](../../general/coding_convention.md) 进行实验代码编写。 | ||
3. 依据 [实验任务](./tasks.md) 完成实验。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
# 实验七:更好的内存管理 | ||
|
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# 实验八:扩展实验 | ||
|
||
!!! tip "" | ||
|
||
<p align="right" style="font-weight: bold">by</p> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters