03 2017 档案
摘要:原创翻译,转载请注明出处。 vhost库实现了一个用户空间的virtio net server,允许用户直接处理virtio ring队列。换句话说,它让用户可以从VM virtio网络设备读取或写入数据包,为了达到这个目的,vhost库应该可以: 访问客户虚拟机内存,对于QEMU,这个是通过设置
阅读全文
摘要:原创翻译,转载请注明出处。 DPDK的librte_pdump库,提供了在DPDK框架下抓包的功能。这个库通过完全复制Rx和Tx的mbuf到一个新的内存池,因此它降低应用程序的性能,所以只推荐在调试的时候使用。pdump库提供了如下的API来初始化这个抓包框架,使能或者停止抓包,以及清理退出抓包框架
阅读全文
摘要:原创翻译,转载请注明出处。 dpdk提供了一个访问控制库,提供了基于一系列分类规则对接收到的报文进行分类的能力。ACL库用来在一系列规则上执行N元组查找,可以实现多个分类和对每个分类查找最佳匹配(最高优先级),ACL库的api提供如下基本操作: 创建一个新的访问控制(AC)环境实例(context)
阅读全文
摘要:原创翻译,转载请注明出处。 在一些平台,所谓的内存映射I/O在保序执行这方面是没有保障的。在这些平台,驱动写入器负责保证I/O写操作按照预期的顺序写到设备内存映射地址。 代表性的做法是通过读取一个安全的设备或桥接寄存器,该寄存器可以导致I/O芯片在任何读操作发生前刷新所有带处理的写操作到设备上。 驱
阅读全文
摘要:Qscintilla2的下载地址: 以上2个地址都可以下载。 我的编译环境是QT5+mingw5.3,将下载的压缩包解压缩之后,首先进入到解压缩之后的目录Qt4Qt5,举个栗子:E:\code\qscintilla-master\Qt4Qt5 找到 qscintilla.pro 文件 ,双击会起动到
阅读全文
摘要:原创翻译,转载请注明出处。 arm64的异常模型由一组异常级别(EL0-EL3)组成。EL0,EL1有安全模式和非安全模式的区别。EL2是虚拟机管理级别并且只有非安全模式。EL3是最高优先级并且只存在安全模式中。为了描述方便,下面将使用术语“boot loader”来简化所有执行在cpu将控制权转交
阅读全文
摘要:原创翻译,转载请注明出处。 页表转换arm64在硬件体系结构上支持4级的每页大小为4K的页表转换,也支持3级的页大小64KB的页表转换。在linux arm64中,如果页的大小为4KB,使用3级页表转换或者4级页表转换,用户空间和内核空间都支持有39bit(512GB)或者48bit(256TB)大
阅读全文
摘要:想做一个多线程服务器测试程序,因此参考了github的一些实例,然后自己动手写了类似的代码来加深理解。 目前了解的线程池实现有2种思路: 第一种: 主进程创建一定数量的线程,并将其全部挂起,此时线程状态为idle,并将running态计数为0,等到任务可以执行了,就唤醒线程,此时线程状态为runni
阅读全文
摘要:在linux内核,线程与进程的区别很小,或者说内核并没有真正所谓单独的线程的概念,进程的创建函数是fork,而线程的创建是通过clone实现的。 而clone与fork都是调用do_fork(),差异如下: 实际上就是内核开放大部分参数和do_fork接口来创建线程,看clone的官方解释: 所以接
阅读全文
摘要:单例模式就是一个C++语法精华浓缩的一个体现,有句老话:麻雀虽小五脏俱全!来形容单例非常贴切! 下面的代码分析了如果自己malloc并且memcpy一个单例指针会带来很大危害并如何防止这种情况发生。 总结: 1、以上单例是比较常见的实现 2、memcpy会破坏这个单例的唯一性 3、memcpy出来的
阅读全文
摘要:太不容易了! 想要访问opencv的官网貌似要FQ才行。下载了opencv3.2版本,发现cmake在download opencv_ffmpeg.dll的地方超时了. 于是搜索一番,发现很多编译opencv3.1版本的,然后也提供opencv_ffmpeg.dll的下载,于是又去官网下载了3.1版
阅读全文
摘要:当我刷到动态规划这一章的时候,突然想起以前的部门研发比武,就是一道需要运用动态规划思想来处理的题目,团灭了99%的人,而我也是这99%中的一员,哈哈,只怪出题的人太狠了。 以下的代码是汽车车间装配时间最短的代码习题,懒于整理,折叠起来: #include <iostream> #include <v
阅读全文
摘要:近期遇到一个自定义报文传输性能问题,解决过程中借助了ethtool这个工具,因此发掘一下与此工具相关的网卡的一些特性。 ethtool 常用命令如下,比如对eth0的操作: 我这里主要想发掘一下ethtool -k 相关的内容,以下命令在ubuntu 14.04上亲测: 1、rx-checksumm
阅读全文
摘要:红黑树是满足如下条件的二叉搜索树。 1、每个节点要么是红色的,要么是黑色的。 2、根节点是黑色。 3、每个叶子节点是黑色的。 4、如果一个节点是红色的,那么它的2个子节点是黑色的。 5、对每个节点,从它到它的后代叶子节点的简单路径上,均包含相同数目的黑色节点。 练习完这些代码,我感觉我把stl的rb
阅读全文
摘要:看到二叉搜索树,就会回想到当年在大学课堂学习数据结构的情景,真的是悠悠岁月,欲说当年好困惑。 二叉树的可以参考的资料繁多,这里就不多说了,非要说的话,请看算法导论第12章吧。 下面是代码,包含了一点点C++11的特性。 1、二叉树遍历,没有比递归实现更优雅简洁直观的了,非要说非递归就是好的话我也赞成
阅读全文
摘要:最近遇到一个使用aarch64_be-gcc编译的ssh服务器出现不能通过ssh1协议使用密钥+passphrase不能正常登陆的问题。 (⊙o⊙)…不要奇怪为啥还在用SSH1,我也在奇怪。。 一顿捣鼓(重现问题),发现是64位的ssh-keygen生成的密钥的不能使用设置passphrase解密,
阅读全文
摘要:理解了基数排序,也就理解了桶排序。 桶排序就是基数排序的一种优化,从MSD开始,即取最高位来排一次序,如果最高位没有重复(意味着没有冲突需要处理),是算法的最佳状态,O(n)。 如果有冲突,就将冲突的元素存放到对应的桶里(代码就是一个链表或者数组或者stl容器),然后对每个桶进行一次插入排序,平均情
阅读全文

浙公网安备 33010602011771号