摘要: 首先需要做些准备工作: 1.安装xming及virt-manager, 安装过程网上很多,就不一一叙述了。安装完成后,使用putty登陆服务器,需要配置如下: connection -> SSH -> X11 中将X11 forwarding中的Enable X11 forwarding选中,并在X 阅读全文
posted @ 2016-12-02 11:31 penghan 阅读(1180) 评论(0) 推荐(0) 编辑
摘要: 还有PAGE_OFFSET,内核中通常为3G。这几个宏把无符号整数转换成对应的类型 根据x把它转换成对应的无符号整数 与下一个页框对齐 把内核空间的线性地址转换为物理地址 把物理地址转化为线性地址 把pfn页框号转化为内核线性地址, 然后左移12位, 得到对应的内核线性地址 根据页框号得到对应的物理 阅读全文
posted @ 2016-11-09 14:40 penghan 阅读(504) 评论(0) 推荐(0) 编辑
摘要: 组播在内核里面对应的一个重要的结构体是ip_mreq,如下: struct ip_mreq { struct in_addr imr_multiaddr; /* IP multicast address of group */ struct in_addr imr_interface; /* loc 阅读全文
posted @ 2016-07-28 10:22 penghan 阅读(8305) 评论(0) 推荐(0) 编辑
摘要: system函数对返回值的处理,涉及3个阶段: 阶段1:创建子进程等准备工作。如果失败,返回-1。 阶段2:调用/bin/sh拉起shell脚本,如果拉起失败或者shell未正常执行结束(参见备注1),原因值被写入到status的低8~15比特位中。system的man中只说明了会写了127这个值, 阅读全文
posted @ 2016-07-07 16:03 penghan 阅读(8545) 评论(0) 推荐(0) 编辑
摘要: 1:内存对齐定义: 现在使用的计算机中内存空间都是按照字节划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但是实际上计算机系统对于基本数据类型在内存 中的存放位置都有限制,要求这些数据存储首地址是某个数K的倍数,这样各种基本数据类型在内存冲就是按照一定的规则排列的,而不是一个紧挨着一 阅读全文
posted @ 2016-06-20 14:45 penghan 阅读(1547) 评论(0) 推荐(0) 编辑
摘要: 1 int setOption(int fd,int nSpeed, int nBits, char mode,char nEvent, int nStop) 2 { 3 struct termios newtio; 4 bzero( &newtio, sizeof( newtio ) ); 5 n 阅读全文
posted @ 2016-06-15 11:39 penghan 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 1 #define container_of(ptr, type, member) ({ \ 2 const typeof( ((type *)0)->member ) *__mptr = (ptr); \ 3 (type *)( (char *)__mptr - offsetof(type,mem 阅读全文
posted @ 2016-06-15 09:11 penghan 阅读(2446) 评论(0) 推荐(0) 编辑