yiichan
码龄7年
关注
提问 私信
  • 博客:251,935
    251,935
    总访问量
  • 196
    原创
  • 851,521
    排名
  • 73
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2017-11-02
博客简介:

辣鸡的博客

查看详细资料
个人成就
  • 获得153次点赞
  • 内容获得76次评论
  • 获得333次收藏
  • 代码片获得1,245次分享
创作历程
  • 18篇
    2021年
  • 35篇
    2020年
  • 40篇
    2019年
  • 83篇
    2018年
  • 20篇
    2017年
成就勋章
TA的专栏
  • mit 2018 6.828 xv6
    21篇
  • 网络
    1篇
  • latex
    1篇
  • SDN
    4篇
  • C++ Primer 5th
    1篇
  • 汇编语言
    9篇
  • csapp
    3篇
  • 自制操作系统
    9篇
  • parallel programming
    1篇
  • PAT甲级题解
    24篇
  • C语言
    29篇
  • Python
    2篇
  • 数据结构
    25篇
  • 算法竞赛
    35篇
  • C++
    28篇
  • 刷题记录
    37篇
  • 未解决问题
    1篇
  • Linux
    7篇
  • codeforces
    1篇
  • Java
    1篇
  • 树算法
    10篇
  • 图算法
    3篇
兴趣领域 设置
  • 后端
    架构
创作活动更多

新星杯·14天创作挑战营·第9期

这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你们参加为期14天的创作挑战赛! 注: 1、参赛者可以进入活动群进行交流、分享创作心得,互相鼓励与支持(开卷),答疑及活动群请见 https://bbs.csdn.net/topics/619626357 2、文章质量分查询:https://www.csdn.net/qc

475人参与 去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

wireshark抓包tcp为何没有四次挥手 而是三次挥手

在wireshark上抓包,使用telnet直接连接baidu的ip,端口使用www,p4@u1804:~$ ping www.baidu.comPING www.a.shifen.com (183.232.231.174) 56(84) bytes of data.64 bytes from 183.232.231.174 (183.232.231.174): icmp_seq=1 ttl=128 time=37.8 ms64 bytes from 183.232.231.174 (183.232
原创
发布博客 2021.11.24 ·
5550 阅读 ·
5 点赞 ·
2 评论 ·
15 收藏

Linux Ubuntu 设置脚本开机启动

主要参考下面这个博客ubuntu18开机启动脚本但是要注意,有的ubuntu里面并不存在这个目录,在一开始的vim /etc/systemd/system/rc-local.service这一步就会失败。比如我的系统。最后我使用find在/lib/systemd/system下找到了rc-local.service。之后将这个文件复制到/etc/systemd/system下,再继续进行链接里的操作,才成功的。完整流程如下直接编辑/复制后编辑文件sudo cp /lib/systemd
原创
发布博客 2021.09.26 ·
380 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

IEEE模板解决找不到引用文献错误 Citation ‘×××ב on page x undefined.

IEEE模板解决找不到引用文献错误 Citation ‘×××ב on page x undefined.使用官网下载的IEEEtrans模板,bib文件格式正确,发现使用winedt编译就正常,但是使用vscode+texlive编译器编译出来一个参考文献都没有,每个参考文献的位置处都显示Citation ‘×××ב on page x undefined. 网上说修改配置文件,加上两次编译pdflatex和bibtex啥的,都加了也没用,见https://blog.csdn.net/qq_3839
原创
发布博客 2021.09.06 ·
2327 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

MIT_6.828_lab2_总结

简而言之,使用pageinfo结构体映射物理页,使用pages数组保存页结构体,pagefreelist保存空闲页结构体,使用pa2page和page2pa实现物理页和页结构体的转换,使用二级页表机制进行物理地址与虚拟地址的转换,使用PDX、PTX等宏(其实就是简单的移位操作)实现虚拟地址查页表,各级页表的页表项结构相同,都是前20位物理页索引,后12位标志位。更详细的页表项、结构说明等,参见lab2_exercise1讲解。手动实现了10个函数boot_alloc()static void *
原创
发布博客 2021.07.31 ·
537 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

MIT_6.828_lab2_exercise5_讲解

exercise5要求补充mem_init()完全按照提示来就行了。// Set up a two-level page table:// kern_pgdir is its linear (virtual) address of the root//// This function only sets up the kernel part of the address space// (ie. addresses >= UTOP). The user part of the ad
原创
发布博客 2021.07.31 ·
256 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

MIT_6.828_lab2_exercise2_3_4_讲解

exercise2、3都是看文档,和调试命令不要不认真看文档!不然后面肯定会有做不下去的地方,逼着你再从头开始把文档看一遍!比如exercise2就是详细复习一下intel 80386处理器的页表机制具体实现,虽然以前学了,但是也一定要再认真看一下,不然写不下去的!exercise4要完成下面这几个函数,在kern/pmap.c中 pgdir_walk() boot_map_region() page_lookup() page_rem
原创
发布博客 2021.07.31 ·
381 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MIT_6.828_lab2_exercise1_讲解

这一部分任务就是完成5个函数boot_alloc()mem_init()page_init()page_alloc()page_free()做之前,要先分析一下内存分布和地址转换的内容。这些内容都是我做的时候边做边摸索的,遇到做不下去,就观察一下查一查;如果不明白下面这些的话,这几个函数是完不成的。如果想直接看答案,这部分可以跳过。内存分布下面是lab1里面就介绍了的内存分布。+------------------+ <- 0xFFFFFFFF (4GB)| 32-
原创
发布博客 2021.07.23 ·
494 阅读 ·
1 点赞 ·
2 评论 ·
3 收藏

mit 6.828 lab1_exercise12_讲解

好难啊,去年做的时候就很难,难到直接不知道怎么出来的,现在能搞出来了。。。。。。Exercise 12. Modify your stack backtrace function to display, for each eip, the function name, source file name, and line number corresponding to that eip.In debuginfo_eip, where do __STAB_* come from? This questi
原创
发布博客 2021.07.18 ·
1113 阅读 ·
1 点赞 ·
1 评论 ·
2 收藏

mit_6.828_lab1_exercise11_讲解

test_backtrace反汇编后长这样test_backtrace(int x){f0100040: 55 push %ebpf0100041: 89 e5 mov %esp,%ebpf0100043: 53 push %ebxf0100044: 83 ec 0c sub $0xc,%espf0100047: 8b 5d 08
原创
发布博客 2021.07.15 ·
472 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

pdf复制去掉换行符

我突然间发现,pdf复制后去掉换行符很简单,只需要直接将复制到的文本ctrl v粘贴到浏览器搜索框中,之后再ctrl a全选,ctrl c复制出来,就没有换行符了。我用的chrome。
原创
发布博客 2021.07.15 ·
1853 阅读 ·
5 点赞 ·
4 评论 ·
2 收藏

函数调用栈详解

前几天忙里偷闲重做6.828,发现在lab 1 exercise 11卡住了,才发现之前觉得很熟了的函数调用栈已经因为太久没接触忘了,一年没有用过这些东西了。看了几篇博客,发现理解还是不够深入,只能自己再手动测一下试一试了。写了一个C文件,叫temp.c#include <stdio.h>int double_add_int(int a, int b) { int c = a; int d = b; int e = a + b + c + d; retu
原创
发布博客 2021.07.09 ·
1188 阅读 ·
0 点赞 ·
3 评论 ·
5 收藏

include errors detected cannot open source file glib.h glib.h glibconfig.h no such file or directory

最近写网安作业,要用到libvmi,发现打开源码缺失库glib。cannot open source file glib.h发现要先安装glib。sudo apt-get install libglib2.0-dev之后使用g++ -v -E -x c++ -会输出g++ 需要include的所有路径。如下。wang-an@ubuntu:~/libvmi/examples$ g++ -v -E -x c++ -Using built-in specs.COLLECT_GCC=g++
原创
发布博客 2021.07.04 ·
1471 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

配置6.828时遇到的makefile错误

做6.828时,配置qemu,碰到了一个makefile错误,去年配没遇到过。qemu安装过程见课程官网tools安装说明。当我从官网git到qemu源码包之后,./config完,下一步就是make了,但是这时候报错了。make[1]: *** No rule to make target '/home/yiichan/qemu/exec.c', needed by 'exec.o'. Stop.Makefile:173: recipe for target 'subdir-i386-softm
原创
发布博客 2021.06.08 ·
713 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

P4官方实验4. Explicit congestion notification

Explicit congestion notification显式拥塞通知。ECN支持端到端的网络拥塞通知来防止丢包。如果一个终端支持ECN,它会将ipv4.ecn的值设为1或2.对这样的包,每一个switch可能改变它的值为3,如果队列长度大于一个阈值。接受者会将值复制给发送者,并且发送者会减慢发送速度。在这个实验中,我们要完成:把ipv包头中的8bits tos域改成6 bits diffserv和2 bits ecn在出路由中对比当前的queue length和ECN_THRESH
原创
发布博客 2021.03.13 ·
1167 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

P4官方实验3.P4Runtime

Implementing a Control Plane using P4Runtime使用P4Runtime来发送流表项到交换机,而不是使用交换机命令行接口。在mycontroller.py中,我们定义明确的流表、键、动作的名字,我们使用P4Info_helper来将这些名字转化成IDs,P4Runtime需要这些IDs来执行。任何表、键、动作的改变都必须在表项中被反映。代码解析头文件首先是引入了一堆库,和需要用到的p4runtime_lib。#!/usr/bin/env python2i
原创
发布博客 2021.03.08 ·
2782 阅读 ·
5 点赞 ·
2 评论 ·
6 收藏

P4官方实验1. Implementing Basic Forwarding

P4官方实验1 实现基础转发介绍交换机要实现接下来的功能更新元和目的mac减少IP头的TTL将包转发到合适的端口我们的P4程序使用V1Model结构写成,该结构被P4.org上的bmv2软件交换机实现。作者建议我们阅读v1model.p4文件。我们需要使用mininet,这是斯坦福大学的一个开源项目,用于生成一个虚拟网络,包括虚拟链路、主机、交换机、路由器等,用于实验测试。第一步:运行不完全的起始代码在basic目录下make源代码make run之后使用h1 ping h2,肯
原创
发布博客 2021.03.05 ·
1772 阅读 ·
3 点赞 ·
2 评论 ·
15 收藏

P4_Basic_Forwarding

P4交换机:实现基本转发P4语言项目地址 https://github.com/p4lang在github这个项目最开始的说明里,有两种配置P4的方法,一种是自己配,我没配出来,许多apt-get文件无法下载更新;另一种是直接用斯坦福的一个现成的虚拟机,下载镜像后导入virtualbox。推荐使用第二种方法,就是使用现成虚拟机这个方法。不好好看readme,让我在方法一花了太多时间,没有发现这是二选一的,只是在闷着头做。虚拟机导入后,home目录下应该有现成的tutorials文件夹(我忘了是
原创
发布博客 2021.02.01 ·
613 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

C++ Primer 5th 2.3 复合类型

2.3.1 引用引用就是一个对象的别名,由于被引用的一定要是一个对象,而引用本身不是对象,所以不能定义引用的引用。引用一定要在定义时就指定被引用对象。引用的类型和被引用对象的类型一定要是相同的。int i = 1024;int &r = i;double &r1 = i; //错误,i为int,而r1为double型,不相同,不对应2.3.2 指针空指针对于空指针,有至少三种定义方法。int *p = NULL; //NULL是预编译变量,在预编译时会被替换成0,等价
原创
发布博客 2021.01.12 ·
197 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

为什么.bashrc中的alias别名不能用于脚本中和Makefile

下周高级计算机网络课要复现并且汇报A会文章,成功复现就能拿A。我选了篇sketch的,sliding sketch, SIGKDD 20’。没想到编译发现一定要stdc++11,一堆错误。挨个改Makefile确实可以,但是太费劲,所以想在.bashrc里面加个alias别名,g++='g++ -std=c++11'没想到一点用都没有。所以还是改了回去。使用自己写的脚本测试发现,alias在shell脚本中用不了,发现因为如下原因。为什么alias在shell脚本里用不了简要说,是因为shell
原创
发布博客 2020.11.12 ·
1612 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

CSAPP Lab 3 Attack Lab phase1~3

Lab 3 Attack labphase 1第一个很简单,只需要用x命令查看栈内容,定位到ret的返回位置,再用自己输入的缓冲区溢出数据覆盖就行了。计算好需要输入的字节长度,将touch1函数的首地址恰好覆盖原先的栈顶元素,这样ret就会返回到touch1函数,而不是返回到正常的test函数。需要注意的是,由于转移目标地址输入到栈中是ascii码形式保存的,所以如果地址是一些难以输入的ascii码怎么办?官方给了一个转换小程序hex2raw,能够将两位16进制表示的ascii码转换成字符输入,这样就
原创
发布博客 2020.08.04 ·
884 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多