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

OS第一弹---6.s081 lab1 为什么要开始写lab,最近虽然到了复习周,但是复习是真的烦,所以干脆摆烂,直接冲去学OS,MIT开源的6s081,属于一整个爱住了。只能说很难不爱这种实验,虽然一做就是一整天,刚开始的艰难的阅读也好,后面的对于每个函数的专门理解也好,可能会有点麻烦吧,可是收获到知识的那种快乐也是真的快乐。所以没有人能束缚得住我们,除了我们自己。 阅读详情

代码: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

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

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

 

#include "kernel/types.h"
#include "user/user.h"
#include "kernel/fcntl.h"

void
一只小菜鸡学MIT公开课6.S081的经验分享(持续更新) 记录一个小菜鸡学习MIT操作系统课6.S081从完全不会到慢慢摸索出来的经验分享与踩坑过程. 如果能穿越回去把这篇文章告诉当时的自己,能节省很多时间. 阅读详情

相关推荐

6.s081 实验1 记录

实验一test_pipe.cprimes.c # 实验一没什么前置知识,配置好环境,会c语言直接就可以做。 Lab util: Unix utilities test_pipe.c #include "kernel/stat.h" #include "user/user.h" int main(int avgc, char* argv[]) { char buf[1]; char abyte[] = "abc"; int p[2]; pipe(p); in

nulofa的博客 422

ANSYS APDL生死单元实战:焊接模拟从入门到精通(附完整命令流)

本文详细介绍了使用ANSYS APDL进行焊接模拟的核心技术——生死单元法。通过一个完整的平板对接焊案例,从原理剖析、模型搭建、命令流编写到移动热源施加和后处理,手把手指导工程师掌握这一动态仿真方法,有效预测焊接过程中的温度场、残余应力与变形。

k6l7m8n9的博客 153

Fluent 中多相流模型全面解析

3.颗粒或液滴在连续相中的运动:若关注颗粒或液滴在连续相中的运动轨迹、分布规律以及与连续相的相互作用,如喷雾干燥、气力输送等过程,Eulerian-Lagrangian 模型则是最佳选择。Eulerian-Eulerian 模型可以准确模拟气体在固体颗粒中的流动情况,包括颗粒的流化状态、气体与颗粒之间的传热传质过程,为气固流化床的优化设计和操作提供依据。通过该模型,可以了解混合器内不同位置的混合程度、颗粒的运动轨迹以及液固相间的相互作用,从而改进混合器的结构和操作条件,提高混合效率。

khhdp的博客 3087

移动端抓包实战指南:从HTTPS解密到QUIC协议与证书绑定破解

HTTPS作为保障网络通信安全的核心协议,其工作原理基于TLS/SSL加密与证书信任链验证。在移动应用开发与测试中,抓包是调试接口、分析性能、排查问题的关键技术手段。然而,随着移动端安全性的提升,传统的代理抓包方法常因证书绑定、HTTP/3/QUIC协议等挑战而失效。这要求开发者掌握分层诊断思维,协同使用代理工具、协议分析工具及底层流量捕获工具。例如,面对证书绑定导致的流量不可见,需借助Wireshark进行协议层分析;针对基于UDP的QUIC协议,则需使用支持该协议的抓包工具或临时禁用特性。本文聚焦移动端

weixin_27722377的博客 298

金融数据自动化:从同花顺API到Excel的智能转换之旅

本文详细介绍了如何利用同花顺API实现金融数据自动化处理,并将其智能转换为Excel格式的全流程。通过Python编程和Excel高级技巧,读者可以掌握从数据获取、清洗到输出的完整解决方案,大幅提升金融数据分析的效率和准确性。文章特别强调了同花顺API的使用技巧和Excel自动化输出的最佳实践。

sql99的博客 462

Android TV 遥控器全链路按键适配指南:从物理按键到应用响应

本文深入探讨了Android TV遥控器按键适配方案,涵盖红外和蓝牙遥控器的工作原理及完整适配流程。红外遥控部分详细介绍了从硬件调试、驱动适配到键值映射配置的方法,并提供了实用的调试命令。蓝牙遥控器部分解析了HID协议和报告描述符,给出内核层与Android层的适配代码示例。文章还介绍了游戏手柄、语音遥控器等特殊外设的适配技巧,并提供了系统级调试工具和内核级调试方法,为开发者提供了一套完整的Android TV输入设备适配解决方案。

学无止境 1266

以太网_RGMII接口与GMII接口的转化_03

RGMII接口转GMII接口!

weixin_42499230的博客 378

全志 camera: 4路AHD摄像头转MIPI

TP2815 驱动模块主要实现将 4 路的 AHD/TVI/CVBS Camera 的数据转换为 MIPI 数据,从而实现在 T527 端来对数据进行处理和送显。

Linux驱动开发工程师,熟悉Linux/Android底层驱动、TP、显示、IIC、网络等通用外设调试适配,Linux上层应用开发。常用平台瑞芯微、全志、恩智浦等。 9097

ardupilot开发 --- MavLink 篇

ardupilot开发 --- MavLink 篇

记录老板的每次pua,分享领导每天的毒鸡汤... 4252

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: select,poll,epoll的区别 各自支持的最大fd数上限以及原因
下一篇: MIT-6.s081-OS lab alloc: Allocator for xv6
RedemptionC
博客等级 码龄11年 103粉丝 84原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值