抄写Linux源码(Day10:在 qemu_x86_64 上打印字符串)

根据 Day9 阅读的 Shell 程序分析

为了支持 shell 程序的执行,我们需要提供:
1.缺页中断(不理解为什么要这个东西,只是闪客说需要,后边再说)
2.硬盘驱动、文件系统 (shell程序一开始是存放在磁盘里的,所以需要这两个东西)
3.fork,execve, wait 这三个系统调用,也可以说是 进程调度 (否则无法 halt shell 程序并且启动另外的程序)
4.键盘驱动、VGA/console/uart 驱动、中断处理 (支持键盘输入和屏幕显示)

这些东西毫无疑问都需要在内核层上开发

milestone1: 所以,我们第一个目标是在内核层上打印 Hello World,随后才能在内核层进行更高难度的开发

回顾之前的笔记

  1. 抄写Linux源码(Day6:读闪客文章第一回 “最开始的两行代码”)
  2. 抄写Linux源码(Day7:读闪客文章第二回 “自己给自己挪个地儿”)
  3. 抄写Linux源码(Day5:能够打印字符串的 MBR)

我们能够轻松地实现在内核层上打印 Hello World 的功能

已知 Intel CPU 在上电后会加载 MBR 到 0x7c00 并执行,那么我们只要把打印字符串的代码写在磁盘的 MBR 上,在让 qemu-x86_64 加载这块磁盘就可以了

具体操作可以在 3. 抄写Linux源码(Day5:能够打印字符串的 MBR) 里找到

这样一来,我们自己的 OS 就终于有了第一段代码,仓库可见:https://github.com/YinhuaChen-cloud/cnix

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值