- 博客(5)
- 资源 (18)
- 收藏
- 关注
原创 闲话字符编码
C源文件本身是普通的文本文件,既然是文本文件,那他就有自己的字符编码格式。我们常用的大概是GBK、UTF-8这两种格式。如果一个utf-8格式的文本文件,是用微软的记事本程序创建的,那么这个文件的开头会有3个字节的UTF-8签名(EF BB BF),也叫做BOM。BOM是个可选的东东,因此不是所有编辑器程序都会在文件前面加上这东东。有些程序不识别BOM,把他当正常字符数据处理,
2013-12-23 14:30:17 1045
原创 RSA算法及其安全性
RSA加密原理:1. 数据。 数据在计算机中,其实就是字节串。 将被加密的数据,分割成一定长度的数据块,每一块就是一个bit串。 将这个比特串,看成一个二进制整数——以d表示2. 密钥 RSA算法是非对称算法,因此使用两个密钥: 一个是公钥,用于加密——以e表示, 一个是私钥,用于解密——以p表示。 另外,还需要用到一
2013-12-27 10:40:16 11344
原创 用户态程序如何判断一段虚地址空间是否有效
可以让OS内核帮我们检查。但是似乎没有直接的接口,那就绕个弯子请他帮忙。将这段虚地址空间的内容,写入一个无关紧要的文件。这段虚地址空间是否有效,内核自然会帮我们检查的。要知道,内核对用户空间传入的任何数据,都是不信任的,都会充分检查的。因为什么样的用户都有,内核可不想轻易被用户搞挂掉 :)好了,下面的代码展示了Linux下此功能的实现方法。int is_ad
2013-12-18 11:16:50 1790
原创 Linux协议栈对vlan的处理
(基于linux-2.6.x)从代码上看,Linux对VLAN的处理方式如下。1. vlan的处理,主要是依靠网卡本身。 有的网卡不支持vlan,如老的3com网卡3c501。 intel的ixgb(PRO/10GbE)和e1000(PRO/1000)网卡是支持vlan的。 其他的一些网卡驱动,从代码上来看,还未完整支持。 例如,有个网卡驱动(源
2013-12-02 16:11:00 8344 1
原创 Linux协议栈代码阅读笔记(三)报文接收
(基于linux-2.6.21.7)(一)网卡接收报文以Intel PRO/1000网卡为例。网卡收到报文后,产生中断。驱动程序的中断处理函数e1000_intr(源码文件:\drivers\net\e1000\e1000_main.c)对报文进行接收。中断处理程序先做一些基本的接收工作,然后开始如下的执行路径(从e1000_intr内部开始):(注
2013-12-02 13:58:23 3487
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人