摘要:
学习的目标 就是如何实现一个简单VT框架并拦截指令的调用以及EPTHOOK的实现。 大概的流程 检测是否允许开启VT。 a. 我们可以从白皮书的24.6 DISCOVERING SUPPORT FOR VMX章节中得到这样的信息 b. 其次就是设置smx c. 检测CPUID是否支持VT cpuid 阅读全文
摘要:
特性 在C#的编程过程之中,我们可以发现特性是无处不在的,那么什么是特性那? 什么是特性? 特性其实就是一个类(class),声明的时候,默认以Attribute结尾,直接或者间接的继承Attribute抽象类。 当我们应用特性的时候,是把这个特性以[]包裹标记在类或者类内部成员上。 特性和注释的区 阅读全文
摘要:
框架目标 什么是框架,框架能做到什么? 把一个方向的技术研发做封装,具备通用性,让使用框架的开发者用起来很轻松。 属性: 通用性 健壮性 稳定性 扩展性 高性能 组件化 跨平台 从零开始-搭建框架 建立项目 主键查询功能开发 绑定实体 一步一步的给大家推导: 一边写一边测试 从零开始--搭建框架 1 阅读全文
摘要:
# 一个简易的ORM框架的实现 ## ORM ORM 操作数据库 对象关系映射 ORM(Object Relational Mapping)框架采用元数据来描述对象与关系映射的细节。只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中。 ## 早期数据库 阅读全文
摘要:
#反射 反射反射程序员的快乐,反射是无处不在的,封装框架,系统开发,MVC,IOC,ORM都离不开反射。 一、反射/反编译工具/高级语言到计算机语言的历程 高级语言 编译 dll/exe文件 metadata:元数据清单 记录了dll中包含哪些东西,是一个描述。 IL:中间语言 编译把高级语言编译后 阅读全文
摘要:
泛型的学习 一、泛型的引入 泛型 泛:宽泛的--不确定的; 型:类型 不确定的类型 无处不在的 调用普通方法的时候,参数类型在声明的时候就确定了,调用按照类型传递参数即可 a. 如果有100个类型 100个方法?--很累 b. 有没有能够做一个方法可以能够满足不同类型的需求呢? 传统方法 publi 阅读全文
摘要:
上一篇文章我们讲了一个异步的线程池大概需要如何去实现,现在的话,我们如何来解析一个UDP的包。 环境的搭配 这个环境的问题困扰了很久,这个netmap已经不再更新了,支持Ubuntu16.04-Ubuntu18.04的系统内核,我们需要按照这样的步骤去安装我们的netmap 建立Ubuntu虚拟机的 阅读全文
摘要:
今天分享一个异步请求池的例子。 首先我们先看一个正常的阻塞的DNS解析的例子。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h> #include <fc 阅读全文
摘要:
UDP主要用在哪两个方面 游戏 音视频通话 为什么要使用UDP? 实时性的考虑,丢包重传,TCP协议栈重传无法控制,UDP重发可以自定义策略。 在DNS查询的时候,也使用UDP,对资源的考虑。 如何做到可靠性连接? ack机制 重传机制 重传策略 序号机制 重排机制 窗口机制 TCP和UDP的选择 阅读全文
摘要:
TCP Posix API的理解 我们主要从TCP连接讲解整个的流程。 连接的建立 消息的收发 连接的断开 连接的建立 先看一下一个TCP server的创建过程。 #include<stdio.h> #include<sys/socket.h> #include<netinet/in.h> #in 阅读全文