摘要:
在内核2.4中堆栈是这么定义的:union task_union { struct task_struct task;unsigned long stack[INIT_TASK_SIZE/sizeof(long)]; };而INIT_TASK_SIZE只能是8K。 内核为每个进程分配一个task_struct结构时,实际上分配两个连续的物理页面(8192字节),如图所示。底部用作task_... 阅读全文
摘要:
数据空间技术 ----如何减少程序所需要数据的存储空间的技术 1,不存储,重新计算。 如果我们在需要某一个给定对象的任何时候,都对其进行重新计算而不保存,就可以减少该对象所需的空间。该方法用计算时间换空间,只使用于需要存储的对象可以根据其描述重新计算得到的情况。 2,稀疏数据结构 例1:稀疏矩阵的的存储(很多个0,或其他相同的项)。 例2:使用指针来共享大型对象可以消除存储同一对象的... 阅读全文
摘要:
mdadm,lvm工具提供强大的动态磁盘管理功能,两者都需要内核md的支持,故使用前需查看内核是否支持md,如果不支持需重新编译内核(最开始用的时候创建RAID设备出错,于是检查内核配置,发现没有multi-device的支持)。本文以创建RAID5为例,讲解mdadm的基本使用方法。
device drivers ---->multi-device suppo(RAID and LVM)
<I... 阅读全文
摘要:
最强大的工具:
http://www.google.com http://www.baidu.com 代码相关:
google代码搜索:http://www.google.com/codesearch
google代码:http://code.google.com 提供项目托管功能
sourceforge开源项目社区:http://www.sourceforge.net
linux内核ftp... 阅读全文
摘要:
函数库分为静态库和动态库两种 静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。
动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。 示例代码: 头文件 hello.h #ifndef _HELLO_H#define _HELLO_Hvoid hello(void);#endif 源文件 hello.c... 阅读全文
摘要:
端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在计算机业Big Endian和Litt... 阅读全文
摘要:
最近项目中需要在内核态使用RSA加密算法,加密算法对我来说是一篇空白,到网上了解了些,比较好的加密跟认证的库有openssl,crypto++等,但这些库很庞大,而且很多东西因为考虑到复用,而不是单独为实现一个RSA算法而实现,在用户态使用非常方便,只有下载openssl的源码,安装即可调用其实现的加密算库,包括AES,Blowfish,RSA,一系列散列算法MD4,MD5, SHA1等等。由于... 阅读全文
摘要:
看虚拟文件系统的次数估计已经是两位数了,每次都有新的收获,这里把VFS涉及到的链表串起来总结一下,主要就是四大对象之间的串连,由于把这些串连关系放到一个图中,逻辑结构太过复杂,可看性太差。另外虚拟文件系统中链接关系比较复杂,下面是对深入理解VFS机制比较重要的一些链表的介绍。 文件系统类型file_system_type链表 其中,file_systems全局变量定义在fs/filesyste... 阅读全文
摘要:
Unix内核提供的基本时间服务是计算自国际标准时间1970年1月1日00:00:00以来经历的秒数(time_t类型)。Unix系统中时间戳一般32位数据存储,到2038年,32位数将溢出。 time函数返回当前时间和日期
#include <time.h> time_t time(time_t *time); 时间总是作为函数返回值。如果参数不为空,则时间值放入time指针指向的内存单元... 阅读全文
摘要:
通过当前path{cur_dentry,cur_ mnt},如何方向遍历到根路径 1, 如果当前的path为进程的根目录
即cur_dentry == current->fs->root && cur_mnt == current->fs->rootmnt
此时已不能再向上级目录追踪,遍历完毕。
2, 如果当前的path为文件的根目录
即cur_dentry == cur_mnt->mnt_r... 阅读全文