zoukankan      html  css  js  c++  java
  • 关于今后的进展

    好长时间不来了,前一阵子cebit去了。现在刚刚回归正常的生活轨道。对PRP所做的工作,大抵也是五一期间的进展

    我对fist生成的改动主要是在file.c,针对file_operation进行改动。改动的方法之前已经说过了。对目前的实现方式感到不满。一个open()的系统调用下来,到内核空间转换成sys_open(),之后filp_open(),open_namei()解析名称,在内存里进程的file_struct中建立file数据结构。之后调用dentry_open()函数将dentry和file数据结构挂起来。dentry_open()会象填表一样填完file数据结构中一些如fd,sb等等然后调用文件系统的file_open函数。正常的文件系统比如调用ext3_fileopen(),而在fist生成的代码中会多一个过程,就是利用上次说到的宏找到hidden_dentry,然后针对hidden_dentry调用dentry_open函数。之后的过程就都一样了。我所做的工作就是改变hidden_dentry指向的dentry结构以实现偷梁换柱的目的。


    我觉得这种做法很没效率,没准效果适得其反反而增加系统开销。毕竟中间多了好几次dentry查找过程。我想问问heavenbirdfly要是用设备驱动实现的话该怎么做。关键问题是名称解析这个工作相当上层。如果能够把sys_open这个函数置换掉是最好不过了。但是这样的结果是对于所有文件系统都要做名称变换而不只是我们mount的地方。

    要断网了,先写这么多。有疑问直接回复。
  • 相关阅读:
    get the default proxy by Powershell
    import-module in $profile
    Basic Queries (LINQ to XML)
    xpath中双斜杠的作用// double slash
    Powershell 常见问题
    touch all contents in a folder recursively
    What's the difference between HEAD, working tree and index, in Git?
    beyond compare 比较文本 standard alignment VS unaligned
    bat文件中调用传参的问题
    bacth参数说明 cmd parameter
  • 原文地址:https://www.cnblogs.com/acesyp/p/156769.html
Copyright © 2011-2022 走看看