自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Tasdily的博客

笨比一个,欢迎交流

  • 博客(137)
  • 资源 (2)
  • 收藏
  • 关注

转载 柔性数组详解

1 零长度数组概念众所周知, GNU/GCC 在标准的 C/C++ 基础上做了有实用性的扩展, 零长度数组(Arrays of Length Zero) 就是其中一个知名的扩展.多数情况下, 其应用在变长数组中, 其定义如下struct Packet{ int state; int len; char cData[0]; //这里的0长结构体就为变长结构体提供了非常好的支持};123456首先对 0长度数组, 也叫柔性数组 做一个解释 :用途 : 长度...

2021-05-27 16:31:08 2495 1

原创 360安全浏览器总是锁屏解锁后自启动打开网页,烦~

问题描述因为某些原因不得不下载360浏览器,但是发现安装360浏览器后会在锁屏解锁后 自动启动打开网页,觉得很恶心,360的一些流氓服务真是让我一生黑!解决方法刚开始还以为是默认打开了自启动服务设置,后面发现关闭后没啥用,经过多方探索发现360浏览器自带了一个锁屏智能上网设置,就是这个设置让我找半天找不到。我们找到他不要勾选。...

2021-02-08 09:44:57 18268 16

原创 运用paramiko远程执行命令报错:TypeError: from_buffer() cannot return the address of the raw string withi....

问题描述:运用paramiko远程执行命令报错:from cryptography.hazmat.backends import default_backendNo handlers could be found for logger "paramiko.transport"Traceback (most recent call last): File "test.py", line 17, in <module> ssh() File "test.py", lin

2020-10-14 12:08:59 2292 2

转载 C++文件编译不报错运行程序报错:undefined symbol 问题的查找、定位与解决方法

程序执行中报错,报错内容如下XXXX:symbol lookup error:/home/....../libpdfium.so:undefined symbol:CRYPT_MD5Generate报错分析: 这个问题表明是符号未定义的问题,而且直接定位于产品链接的第三方动态库libpdfium.so中,于是从libpdfium.so中着手。因为有这个第三方库的源码,给错误的查找提供了可能。错误定位: 但是这个符号未定义的错误很头疼,因为在我原来的想法...

2020-09-26 22:27:10 15369 1

转载 linux下使用script命令生成^ [和^ M个字符的原因和方法

在Linux上,使用bash shell,当我使用脚本命令时,生成的文件被称为打字稿。 当我用vim打开这个文件时,每一行都包含^ M字符,并且有几行(由于我的彩色命令提示符)包含一个字符^ [。 我想用什么都replace这些字符,有效地从生成的脚本中删除它们。首先,我试过:%s/^[//gc,:%s/\^[//gc,:%s/\^\[//gc和其他一些变体。 没有一个匹配^ [字符,所以search/replace不起作用。我也尝试了所有这些与^ M字符相同的结果。 一些谷歌search...

2020-08-10 21:48:37 1059

转载 linux下运行c语言程序报Segmentation Fault错误原因总结即解决办法汇总

最近在项目上遇到了Segmentation Fault的错误,一直调试不出来是哪里出了问题,对于刚接触嵌入式的,也不知道该如何去调试一个项目,定位内存问题,纠结了好几天,好阿红整理下自己的思路。从头开始。  以下内容只为整理来自己使用的,大多来源于网络,感谢大家的分享:  http://www.cnblogs.com/no7dw/archive/2013/02/20/2918372.html  http://blog.chinaunix.net/uid-20780355-id-538814.ht

2020-06-04 22:31:54 5458 2

原创 用码云导入github创建为自己的仓库从而解决git clone很慢甚至导致失败的问题

码云导入github登录码云注册账号。导入想要clone的仓库:建议公开,不然私有的还要秘钥,麻烦。导入成功后把这个自己的仓库的地址链接在linux中clone就好了到此就可以愉快的克隆了。...

2020-05-20 23:24:40 1480

原创 编译grpc的过程中缺少库zlib package,报错:Package zlib, required by grpc, not found

问题描述在安装grpc的时候发现缺少相关依赖环境,报错:configure: error: Package requirements (grpc++ >= 1.17.0 grpc >= 7.0.0) were not met:Package 'zlib', required by 'grpc', not found到网上搜了相关教程,感觉杂乱不堪,摸索中安装特此记录安装过程:ubuntu下安装使用zlib库zlib是提供数据压缩用的函式库,我们先要在官方下载zli.

2020-05-20 22:50:53 3430

原创 scapy发包:用Python脚本构造带有私有协议头(直接带十六进制数据)的报文

问题描述: 由于测试需求需要发一个带有私有协议的头部数据的报文来进一步做相关用例测试,而scapy经过查资料和测试只能带初已知网络协议的的头部数据为,真正数据部分只能带字符串,而不能带自己想要的十六进制数据。比如我想发一个在以太网头部数据之前附加上自己的私有协议头数据的报文,具体如下:私有头协议数据:03 00 00 02 10 02 00 00 40 00 00 00...

2020-04-18 16:37:06 3220

原创 VScode通过remote ssh连接虚拟机 & 报错 过程试图写入的管道不存在(已解决)

因为在windows上VSCode使用的默认ssh工具存在实现上的问题,导致一旦我们直接使用默认ssh连接会有报错:”过程试图写入的管道不存在”(The process tried to write to a nonexistent pipe)。那出现这样的问题我们有两种解决办法。解决办法一:安装open ssh,并在设置ProxyCommand时使用安装好的openssh...

2020-03-30 10:31:40 50790 27

转载 windows下使用vscode远程连接Linux服务器进行开发---使用工具remote-ssh

介绍赶着双十二买了个服务器玩玩,一开始使用putty连接服务器直接在上面用vim进行编程,但是速度确实不敢恭维经常出现问题,就研究如何在本地windows上使用vscode进行远程开发。这里介绍下其中的细节。开始具体实现通过vscode中的Remote-SSH插件完成的,这个插件是微软帝国亲自操刀编写的,官方介绍说是可以让你通过SSH连接远程服务器作为本地的开发环境,接下来就一步步了解...

2020-03-24 00:33:12 20639 11

原创 Ubuntu手动挂载Windows共享文件夹命令

命令先直接给出:sudo mount -t cifs -o username=tasdily,password=115xck129,rw,file_mode=0777,dir_mode=0777,uid=0,gid=0 //192.30.42.193/TasdilyShare /mnt/shared先解释下这个命令相关参数的意义:mount:挂载-t:vfstype 指定文件系统的...

2020-03-21 22:40:46 4469

原创 pip3下载很慢的解决办法

pip3下载很慢,这个和pip3的国外服务器连接不稳定有关,需要按以下步骤更新pip源:在/root以及/home/[username]目录下先输入如下命令,创建相关配置文件:mkdir.pipcd.pipvipip.conf更换为较为稳定的阿里云下载源,粘贴保存:[global]index-url=http://mirrors.aliyun.com/pypi/s...

2020-03-18 09:30:06 4676

原创 含有vlan的二层、三层转发原理

开门见山,含有vlan的二层转发原理文字描述和流程图如下:基于Vlan的二层转发流程主要包括:确定和查找Vlan、查找和学习源MAC、查找目的MAC并转发数据帧。1) 确定和查找Vlan:交换机端口接收到一个数据帧时,首先通过TPID值判断该帧是否带标签[1]。若是tagged帧,且Vid≠0,则在端口所属的Vlan表中查找该帧标签中的Vid是否存在,若存在,则进入下一步,否则丢弃该帧...

2020-03-11 18:15:34 6408

原创 vlan详解

vlan详解VLAN(Vitual Local Area Network,虚拟局域网)是将物理网络划分成多个逻辑局域网的技术。一个VLAN就是一个广播域,亦即一个逻辑子网,在其内的站点可位于不同物理LAN上,但站点间像在同一个普通局域网上那样自由通信而不受物理位置的限制。利用VLAN技术,网络管理者可根据实际应用需要,在二层交换机上把同一物理局域网中的用户逻辑划分成不同广播域,使具有相同需求或...

2020-03-11 18:14:56 5977

原创 P4的可编程的设计流程

1、熟悉芯片的报文处理原理和整体报文处理流水线2、根据芯片的报文处理原理和处理流水线画出每个功能模块的流水线图,并设计每个功能模块的表,即输出反向设计,并进行模拟器验证3、输出正向设计,提交团队审核4、编码5、测试用例,验证功能...

2020-02-28 23:47:34 1300

原创 Linux ubuntu-18内核版本降级error: macro "access_ok" passed 3 arguments, but takes just 2

在安装P4-SDE过程中遇到部分问题,猜测是因为内核版本太高,特此记录降级linux内核版本:第一步./p4studio_build.py--use-profilep416_examples_profile安装依赖环境中的在加载bf-driver驱动的时候会出现错误:出现的错误为:ar: `u' modifier ignored since `D' is the defau...

2020-01-16 10:39:25 9465

转载 P4语言编码及规范

1.源码目录结构P4项目源码可以在github上直接获取(https://github.com/p4lang)。P4项目由很多个单独的模块组成,每个模块就是一个子项目,下面分别简单介绍一下各模块的功能。(1)behavioral-model模拟P4数据平面的用户态软件交换机,使用C++语言编写,简称bmv2。P4程序首先经过p4c-bm模块编译成JSON格式的配置文件,然后将配置文件载入...

2020-01-14 14:27:46 3561

转载 P4语言的特性、P4语言和P4交换机的工作原理和流程简介

现有的SDN解决方案将控制平面与转发平面分离,并为我们提供了控制平面的可编程能力。而事实上,目前通过软件编程实现的控制平面的功能,在传统的高级交换机和路由器上也都能实现,差别是厂商把这些功能固化在了系统/硬件中,这些系统/硬件是封闭的,第三方难以介入进行定制或二次开发。虽然一些高级设备提供了SDK,使得用户能够进行一定程度的定制,但也必须受厂商所制定的规范的限制,能做到的事情十分有限。目前SDN所...

2020-01-14 14:25:38 13480

翻译 P4:编写协议无关的包处理器(译自:《P4: Programming Protocol-Independent Packet Processors》转自:SDNLAB--译者毛健炜)

摘要P4是一门编写协议无关的包处理器的高级语言。P4与SDN控制协议联合在一起工作,比如OpenFlow。在OpenFlow当前的协议形态中,它精确地指定了供它操作的协议头。这个协议头集合已经在短短的几年时间中,从12个域增长到了41个域,这同时也增加了协议的复杂性,但是仍然没有提供添加新的自定义首部的灵活性。在这篇论文中我们将P4作为一个展示了OpenFlow在未来应该如何演进的草案协议...

2020-01-13 14:51:43 3158

原创 Ubuntu 18启动失败 Started Hold until boot procss finishes up

原因:启动ubuntu 的时候,磁盘空间不够了。解决方法:1、启动Ubuntu 的时候,选择Advanced options for Ubuntu(中文版:Ubuntu 高级选项):如果有些人的设定了不会有进入到菜单menu的过程,那怎么进入到Advanced options for Ubuntu(中文版:Ubuntu 高级选项)呢?在启动的刚开始就要一直按shift键直...

2020-01-03 23:36:53 16416 5

转载 网络设备之监测连接状态

通常网络设备会定时地检测设备是否处于可传递状态。当状态发生变化时,会调用netif_carrier_on或者netif_carrier_off来通知内核;从网上设备插拔网线或者另一端的设备关闭或禁止,都会导致连接状态改变;netif_carrier_on—-设备驱动监测到设备传递信号时调用netif_carrier_off—-设备驱动监测到设备丢失信号时调用上述两个状态改变函数均会...

2019-12-14 00:03:55 1764 1

转载 LINUX设备树的of_类的API寻找

linux设备树的of_类的API寻找授人以鱼不如授人以渔,那么,拿人以鱼不如学人以渔base作用:基本api文件:drivers/of/base.c基本的api例子:/** 在设备树的设备节点中通过name来寻找* of_find_node_by_name - Find a node by its "name" property * @from: ...

2019-12-13 19:12:45 1186

转载 linux中Workqueue机制的分析—— create_workqueue和create_singlethread_workqueue 的使用和区别

软硬件协同设计是未来发展的主流,软硬件的界限越来越模糊,软硬件的设计思想是相通的,实现方法是各异的,实现的结果上当然也存在较大差别,因此,很有必要做好软硬件的协同设计。什么是workqueue?Linux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数量,使得线程处理的事务能够并行化。workq...

2019-12-13 14:25:45 1864

转载 系统调用函数mmap和内核驱动mmap之间的联系与区别以及mmap原理详解以及实现内核用户空间之间的共享内存

mmap基础概念如果没有mmap,只有ioremap:那么将内核空间虚拟地址映射到物理内存/设备内存后,这段虚拟内存若想被用户空间使用,必然存在一个"从内核空间向用户控件内存拷贝"的过程。(深入linux设备驱动内核机制ch10.)malloc一般就是通过系统调用brk()+mmap()实现的mmap是一种内存映射文件的方法,即将一个文件或一块设备内存(如设备寄存器)映射到进程的地...

2019-12-06 20:46:02 2277

转载 Linux命令之md5sum的作用以及使用方法(md5是什么?)

1. 背景在网络传输、设备之间转存、复制大文件等时,可能会出现传输前后数据不一致的情况。这种情况在网络这种相对更不稳定的环境中,容易出现。那么校验文件的完整性,也是势在必行的。md5sum命令用于生成和校验文件的md5值。它会逐位对文件的内容进行校验。是文件的内容,与文件名无关,也就是文件内容相同,其md5值相同。md5值是一个128位的二进制数据,转换成16进制则是32(1...

2019-12-05 11:37:48 9794

原创 谷歌浏览器总是显示未允许Flash Player等提示问题

这里的步骤前提是你已经安装了最新版本的flash了;我先是百度了一下怎么解决这个问题,什么从设置里找到flash的设置呀,过程太麻烦,其实可以打开一个新页面直接输入这个地址:chrome://settings/content/flash,就可以直接到达这个flash设置页面:可是我的只有这个先询问的选项,根本设置不了直接允许任何网站都可启用flash,也添加不了允许flash运行的网站...

2019-11-26 10:39:22 2448

转载 linux /proc/pid/maps 文件信息分析

Proc/pid/maps显示进程映射了的内存区域和访问权限。对应内核中的操作集为proc_pid_maps_op,具体的导出函数为show_map。内核中进程的一段地址空间用一个vm_area_struct结构体表示,所有地址空间存储在task->mm->mmap链表中。一个文件可以映射到进程的一段内存区域中,映射的文件描述符保存在vm_area_struct->vm...

2019-11-25 14:49:01 5948

原创 insmod内核模块出现问题:insmod: ERROR: could not insert module name.ko: Invalid parameters的解决方法

在对一个ko文件进行内核模块加载insmod的时候竟然出现这个奇怪的问题:在解决这个问题之前我在网上查了半天,各种说法的都有也都试过了,主要是试过一下方法:1、你的内核版本和你Makefile制定的不一样,编译模块时选择的Linux头文件目录与当前运行的系统版本不匹配,使用命令:uname -r查看当前运行的内核版本,然后选择正确的Linux头文件路径;他们提供的解决方法:直接将M...

2019-11-25 10:47:29 28315 1

原创 在进行内存映射mmap的驱动编译中遇到错误error: ‘VM_RESERVED’ undeclared (first use in this function)

在对编写内核驱动相对某个设备文件的物理地址空间用mmap映射到用户空间的进程地址空间中去,但是在编译的过程中遇到这样的问题:error: ‘VM_RESERVED’ undeclared (first use in this function); did you mean ‘VM_NORESERVE’? 原因是在这句代码中:vma->vm_flags |= VM_RES...

2019-11-24 20:50:50 3335

转载 Linux驱动mmap内存映射详解及例子实现

mmap在linux哪里?什么是mmap?上图说了,mmap是操作这些设备的一种方法,所谓操作设备,比如IO端口(点亮一个LED)、LCD控制器、磁盘控制器,实际上就是往设备的物理地址读写数据。但是,由于应用程序不能直接操作设备硬件地址,所以操作系统提供了这样的一种机制——内存映射,把设备地址映射到进程虚拟地址,mmap就是实现内存映射的接口。操作设备还有很多方法,如ioctl...

2019-11-24 19:51:06 4317 3

转载 Intel DPDK源代码分析

Intel DPDK源代码分析2013年8月作者:王智民贡献者:创建时间:2013-8-8稳定程度:初稿修改历史 版本 日期 修订人 说明 1.0 2013-8-8 王智民 ...

2019-11-22 22:34:56 1875

转载 cavium 应用MIPS内核的OCTEON家族处理器CPU介绍

放眼现今的网络、安全、无线及存储应用系统,对于最高性能及最低功耗的优质处理器需求持续升高。Cavium Netowrks公司的OCTEON家族处理器经过高度优化,相当适合control-plane、data-plane应用或两者的混合,以优异性能提供网络、安全、无线及存储等应用最佳的选择。OCTEON和OCTEON Plus处理器已被大多数的网通OEM厂所使用,凭借低成本以及低功耗等优势带来市场最...

2019-11-21 14:14:40 3954

转载 VirtualBox 未能启动虚拟电脑,由于下述物理网未找到:

错误提示代码:解决方法:将链接方式改为:内部网络。设置网络:链接方式改为内部网络即如果还是配置出错平不同本地:虚拟机平本地的ping不通解决方法:防火墙未能关闭...

2019-11-20 09:58:55 2294

原创 CAJ文件不存在或不能正常访问的解决办法

事件:win10系统,装了最新的CAJ软件,从中国知网上下载的CAJ7.2,结果不能使用,打不开caj文件,提示“文件不存在或不能正常访问“,搜索了网上删除了注册软件后还是不行。刚开始的试的方法:法1——使用E-learning软件,不过用不惯,而且标注功能太少了,不好用;法2——使用了低版本的CAJ,caj7.1,不过还是有个问题,就是目录侧边的字体全是问号”???“,...

2019-11-18 17:04:14 9872 6

转载 list.h使用说明(数据结构,声明函数的实现、举例等详解)

1位置位于./usr/src/linux-2.6.32.9/include/linux/list.h使用时包括#include<linux/list.h>2数据结构*list_head结构包含两个指向list_head结构的指针prev和next,由此可见,内核的链表具备双链表功能,实际上,通常它都组织成双循环链表。*/structlist_...

2019-11-15 15:06:02 1635

转载 KVM详解,教科书般的经典讲解

KVM 介绍(1):简介及安装http://www.cnblogs.com/sammyliu/p/4543110.html学习 KVM 的系列文章:(1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分配和 SR-IOV (5)libvirt 介绍 (6)No...

2019-11-14 17:11:01 3401

转载 网络设备(网卡)内核驱动程序详细解析(以主要rtl8139和dm9000A驱动程序为例)

学习应该是一个先把问题简单化,再把问题复杂化的过程。一开始就着手处理复杂的问题,难免让人有心惊胆颤,捉襟见肘的感觉。读Linux网卡驱动 也是一样。那长长的源码夹杂着那些我们陌生的变量和符号,望而生畏便是理所当然的了。不要担心,事情总有解决的办法,先把一些我们管不着的代码切割出去,留下必须的部分,把框架掌握了,那其他的事情自然就水到渠成了,这是笔者的心得。一般在使用的Linux...

2019-11-14 16:25:50 2155

原创 与或左移右移操作在控制寄存器配置中的作用

1.寄存器操作的要求(特定位改变而不影响其他位)(1)arm是统一编址的,arm中有很多内部外设,soc通过向这些内部外设的寄存器写入一些特定的值来完成操作。这个内部外设进而操控硬件,所以说读写寄存器就是在操控硬件。(2)在设定特定位时不改变其他位,而且寄存器的特点就是按位进行规划和使用。(3)而修改寄存器中的特定值的一般步骤是,读-改-写。读取一次寄存器的值时32位的(一个int),...

2019-11-14 15:20:03 2019

转载 关于epoll通俗易懂的详解

这两天在看项目的数据结构定义及关系,遇到一些关于socket的知识点,还有一些C++的知识点,下面总结下:1.structepoll_event结构体epoll_event被用于注册所感兴趣的事件和回传所发生待处理的事件,定义如下: typedef union epoll_data{ void*ptr;intfd; __uint32_t u...

2019-11-13 11:33:53 1232 1

模拟实现动态分区

操作系统的相关重要文件,可以实现模拟实现动态分区,欢迎大家下载

2018-04-28

图形学相关源代码

计算机图形学绘制线、圆、球体等基本几何二维图形的相关代码,可以提供给你们学习研究,欢迎大家前来下载。

2018-04-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除