今天felix建议,可以虚拟机里跑个ubuntu server,就没必要跑ubuntu下开发,再回到windows下写论文了。之前有考虑过,但是1G的内存,跑了个win7还开了Aero,担心内存不够。回来把Aero给关了,装了试试,有点卡,不过将就着能用,早该加内存了。
客户机跑ubuntu 10.04 server,NAT连接的网络。NAT engine将宿主机当作了路由器,所有流出和流进虚拟机的数据包都由这个engine转发,但是这样,客户机隐藏在幕后,包括宿主机在内的其他主机都访问不到客户机了。VirtualBox的帮助文件中提到,如果想在客户机上跑一些服务,就需要用NAT端口映射。使用V…
Linux下进程间通信主要有管道,消息队列,信号量,共享内存,套接口。这里主要说命名管道的一个应用:使用命名管道实现进程间Server/Client机制的通信.
之所以去接触它,是因为实验室的项目中要求可信组和加密组可以进行通信。两者都在用户层,加密组向可信组发送请求,可信组返回响应。比如加密小组发送请求密钥信息,可信组返回所请求的密钥。由于传输的信息相对来说比较大,而且这两个程序逻辑上并不相关,所以在几种通信方式中我们选择了命名管道。
命名管道其实是FIFO文件。在linux中终端下创建一个管道,用mkfifo命令:mkfifo fifoname;或者mknod命令:mknod fifo…
fork函数在linux中非常重要,因为进程大多是通过它来创建的,比如linux系统在启动时首先创建了进程0,之后的很多进程借助do_fork得到创建.这两天在看匿名管道时了解了下fork,其应用毕竟广,这里只说些我才学到的吧.
首先来看例1.
#include "stdio.h"
#include "unistd.h"
#include "stdlib.h"
int main(){
int i;
printf("hello world %d\n",getpid());
i=
…
今天师兄问,linux内核模块之间如何进行通信?我才想起我之前也有这个疑问,只是当时不需要所以就没去关心了。晚上查了些资料,终于弄明白了些。
这里的通信可以简单点理解,就是模块B如何调用A的函数,变量或者常量。为了简化,我设计一个模块A中的一个函数为printMSG,原型为int printMSG(int n);传入的参数n表示打印几遍一个固定的字符串。模块A(在helloworld基础上修改的,所以名字都没变…懒)源码:
#include <linux /init.h>
#include </linux><linux /module.h>
int __init hel
…
今天搞定了好多事情,感觉相当不错^.^
凌晨和Sandy在601聊天到4点半多,把很多的事情都好好地讨论了下,感觉下一步做什么怎么做清晰了很多。
上午睡过去的…
下午到实验室和KouPeng师兄,猜想加搜索后,终于发现ecryptfs的源码原来已经集成到了linux的源码包中,不过不知道为什么ecryptfs的官网都不提示下的。单单搜源码就耗了好长的时间。官网提供的utils包只是如何方便的使用ecryptfs的工具包而已。
回来又把windows核心编程中windows内存结构看了下。DLL到底加载到了什么位置搞明白了。我之前的《detours笔记》中写的DLL在一定程度上说也是正确的,…
准备给博客写个验证码的,但是在使用GD库生成图片的时候,问题多多,还好现在算是解决了一些。写点下来方便朋友查阅吧,省得像我一样海搜了两天。
首先是查看GD库有没有被正确的安装和加载.通过gd_info()可以看,或者phpinfo。在phpinfo中可以看到gd一栏,然后版本如果是bundled (2.0.34 compatible) 的话,是从php4.3之后开始绑定的。如果没有的话,可以用命令安装一个:
sudo apt-get install php5-gd.或者为了安装完整版本的,在源列表中添加两行:
deb http://packages.dotdeb.org stable all
deb-src http:/…