请问如何在xv6-public的启动信息中打印自己自定义的内容?

发布于 2022-09-12 02:31:47 字数 1733 浏览 18 评论 0

在虚拟机上安装好xv6-public后,输入make qemu-nox进入当前终端后会打印出启动信息,像这样:

qemu-system-i386 -nographic -drive file=fs.img,index=1,media=disk,format=raw -drive file=xv6.img,index=0,media=disk,format=raw -smp 2 -m 512 
xv6...
cpu1: starting 1
cpu0: starting 0
sb: size 1000 nblocks 941 ninodes 200 nlog 30 logstart 2 inodestart 32 bmap start 58
init: starting sh
$ 

问题是我改如何在init:starting sh后直接打印出我自己想要的信息?像网上有的是说添加一个.c文件,但是这样等于又要输入一次指令而不是直接打印信息。比如我想尝试添加一些人物介绍,如:

qemu-system-i386 -nographic -drive file=fs.img,index=1,media=disk,format=raw -drive file=xv6.img,index=0,media=disk,format=raw -smp 2 -m 512 
xv6...
cpu1: starting 1
cpu0: starting 0
sb: size 1000 nblocks 941 ninodes 200 nlog 30 logstart 2 inodestart 32 bmap start 58
init: starting sh
Name: Jack Ma
Company: Alibaba
Address: Hangzhou, China
$ 

该怎么实现呢?我自己尝试过修改main.c中的cprintf,如:

// Common CPU setup code.
static void
mpmain(void)
{
  cprintf("cpu%d: starting %d\n", cpuid(), cpuid());
  cprintf("Name: Jack Ma %d\nCompany: Alibaba %d\nAddress: Hangzhou, China");
  idtinit();
      // load idt register
  xchg(&(mycpu()->started), 1);
// tell startothers() we're up
  scheduler(); 
      // start running processes
}

却只能得到这样的内容:

qemu-system-i386 -nographic -drive file=fs.img,index=1,media=disk,format=raw -drive file=xv6.img,index=0,media=disk,format=raw -smp 2 -m 512 
xv6...
cpu1: starting 1
Name: Jack Ma 1
Company: Alibaba 1
Address: Hangzhou, Chinacpu0: starting 0
Name: Jack Ma 0
Company: Alibaba 0
Address: Hangzhou, Chinasb: size 1000 nblocks 941 ninodes 200 nlog 30 logstart 2 inodestart 32 bmap start 58
init: starting sh
$ 

希望可以得到大家的指导谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文