Ubuntu 22.04 配置 前言这里记录一下配置Ubuntu22.04的过程,主要实现了: ssh 远程免密访问 配置 git & github 内网穿透远程 ssh 访问 v2ray、v2raya(虽然最后采用了其它的网络加速方案,但也是可行的) zsh 美化 远程桌面访问(目前只能在同一局域网下,内网穿透失效) 换软件源 开机启动脚本 hexo & npm ssh 远程免密访问因为这台电脑的角色是 2024-09-10 Ubuntu #Ubuntu
nemu框架细节研究(一) 一、前言现在做到了 PA2.3后面,遇到的问题有点多,感觉总在棉花上踩。遇到了一个 bug 迟迟无法解决:用 native 且没有定义 __NATIVE_USE_KLIB__ 跑 Bad Apples 会失败,但是用 nemu 跑竟然会成功。这说明我的 klib 比 glibc 还完备吗?看了两个小时,也没看出什么。思考良久,感觉还是对项目构建过程缺乏细节上的了解,这成了学习进度上的瓶颈。于是 2024-09-07 RISCV > PA > 虚拟机 #NEMU #PA2
大二下学期学习总结 〇、前言为什么这一年还没结束,就要总结一些事情呢?因为今天是大三开学的第一天,也是今天我今天来学校的第一天。这里讲一个小故事,今天下午 4 点 30 我准时来到学校,也就意味着我没有参与上午的课。尽管这样,我心中还是很窃喜。我原本打算昨天来到学校,这样我就能参与今天的课。但是昨天的温度很高,我上午看了一下天气预报,实时温度是 39 度。但是我认为绝对不仅仅是 39 度,真实室外温度可能超过 4 2024-08-26 Personal_Summary #个人总结
nemu、am项目构建 nemu首先研究 nemu 的构建方式。 直接看 nemu 的 Makefile(~/ysyx-workbench/nemu/Makefile): 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 2024-08-23 OS > RISCV > PA #NEMU #PA2 #AM
程序, 运行时环境与AM 运行时环境一个事实是, 应用程序的运行都需要运行时环境的支持, 包括加载, 销毁程序, 以及提供程序运行时的各种动态链接库(你经常使用的库函数就是运行时环境提供的)等. 为了让客户程序在NEMU中运行, 现在轮到你来提供相应的运行时环境的支持了。 程序的运行时环境(Runtime Environment)是指在程序执行时提供的软件和硬件环境,它支持程序的运行并提供必要的服务和资源。运行时环境通 2024-08-22 OS > RISCV > PA #模拟器 #NEMU #PA2
NEMU 添加更多的指令 前言上一篇博客中介绍了如何添加指令,这篇将会熟悉这个过程,学习以及添加更多的指令。 所有程序在am-kernels/tests/cpu-tests/tests 目录下有很多测试: 12345678910111213141516171819202122232425262728293031323334353637ls -ltotal 140-rw-rw-r-- 1 l 2024-08-21 OS > RISCV > PA #模拟器 #NEMU #PA2
NEMU 添加指令 前言前面讨论了 nemu 执行一条指令的过程,在源码中,可以看到它目前可以解析的指令有限: 1234567891011121314151617181920212223242526272829static int decode_exec(Decode* s) { int rd = 0; word_t src1 = 0, src2 = 0, imm = 0; s-> 2024-08-14 OS > RISCV > PA #模拟器 #NEMU #PA2
NEMU 指令执行过程 NEMU 架构NEMU 是一个CPU模拟器,它使用 C语言 完成了模拟取指令、指令解析、指令执行、寄存器、初始化等,可以执行很多平台的任何二进制指令。 初始化nemu main 中进行了一些初始化,这里只研究关键的初始化: 12345678910111213init_mem();/* Initialize devices. */IFDEF(CONFIG_DEVICE, init_device( 2024-08-13 OS > RISCV #模拟器 #NEMU
NEMU 代码导读 项目构建首先得了解一些 make 的行为,重要的就是查看make 的行为以及make 的子进程如何与系统进行交互,比如 : strace -f make make -nB # 只打印命令不执行 B强制构建 make -d make -debug=v 具体RTFM。 nemu/Makefile SRCS: 和YEMU差不多, 是需要编译的源文件 CFLAGS: 2024-08-12 OS > RISCV #模拟器 #NEMU
程序的执行和模拟器 freestanding 运行时环境示例程序: 1234567#include <stdint.h>void _start() { volatile uint8_t* p = (uint8_t*)(uintptr_t)0x10000000; *p = 'A'; while (1) ;} 编译:rv32gcc 2024-08-09 OS > RISCV #模拟器 #二进制程序 #程序