随笔分类 - Linux
摘要:1. 单值查找radix_tree_lookup 函数radix_tree_lookup执行查找操作,查找方法是:从叶子到树顶,通过数组索引键值值查看数组元素的方法,一层层地查找slot。其列出如下 void *radix_tree_lookup(struct radix_tree_root *ro
阅读全文
摘要:1. 并发技术 由于需要页高速缓存是全局的,各进程不停的访问,必须要考虑其并发性能,单纯的对一棵树使用锁导致的大量争用是不能满足速度需要的,Linux中是在遍历树的时候采用一种RCU技术,来实现同步并发。 RCU(Read-Copy Update),是一种保证读该radix tree的时候,可以不要
阅读全文
摘要:一、概述 Linux radix树最广泛的用途是用于内存管理,结构address_space通过radix树跟踪绑定到地址映射上的核心页,该radix树允许内存管理代码快速查找标识为dirty或writeback的页。Linux radix树的API函数在lib/radix-tree.c中实现。 L
阅读全文
摘要:改变内存空间的方法,主要就是set_fs(),get_ds()这两个函数来完成内存空间切换。一般定义的宏如下: #define BEGIN_KMEM {mm_segment_t old = get_fs();set_fs(get_ds())} #define END_KMEM {se...
阅读全文
摘要:无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和 makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员来说简直就是一场灾难。Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某
阅读全文
摘要:一共有7种启动级别,分别为:# 0 - halt (Do NOT set initdefault to this)# 1 - Single user mode# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)# 3 - Full multiuser mode# 4 - unused# 5 - X11# 6 - reboot (Do NOT set initdefault to this)各个运行级的详细解释:0 为停机,机器关闭。1 为单用户模式,就像Win9x下的安全模式类似。2 为多用户模式
阅读全文
摘要:硬链接 一个inode号可以和任意多个硬链接对应,当所有硬链接都删除后,此inode号也将由系统自动删除,ls -ial命令的第三列即为和当前inode号关联的硬链接数目。创建硬链接的命令为root@vrlab726-desktop:~/Desktop/test# ln file fileHardLinkroot@vrlab726-desktop:~/Desktop/test# ls -ial7668672 drwxr-xr-x 2 root root 4096 2011-12-14 20:19 .6447440 drwxr-xr-x 9 root root 4096 2011-12-14 .
阅读全文
摘要:http://www.ibm.com/developerworks/cn/linux/kernel/l-chain/#N10038
阅读全文
摘要:fuser 概述fuser命令是用来显示所有正在使用着指定的file, file system 或者 sockets的进程信息。例一:#fuser –m –u /mnt/usb1/mnt/usb1: 1347c(root) 1348c(guido) 1349c(guido)在例子一中,使用了-m和-u选项,用来查找所有正在使用/mnt/usb1的所有进程的PID已经该进程的OWNER,如1347c(root),其中1347是进程PID,root是该进程的OWNER。fuser会显示正在使用指定的file,file system 或者 sockets的进程的PID。在默认的显示模式下,每个文件名
阅读全文
摘要:Linux内核启动参数Console Options参数说明选项内核配置/文件console=Options用于说明输出设备ttyn 终端ttySn[,options], ttyUSB0[,options] 串口uart,io,addr[,options],uart,mmio,addr[,options]&/dev//dev/p(要求diskname以数字结尾)rootdelay=n挂载文件系统前的延迟主要是当根文件系统在USB or FireWire设备上rootflags=options根文件系统挂载选项rootfstype=type根文件系统的类型例如:rootfstype=ex
阅读全文
摘要:source FileName 作用:在当前bash环境下读取并执行FileName中的命令。 注:该命令通常用命令“.”来替代。 如:source .bash_rc 与 . .bash_rc 是等效的。 source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是个点符号,(从Bourne Shell而来)是source的另一名称。同样的,当前脚本中配置的变量也将作为脚本的环境,source(或点)命令通常用于重新执行刚修改的初始化文档,如 .bash_profile 和 .profile 等等。例如,假如在登录后对 .bash_profile 中的 E...
阅读全文
摘要:lsof卸载移动存储时经常提示device busy,也可能误删了一个正在打开的文件。。。。 这时候可以试试lsoflsof简介lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如TCP和UCP套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是
阅读全文
摘要:1、下载软件nfs-utils和必须的两个安装包http://pkgs.fedoraproject.org/repo/pkgs/libtirpc/libtirpc-0.2.2.tar.bz2(添加 disable-tirpc参数而不再需要,同理libtirpc-0.2.2也不再需要)http://p...
阅读全文
摘要:struct _inode_table { pthread_mutex_t lock; size_t hashsize; char *name; struct list_head lru;size_t lru_size;};struct _inode { inode_table_t *table; uuid_t gfid; gf_lock_t lock;struct list_head list; };struct list_head {struct list_head *next;struct list_head *prev;};//初始化,头和尾都指向自己#define INIT_LIST
阅读全文
摘要:1、使用GCC创建和使用静态库(1)gcc –o mylib.o –c mylib.c //生成o文件(2)ar -rcs libmylib.a mylib.o //生成a文件-c create的意思-r replace的意思,表示当插入的模块名已经在库中存在,则替换同名的模块。(3)cp libmylib.a /usr/lib///拷贝到默认目录(4)编写程序使用库中的函数,需要包含相关的头文件,即可用下面的方式进行编译连接。gcc –o test test.c -L. -lmylib-L指定静态函数库的位置供查找,注意L后面还有'.',表示静态函数库在本目录下查找。-l则指
阅读全文
摘要:1、工具安装在开始使用autoconf和automake之前,首先确认你的系统安装有GNU的如下软件: automake/autoconf/m4/perl。如果你需要产生共享库(shared library)则还需要GNU Libtool。如果使用RedHat的Linux版本,这几个工具会自动安装,我试验中用SUSE11也安装了所有程序。autoconf:是一个shell脚本的工具,可以自动地配置软件源代码包以适应多种UNIX类系统。由autoconf生成的配置脚本在运行的时候不需要用户的手工干预;通常它们甚至不需要手工给出参数以确定系统的类型。其中autoconf需要用到m4,便于生成脚本。
阅读全文