THU uCore Lab 0 / 1 快速上手
本文最后更新于 409 天前,其中的信息可能已经有所发展或是发生改变。
此系列并不是完整的实验指南,也不能替代实验指导书,而是意图是用我的经验,挑选一部分较好的文章,为时间不太充裕的读者节省一部分查找资料的时间。
简而言之, a collection for jump start.

系统环境

你需要一个64位的Linux,但不建议使用WSL,Make容易出现玄学错误。可以在清华镜像站下载Ubuntu,下载后还可以换清华源。

系统安装后还需要添加32位支持、安装GCC Multilib、QEMU。

uCore代码在https://github.com/chyyuu/os_kernel_lab,Git Clone下来之后使用git checkout master切换分支,否则是rCore源代码。

如果make qemu提示没有找到gnome-terminal,可以(1)安装gnome-terminal或(2)将makefile中的gnome-terminal改成你的终端名称。

知识基础

请不要忘了官方文档“练习”之外的内容,也很有用。

练习1

什么是Makefile:https://seisman.github.io/how-to-write-makefile/introduction.html

查找命令和参数的用法:在Shell中运行man,或者更容易查找的Ubuntu Manpage网站

什么是主引导记录/MBR/0x55aa是干什么的:https://daemon369.github.io/linux/2013/08/03/master-boot-record

GCC文档:https://gcc.gnu.org/onlinedocs/gcc-11.2.0/gcc/

练习2

GDB远程调试:https://www.cnblogs.com/blogs-of-lxl/p/10462262.html 或使用vscode(没错,万能的vscode):https://blog.xhyeax.com/2020/10/15/vscode-debug-ucore/

练习3

A20总线:https://wiki.osdev.org/A20_Line

GDT:https://wiki.osdev.org/Global_Descriptor_Table

练习4

这部分可以查看官方文档的“ELF 文件格式概述”和“硬盘访问概述”部分。

练习5

看代码注释。

练习6

中断向量表:https://wiki.osdev.org/Interrupt_Descriptor_Table

编程部分看代码注释。

Challenge

暂不包含,如果时间不充裕,不建议尝试Challenge。

实验报告

https://kiprey.github.io/2020/08/uCore-1/

https://www.jianshu.com/p/2f95d38afa1d

https://niebelungen-d.github.io/posts/ucore-lab-1/

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇