MIT-6.s081-OS lab sh : Simple xv6 shell

这篇博客介绍了如何从简单开始实现MIT-6.s081操作系统实验室中的XV6 shell。作者提供了GitHub链接,首先讲解了如何实现简单的echo功能,然后逐步引入IO重定向和简单管道。对于更复杂的重定向和管道组合,如'grep lion < data.txt | wc > count',作者建议分步思考并使用fork-exec策略。最后,提及会分享更多关于代码的总结。
摘要由CSDN通过智能技术生成

代码:https://github.com/RedemptionC/xv6-riscv-6s081/tree/sh

不要一开始就看着最难的东西 从小处入手 其实这个实验本来也是这么设计的

比如评分标准里首先是simple echo,单纯实现这个的话还是挺简单的,只需要设置一下exec的参数即可(把命令行的指令split一下,当然c语言没有split,所以write from scratch确实有些难度)

然后比较简单的是simple io redirection,simple pipe,之所以是simple,指的是这种指令:

echo hello > file

wc < file

cat file | wc

很直接 只含有三者其一 所以判断一下 就可以写出相应的代码

比较让人觉得难的是both redirection,pipe and redirect

就是本文一开始提到的那种 不熟的话看起来会觉得很难处理 不过也可以start small:即给出一个具体的例子 思考应该怎么处理

比如:

grep lion < data.txt | wc > count

我们首先根据 | 的位置 ,把命令行的输入分开,因为他的两边都是指令,需要fork-exec

然后利用一点类似递归的技巧,就可以完成,至少可以通过测试了~

// 先贴代码吧 改天再总结

 


                
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值