摘要: 函数库分为静态库和动态库两种 静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。 动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。 示例代码: 头文件 hello.h #ifndef _HELLO_H#define _HELLO_Hvoid hello(void);#endif 源文件 hello.c... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(162) 评论(0) 推荐(0)
摘要: 端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在计算机业Big Endian和Litt... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(154) 评论(0) 推荐(0)
摘要: 最近项目中需要在内核态使用RSA加密算法,加密算法对我来说是一篇空白,到网上了解了些,比较好的加密跟认证的库有openssl,crypto++等,但这些库很庞大,而且很多东西因为考虑到复用,而不是单独为实现一个RSA算法而实现,在用户态使用非常方便,只有下载openssl的源码,安装即可调用其实现的加密算库,包括AES,Blowfish,RSA,一系列散列算法MD4,MD5, SHA1等等。由于... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(773) 评论(0) 推荐(0)
摘要: mdadm,lvm工具提供强大的动态磁盘管理功能,两者都需要内核md的支持,故使用前需查看内核是否支持md,如果不支持需重新编译内核(最开始用的时候创建RAID设备出错,于是检查内核配置,发现没有multi-device的支持)。本文以创建RAID5为例,讲解mdadm的基本使用方法。 device drivers ---->multi-device suppo(RAID and LVM) <I... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(791) 评论(0) 推荐(0)
摘要: 一、编译和连接一般来说,如果库的头文件不在 /usr/include 目录中,那么在编译的时候需要用 -I 参数指定其路径。由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下,所以即使使用同一个库,由于库的路径的不同,造成了用 -I 参数指定的头文件的路径也可能不同,其结果就是造成了编译命令界面的不统一。如果使用-L 参数,也会造成连接界面的不统一。编译和连接界面不统一会为库的使用带来麻烦。为了解决编译和连接界面不统一的问题,人们找到了一些解决办法。其基本思想就是:事先把库的位置信息等保存起来,需要的时候再通过特定的工具将其中有用的信息提取出来供编译和连 阅读全文
posted @ 2013-04-19 14:03 ydzhang 阅读(630) 评论(0) 推荐(0)
摘要: ONC RPC(Open Network Computing Remote Procedure Call)是一个由Sun Microsystem公司开发的开源的RPC框架。它是用于UNIX系统的RPC事实标准。ONC RPC已经被证明是一项高性能的技术。包括Solaris,AIX,HP UX,Linux等在内的大多数UNIX平台都支持RPC服务。在传统的编程概念中,过程是由程序员在本地编译完成,并只能局限在本地运行的一段代码,即其主程序和过程之间的运行关系是本地调用关系,这种结构在网络日益发展的今天已无法适应实际需求。众所周知,传统过程调用模式无法充分利用网络上其他主机的资源(如CPU、Mem 阅读全文
posted @ 2013-04-19 14:03 ydzhang 阅读(3210) 评论(1) 推荐(1)
摘要: 虚拟网络VMnet1-VMnet9 VMnet1~VMnet9这9个虚拟网络基本相同,其中VMnet1和VMnet8也有一些特殊,我们可以看到安装VMware以后,在宿主计算机中会多出来VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两块网卡,这两块网卡分别和VMnet1、VMnet8虚拟网络连接。这样就保证了宿主计算机... 阅读全文
posted @ 2013-04-19 14:03 ydzhang 阅读(268) 评论(0) 推荐(0)
摘要: C语言的参数列表是从右往左被压入堆栈的,假设现在堆栈中有关参数的情况如下: 栈顶-不可变参数1-不可变参数2-....-不可变参数n-可变参数1-可变参数2-......可变参数n-栈低 现在假设我们知道了"可变参数n"的类型,我们还需要知道什么就能得到这个参数?这个参数的地址!那如何得到这个地址?你必须知道前一个的地址和类型!那怎么知道前一个的类型和地址?…一直到最前面那个已经知道了类型和地... 阅读全文
posted @ 2013-04-19 14:03 ydzhang 阅读(249) 评论(0) 推荐(1)
摘要: 一直弄不清楚的IOZONE请求大小终于清楚了,原来IOzone中的记录大小是由其应用层划分的,最简单的情形是多个for循环read。 文件系统的读写速率与读写的文件大小是没有多大关系的,在写的时候可能大文件的在写元数据及数据组织方面比小文件的开销要大,所以写效率随测试文件大小的增加会有小幅度的下降。关键影响文件系统效率的其实是上层的请求大小,大的文件在应用层分为多个请求,请求的大小由应用程序决定... 阅读全文
posted @ 2013-04-19 14:03 ydzhang 阅读(804) 评论(1) 推荐(0)
摘要: 关键字 详细说明 分布式文件系统 研究point 1,性能,容量,可用性,安全性,可扩展性,可管理性 2,用户组件与数据管理组件的分离, 3,key:服务客户的响应时间 分布式文件系统应该具有的特性 1,网络透明性:客户端使用访问本地资源的方法访问网络资源 2,容错性:网络错误,主机,存储设备故障发生时,系统仍能正常提供服务(可降级,更慢的响应) 3,可扩展性:系统规模扩大时... 阅读全文
posted @ 2013-04-19 14:03 ydzhang 阅读(387) 评论(0) 推荐(0)