NJU-pa0-配置环境
Installing GNU/Linux手上一台主力windows台式机 一台mac 还有个ubuntu主机和腾讯云服务器
本pa最后要用GUI界面,为了避免折腾决定使用WSL2
安装WSL2
打开命令行允许虚拟化:
1Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
打开主板BIOS找到允许虚拟化并勾选
打开命令行输入:wsl –install自动下载wsl2
点开windows应用商店搜索ubuntu,选择要求的版本并安装
# First Exploration with GNU/Linux打开terminal,开启新的世界
Many of you always use operating system with GUI, such as Windows. But the terminal is completely with CLI (Command Line Interface). Have you wondered if ...
CASPP-datalab
配置实验环境为:
WSL2 ubuntu22.04 64位
i5-12400
Begin从该仓库拉取datalab
1git clone https://github.com/WuJean/HNU-CSAPP.git
按照要求在lab目录下make btest,编译测试程序
如遇到编译错误可能是缺少在64位下运行32位的相关包,apt获取后再次make即可
具体表现为头找不到头文件的错误
做完每题后用 ./dlc 查看使用符号是否符合规范,再次make后执行 ./btest查看分数
bitAnd12345678910/* * bitAnd - x&y using only ~ and | * Example: bitAnd(6, 5) = 4 * Legal ops: ~ | * Max ops: 8 * Rating: 1 */int bitAnd(int x, int y) { return ~((~x)|(~y));}
getByte123456789101112/* * getByte - Extr ...
如此编译
在学习计算机系统,通过汇编代码来理解计算机行为的过程中,笔者遇到了许多问题,也通过网上的许多教程理解了计算机的行为。一段汇编代码中往往有很多细节,但这些知识点总是分散的。笔者结合自己的学习过程,将学习笔记和网上的教程相结合,梳理学习脉络,以供自己和他人查看,希望大家都能有所收获,体会到计算机之美!
0xFF 更新调用者保存和被调用者保存todo
什么是调用者和被调用者保存
具体的实现
两种方法各有什么好处
在递归中的使用
0x00 编写一段代码12345678910111213#include <stdio.h>void func1(int a, int b) { int sum = a + b; printf("The sum of %d and %d is %d\n", a, b, sum);}int main() { int x = 3; int y = 4; func1(x, y); return 0;}
我们前往https://godbolt.org/中查看该代码的汇编形式
也可以gc ...
Begin your Blog
0x00 为什么要写博客学了很多东西,中断一段时间的学习后总觉得啥都忘掉了;折腾了很多东西,但再次折腾的时候总是要重新找教程;踩过很多坑,但是再次遇到的时候总要重新踩一般;做过什么事情,别人问的时候还得翻历史记录找链接。
如果你有遇到过以上的这些问题,那么你就该开始写博客了。诚然在写博客中会遇到很多的问题,在看完别人很好的技术文章后想自己总结一遍,但总觉得是在照抄别人的东西;自己搭建博客的时候会遇到许多问题,耗费很多的时间和精力;总是坚持不下去写博客,三分钟热度。但是这个折腾和总结的过程正是我们搭建自己的知识框架的过程,看过的文章再好,动动小手copy的时候也会发现很多忽略的细节,完成这样一个写的过程往往更能体会到作者的深意,缕清行文的思路;折腾得越久,投入得 时间越多,也会更想把自己得博客经营好;当别人问你问题的时候甩上自己文章得链接,岂不美哉!
0x01 选择博客框架我从大一接触到云服务开始,使用了很多种博客框架,其中最方便得就是云服务器上基于宝塔面板的Wordpress框架,使用方便而且容易配置域名放在公网访问,但是要进行备案以及内容审查,面临着域名、服务器过期等问题。
后来又尝 ...