上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 26 下一页
摘要: Iometer简介 Iometer 是一个工作在单系统和集群系统上用来衡量和描述I/O子系统的工具。 Iometer 既是工作负载生成器(也就是说,它可以进行输入输出操作,以便增加系统的负荷),它还是一个测量工具(也就是说,它检查并且记录I/O 操作的性能和对系统的影响)。它可以被配置为模拟任何程序或者基准测试程序的磁盘和网络I/O的负载,或者用来产生整个综合的I/O负载。它也可以用来产生并测... 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(965) 评论(0) 推荐(0)
摘要: 链表(list)和哈希表(hlist)是内核常用到的两个工具,负责组织内核中很多的数据结构,如在进程管理中用于组织进程,文件系统中的inode节点链表,dentry链表,vfsmount链表等等。 链表使用struct list_head内嵌结构来将其寄生的结构组织成双向循环链表,并且表头跟普通节点的结构相同,非常容易理解。 但哈希表不同,其表头跟普通节点采用不同的数据结构,并且节点的组织也不是... 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(590) 评论(0) 推荐(0)
摘要: 在项目中遇到一个问题,当客户端通过SUN RPC进行远程过程调用时,服务器如何获取调用方的IP地址,由于RPC是socket的封装,在send/recv的调用中都能获取数据包的源IP地址,故RPC肯定又能提供这样的接口。 最开始的需求源于DNFS的存储节点周期性的向元数据服务器发送心跳信息,当收到心跳信息后,服务器需要辨别心跳信息来自哪一个存储节点,WCW师兄的方法是在调用参数中增加IP地址... 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(2084) 评论(0) 推荐(0)
摘要: C++的虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。 在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例中这个表被分配在了 这个实例的内存中,所以,当我们用父类的指针来操作一个子类的时候,这张虚函数表就显得由为重要了,它就像一个地图一样,指明了实... 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(157) 评论(0) 推荐(0)
摘要: 常量指针与指针常量直接从语义上理解,看const限定那个范围。const int *p 其中的const在*p之前,也就是说*p是常量,不能改变。同样int *const p 其中的const在p之前,所以p是常量,不能改变。位段的符号structtest{inta:2;/*表示范围-2~1 */unsignedintb:2;/*表示范围0-3 */};intmain(){structtestt;... 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(151) 评论(0) 推荐(0)
摘要: 如果在编写内核源代码时给内核留下后门,则你可以很容易的利用,则可轻易的使用模块实现一些扩展功能(实现一些跟内核相关的应用或是出于攻击性目的的扩展)。例如:在read系统调用的实现中,你留下了后门:在read_write.c中,定义了函数指针void (backdoor*)(size_t *count) = NULL;并使用EXPORT_SYMBOL带出符号backdoor。在sys_read中加入如下代码:if(backdoor != NULL) backdoor(&count); //这里的count为sys_read的最后一个参数在内核模块中,你可以实现自己的后门函数,并将back 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(244) 评论(0) 推荐(0)
摘要: 当克隆或者重装虚拟机后,再启动系统(Fedora 11)时会发现系统下不再有eth0,而变成了eth1,当使用/etc/init.d/network重启网络时,会提示找不到设备eth0及eth1的启动脚本。做以下改动:/etc/sysconfig/network-scripts/ifcfg-eth0重命名为/etc/sysconfig/network-scripts/ifcfg-eth1/etc/init.d/network restart 提示找不到eth0 发现脚本中的device一项没有改过来,将其改为eth1(或者删掉)/etc/init.d/network restart 提示网.. 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(327) 评论(0) 推荐(0)
摘要: 总是感觉DNFS中缺乏应有的安全机制,如果简单的在挂载之前加入密码认证方式,我感觉没有多大的意义,多于开源的代码说,如果跳过了认证过程,没有任何意义,另外如果使用密码认证方式,也不能像一些网站那样注册,那样的话认证过程起不到任何作用,如果以付费的方式使用,用户的用户名密码应由管理者根据用户所购买的服务统一的发放和注销。花了点时间看了一下用得比较多的几种认证方式,如Kerberos,PKI/CA,这两种方式都是依赖于一个信任的第三方,其实这也说明了安全是有源头的,无论多少复杂的实现,最后必须有一个可信任的原点,一切的机制都仅仅是这个原点的扩展。计算机里很多的机制都是来源于现实生活,如云计算(将计 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(266) 评论(0) 推荐(0)
摘要: C++的设计者Bjarne Stroustrup下了很大的功夫想使用户自定义类型尽可能地和固定类型的工作方式相似,这就是为什么你可以重载运算符,写类型转换函数,控制赋值和拷贝构造函数。 对于类类型,当重载赋值运算符时,需注意以下几个原则: 1. operator=尽量返回*this的引用; 2. 在operator=中对所有的数据成员赋值; 3. 在operator=中检查给自己赋值的... 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(231) 评论(0) 推荐(0)
摘要: 循环展开就是通过在每次迭代中执行更多的数据操作来减小循环开销的影响。其基本思想是设法把操作对象线性化,并且在一次迭代中访问线性数据中的一小组而非单独的某个。这种思想主要适用于计算循环索引和测试循环条件的开销部分所占比重过大(相对于循环体内执行的指令而言),连续执行一组相同的指令,能提高指令的cache命中率,如下例所示,对LoopTest的一片存储空间进行初始化,分别测试普通循环,和8个一组的展开... 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(1974) 评论(0) 推荐(0)
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 26 下一页