如果说前几章还是纸上谈兵,那么或许的几个章节就更多设计具体的实际操作和模拟了。首先但然后是编译了,针对编译其实有着不同的优化等级,需要根据自己的需求确定优化的级别,不同的优化级别可能会影响到你实际的使用,甚至达不到你本身代码可以达到的业务逻辑。所以有时候就会出现明明我这边业务逻辑都是对的,实际却去了意想不到的地方。
编译完之后当然就是运行测试了,搭建测试环境是最玄学的事情了,有时候按部就班一下子就能完成,有的却坎坎坷坷走不完,qemu虚拟机+debian平台;然而不幸的我就中招了。
1、不管你有没有装,咱安装一堆工具sudo apt-get install qemu libncurses5-dev gcc-aarch64-linux-gnu build-essential git bison flex libssl-dev qemu-system-arm
2、qemu-system-aarch64 --version 查看了版本发现是装的4.2.0,而我的是2.11.1
4、./run_debian_arm64.sh build_kernel 编译内核,开心的日子到此为止
鲜红的报错在此,然后就前前后后折腾了快两周,查看的软件版本都是当前最新的支持版本aarch64-linux-gnu-gcc也重新安装了。但就是不支持,网上找了也没找到合适的,看了进度比较快的
maskmoo 他比较顺利也没有遇到类似的问题。我的是Ubuntu18,是不是支持的版本低了,还是qemu-system-aarch64版本里的缘故,还在尝试解决中,导致后续的几个章节都只能看看流程而不能实操验证
,有解决方向的朋友也希望不吝赐教
。
环境卡住了,就先往下看看ftrace,trace跟踪器方便用于快速定位问题,在发生某些问题的时候可以尽快定位上下文。
后续perf工具的使用,没法再虚拟机实验,就直接在本地进行了安装
perf list:
后续对具体的性能测试,生成svg图这些就没有继续跑了,还是得抓紧解决环境问题,同时后续的宕机测试也需要,加油去干