早上花了点时间在vmware上面安装了一个新的Fedora12.花了点时间查找vmware的功能,其中4个主要功能中的snapshot(快照)确实挺好用,就像系统还原一样,做了一个新的snapshot之后,就再也不害怕由于模块编程导致系统崩溃来的很花时间的重新提到系统了.
原来要在模块中调用系统调用还有一种新方法,就是找到sys_call_table,然后申明一个该类型的函数指针,就可以直接的使用,假如我想使用写的系统调用,首先声明一个函数指针:
int (*my_write)(int fd,char *buf,size_t count);
my_write = sys_call_table[__NR_write];
即可以在函数中使用了,这种方法要注意,假如系统调用中的某指针是需要用户空间的,则需要转换内核空间到用户空间,具体的做法上一篇日志中有,就不再赘述.
下午花了一点时间看新买的书:
主要看了一下作者关于linux和windows下面工作环境的比较,确实很有道理.在熟悉的windows中各种熟悉的集成好的,一层层幕封装好的东西里面工作,在里面码码代码什么的觉得方便,但是,各个工具之间,没有很大的通用性,流连于各种菜单中,寻找着自己需要的功能.有时候在码代码之余,甚至感觉自己获得的,或许只有对使用语言的熟练度,除此而已.
从前对linux是很恐惧的,因为恐惧,不敢接触,这个新的世界似乎就是diy的世界,习惯了在windows下面变量只有自己的程序的我,非常的不适应.因为所有的东西都可以改变,太多的东西需要去熟悉.记得大三的时候OS的课程设计是有4个小题:1.写一个linux下的简单的窗口程序, 2.给自己的linux增加一条系统调用,3.增加一个字节设备驱动,实现文件的复制功能,4.用gtk写一个类似于linux下的任务管理器.那时候最花时间的就是增加一条系统调用,因为要重新编译内核,现在想想,其实不需要那么麻烦,只需要如上面的方法一样,写一个modules,把sys_call_table中找一个空的位置链接上自己的函数就可以了.那时候因为用gtk编程比较类似于windows下面,因此花了很长时间做了那个,其他的都是大概做了一下,基本靠copy网络上面的代码.
克服对新事物的恐惧是需要成本的,我现在对linux有了基本的了解,我想,自己的思维模式也在不断的改变着,我渐渐喜欢上那些free的softwares,特别是可以看到他们的代码,自己编译一个程序,自己配置环境,用着经典的vi,似乎渐渐摆脱了鼠标,确实有一种总是不断获得新东西的感觉.生活得很充实.
今天还花了点时间看关于OS进入保护模式的章节,希望能保持这种充实的状态.
阅读(611) | 评论(0) | 转发(0) |