CASPP-bomblab
开始写bomblab了,听说这是所有lab里最有趣的lab。反思一下写这篇博文既想当作实验报告,又想当成一个教程,边做边写总会出现一些纰漏,故前半部分记录了做lab的全过程,后半部分再做全局的总结和思考。
前置知识实验一览Phase 1反汇编出phase_1的汇编代码:
1(gdb) disas phase_1
123456789101112Dump of assembler code for function phase_1: 0x08048b60 <+0>: sub $0x1c,%esp 0x08048b63 <+3>: movl $0x804a284,0x4(%esp) 0x08048b6b <+11>: mov 0x20(%esp),%eax 0x08048b6f <+15>: mov %eax,(%esp) 0x08048b72 <+18>: call 0x80490a4 <strings_not_equal> 0x08 ...
ucore-lab0 and 1
本实验仅仅是记录个人的实验过程,并不带有任何教程性质和可参考性为了方便在远程访问,本实验将全程在nuc9上编写
实验环境:
nuc9幽灵峡谷
esxi8.0 ubuntu22.04
必须是desktop版本!一定要!
设置实验环境直接在github拉取代码文件:
1git clone https://github.com/chyyuu/ucore_lab.git
安装硬件模拟器QEMU
123sudo apt-get install qemu-system将qemu动态链接上sudo ln -s /usr/bin/qemu-system-i386 /usr/bin/qemu
编程方法和通用数据结构了解一个操作系统的底层构造,最重要也是最基础的就是了解它的编程方法和通用的数据结构。
编程方法采用了面向对象编程以及方法接口:
123456789101112131415161718192021// pmm_manager is a physical memory management class. A special pmm manager - XXX_pmm_manager// o ...
HNU-数据挖掘-面向第一次作业学习
第一题题目假设所分析的数据包括属性 age,它在数据元组中的值(以递增序)为
13 ,15 ,16 ,16 ,19 ,20 ,20 ,21 ,22 ,22 ,25 ,25 ,25 ,25 ,30 ,33 ,33 ,35 ,35 ,35 ,35 ,36 ,40 ,45 ,46 ,52,70。
a. 该数据的均值是多少?中位数是什么?
b. 该数据的众数是什么?讨论数据的模态(即二模、三模等)。
c. 该数据的中列数是多少?
d. 你能(粗略地)找出该数据的第一个四分位数(Q1)和第三个四分位数(Q3)吗?
e. 给出该数据的五数概括。
f. 绘制该数据的盒图。
g. 分位数-分位数图与分位数图有何不同?
解答a. 平均值:30.15 中位数:31.5
模态指的是一组数据中出现最频繁的数值
b. 众数是25和35 有两模态
中列数是指将数据按升序排列后,取最中间的五个数字的平均数。
c. 中列数:24.4
在统计学中,四分位数是将一组数据分为四个等份的值。四分位数的概念是用于描述数据的分布和形态。通常,我们使用三个四分位数来描述数据的分布,它们分别是:
第一个四分位数Q1:将数据集分为 ...
Esxi下配置ubuntu环境及tesla p4驱动安装
本文记录了在nuc9上的esxi环境下安装ubuntu22.04虚拟机,并安装tesla p4驱动的过程。
笔者的windows电脑嫌麻烦没装双系统,虽然wsl2用起来非常丝滑,但由于还没折腾好ssh连接wsl,以及win机子总不可能一直开着机,在外想用下linux环境时还是有一台本地的主机比较方便;有了上次过年背电脑回家的惨痛经历,以后回家就背nuc9回家了mac+nuc9+tesla p4,移动工作站yyds!
esxi环境下安装ubuntu虚拟机获取ubuntu ISO在ubuntu官网下载iso文件,笔者暂时没有可视化桌面的需求,故下载LTS版本的ios
https://ubuntu.com/download/server
将下载好的镜像文件上传到esxi的目录中:
切换显卡直通在 ESXi (VMware ESXi) 中,显卡直通(GPU Passthrough)是一种技术,允许将主机上的物理显卡直接分配给虚拟机,使虚拟机能够独占地访问显卡资源,而不与其他虚拟机或主机共享。这使得虚拟机可以在物理显卡上运行图形密集型应用程序,如游戏、图形渲染、人工智能等,而无需通过虚拟化软件 ...
Make and Makefile
一、如何编译一个程序
要编译一个C语言程序,通常需要使用C编译器将源代码文件编译成目标文件,再将多个目标文件链接成可执行文件。以下是使用GCC编译器编译C语言程序的基本步骤:
编写C语言程序的源代码文件,通常以.c为文件扩展名。例如,我们可以创建一个名为main.c的源代码文件,包含以下代码:
1234#include <stdio.h>int main() { printf("Hello, world!\n"); return 0;}
打开终端,并切换到C语言程序所在的目录。
使用GCC编译器将源代码文件编译成目标文件。命令格式为:
1gcc -c source_file.c -o object_file.o
其中,source_file.c为源代码文件名,object_file.o为目标文件名。例如,我们可以使用以下命令将main.c编译成目标文件main.o:
1gcc -c main.c -o main.o
如果程序包含多个源代码文件,则需要分别编译每个源代码文件,并将它们链接成可执行文件。命 ...
I2C工训摸鱼指北
首先先甩个图上来,这些东西我真的是一点都没听,每次去工训就和傻子一样坐着,直到要验收了才想起居然要做东西。相信很多同学有和我一样的感受,所以我在验收前一周的工训课上决定发奋图强,一个小时速通工训,为后来者减少这个东西的恶心程度。(其实是I2C协议让我提起了一点学习的兴趣)
速通开始
如果仅仅是要过的话,只要完成单元测试,上课没去别被点到(第二次课开始可能点名),提交了实验报告就能过了。但是我们速通需要的是精致速通,如何花最少的时间学到一点点东西;拿到不算低的分数;收获一点点成就感,尤为重要。
我们看占比最多的实验报告到底包含了什么内容:
编写TestBench的内容(一点点课后习题)可以加点仿真的内容
ModelSim工具的使用(操作的截图)可以和上一步合并
分析代码
实验总结
实验报告部分(1)如何描述组合电路 、时序电路、状态机?
组合电路是一种最基本的电路,它的输出只取决于当前的输入,没有任何延迟或存储,因此在响应时间上非常快速。它通常用于执行简单的逻辑操作,例如布尔运算、逻辑比较和选择。
时序电路是一种电路,它包含了存储器元件,可以在内部存储一定数量的位或字,并且可 ...
腾讯云域名转cloudflare
折腾了个homelab,已经弄好了frp内网穿透,想搭建一些自己的服务放到公网上访问;买好域名做好解析和ssl之后短暂的访问成功了一会,再次访问便被要求备案,就像下面这样:
原因是当域名解析到国内的服务器时都需要备案处理。
虽然我没有搞奇奇怪怪东西的想法,我的服务也没有提供给无法科学上网的人的必要,一大堆审核以及不定时的电话盘问很坏人的心情,我搭个网站搞搞服务 整得像搞破坏一样。为了更加自由的域名解析以及为将来更换国外的vps做准备,我决定将域名解析迁移到知名的cdn服务商cloudflare上。
折腾的过程注册cloudflare并添加域名官网:Cloudflare - The Web Performance & Security Company
首先打开 Cloudflare 的官网,点击 Sign Up 注册账号。输入邮箱和密码,点击 Create Account 即可。
注册完成后点击Add a Site添加自己的域名
选择免费的服务即可
更换dns服务器
由于我们的域名是在腾讯云购买的,我们需要手动指定该域名的dns服务器
打开腾讯云的域名界面:
用cloud ...
不同操作系统编译的异同
操作系统不同的操作系统 windows linux macos
关于操作系统是这样定义的: 操作系统(英语:Operating System,缩写:OS)是管理计算机硬件与软件资源的系统软件,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
什么是操作系统
OS 存在的意义即是:提供硬件资源的高效管理
OS提供cpu、存储功能、外部io的封装管理;并对外提供抽象的硬件服务
OS之间本质的不同在于内核的不同,在于内核对资源的管理和分配理念不同
从硬件角度讲,计算机硬件所提供的功能其实非常简单:CPU 提供的数学四则运算(包括逻辑运算),内存/硬盘提供的数据存储功能,各类接口提供的与外部世界做交互的 I/O。剩下的硬件,都是为了高效整合这三块资源而存在的。而 OS 本身,就是对这三块资源的统一管理与封装,对应用层的用户提供抽象的硬件服务。
它们的本质不同,在于各自的 OS kernel 的实现的不同。也即是,虽然大家面对的 ...
github学生认证申请指南
学习完go语言想下个好点IDE练练手,想到自己白嫖过jetbrains家的clion学生授权,决定使用大名鼎鼎的goland,下载完之后发现一年期的授权过期了需要重新认证;重新上传学信网还得等好几天的审核,于是乎看到了一旁的github学生认证,决定一不做二不休直接一步到位完成认证,顺便白嫖一下其他的福利。
准备你需要准备的是:
你所在学习的edu邮箱
一个github账号
一个靠近你学校所在地的定位
学生证或校园卡
注!
千万别使用任何的代理,这会影响你的认证
记得开启定位权限,方便github审核
最好!最好使用手机连接校园网进行认证
开始认证绑定教育邮箱使用教育邮箱进行认证可以免去绝大多数的信息填写,且认证成功率极高
我们在github的email中添加教育邮箱并验证邮箱
这边会出现接收不到验证邮件的问题,原因是大部分的校园邮箱将github的邮件拉入了黑名单,我们需要手动将其加入白名单
然后重发邮件,完成邮箱认证,开始下一步。
开始认证进入认证地址,选择个人学生认证
https://education.github.com/pack
如果不使用学校邮箱的话就得填一 ...
Hexo博客配置多端编辑同步
0x00 折腾的开始上一篇博客讲了如何搭建一个hexo的博客,配置操作在任何一个平台都是通用的。与wordpress这类带管理页面的动态博客不同,hexo静态page是需要自己在配置好的机子上手动上传的,如果使用多设备的话就会很不方便。苦主在宿舍用的是windows台式机,出门一般带着mac笔记本,在外常常写不了博客,于是便决定配置一个多端编辑同步来治好我拖更的习惯!
0x01 多端同步原理讲到多端同步我们就不得不提github了,我们的博客就是基于github page搭建的。一个很简单的思路就是在将我们的配置文件在每台机子上都配置一遍,然后在编辑结束后,未改动的机子将改动的内容同步,这样就能很简单的实现多端同步。
但是单纯的复制粘贴会面临每台机子独特的.git文件不同、本地分支冲突、ssh key冲突等问题;git的分支功能很好的解决了该问题。
hexo g将我们的源文件部署, hexo d上传的只是网页部署文件,这些文件上传到了 github的 master分支,我们在另一台电脑上如果能够拥有源文件的话,同样将这些部署文件上传到 github 的 master分支即可,那么其实我 ...