本文来自
http://blog.chinaunix.net/u2/64681/showart.php?id=1432584 的启发,我要由衷的感谢无名前辈的精彩博文,希望大家再看本文前一定要看一遍,这里,我就不再分析了。
本实验用到了linux-2.6.34内核,编写过程中用到了user mode linux,由于um试运行在用户空间的,因此运行和调试非常方便,尤其是我的电脑内存和性能难以承载虚拟机的情况下,uml给了我一个完美的选择。
整个源代码下载:
http://blogimg.chinaunix.net/blog/upfile2/100708225850.taruml的系统文件镜像下载地址:
http://fs.devloop.org.uk/ 这里,我选择了Slackware12.x。
好,开始我们的实验,内核编译完成后,运行:
./linux ubda=Slackware-12.2-root_fs mem=64M
用户登录为root,没有密码,直接回车即可。
那么如何将我们的用户程序在此系统运行呢,有两个办法,
1.# mount Slackware-12.2-root_fs /挂载点 -o loop, 将程序放入。
2. 通过uml的hostfs来完成,推荐使用此法
登录后,运行“mount none 挂载点 -t hostfs -o 主机文件夹(全路径 /home/xxx/...)
此次,就可访问相应的文件了。
那么首先运行server程序(后台),在运行client程序,可以看到输出,结果是完成了一次对接。
尾声:
由于我也只是个初学者,所以本文的目的是想大家在阅读 http://blog.chinaunix.net/u2/64681/showart.php?id=1432584 的博文时,能够活动一下筋骨,不至于发困(我就是有此感觉)。
源代码很短,我只是挑出最必要的函数拼凑而成,至于更深入的探讨,还需进一步的学习了,愿与大家共勉。
阅读(1662) | 评论(0) | 转发(1) |