- 博客(18)
- 资源 (7)
- 收藏
- 关注
原创 mmap的优缺点:
引用:http://lkml.indiana.edu/hypermail/linux/kernel/0004.0/0728.htmlPeople love mmap() and other ways to play with the page tables to optimize away a copy operation, and sometimes it is worth
2012-09-16 22:44:24
2486
原创 linux 启动顺序
1.BIOS阶段 有关BIOS就不在这里进行叙述,BIOS用于将启动设备中第一个扇区拷贝到RAM中,而这个扇区可能是存放MBR,后者直接是GRUB等引导程序。引导程序存放在RAM中的0x7C00地址上,2.引导程序执行阶段 在BIOS阶段中引导程序已经被拷贝到0x00007C00地址上,现在PC指针跳转到该地址上,即执行引导程序指令。这里假设引导程序是GRUB,在linux旧的
2011-12-15 13:08:50
543
原创 进程内存优化(一)
一.数据段数据段中包含 bss与data两个节,其中data节用于保存初始化不为0的全局变量,而bss节用于初始化为0或者尚未初始化的全局变量。为什么以0作为区分两个节?因为对于bss节来说,不需要在文件中保存变量的初值0,Loader只需要使用一个内容为0的page页面,因此该段并不占用文件的空间。但是对于data节来说,必须在文件中data节保存变量的初值,因此需要占用文件大小,当访问
2011-12-07 16:54:10
1263
原创 QEMU编译问题
本来自己apt-get install qemu进行GDB调试内核,突然发现内核断点设置停不了,因此我就自己下载一个qemu-0.13版本进行编译。路上一路坎坷,现记录编译错误供大家分享!1.库文件支持QEME0.15 之前版本不需要GLIBC 2.0支持再编译前确保LIBSDL1.2-DEV有安装,否则再执行QEMU时会出现VNC server running on`127.0.
2011-11-05 13:03:10
1551
原创 Linux: /usr/bin/ld: cannot find -lc Error and Solution
这个简单的问题折腾我近2个小时的时间,下载新gcc,libc,再编译Libc时一路曲折,居然说ld older。我郁闷的不行 其实早就想到是Libc.so的路径问题,但是自己当时把找到usr/lib/i386-linux-gnu/ libc.so 和 libc.a,复制 /usr/local/lib/目录中,发现还是不行,当时认为跟这个路径无关了,结果应该将这个
2011-11-03 17:08:05
5138
原创 linux 根文件系统挂载
使用rootfs_fs接口讲cpio格式的rootfs解压缩到内存的/目录下,这时就形成一个根文件系统。分析的非常好,再次引用下:http://bbs.chinaunix.net/thread-1951077-1-1.htmlhttp://www.ibm.com/developerworks/cn/linux/l-k26initrd/整个文件系统挂在分成三种情况:
2011-10-27 18:58:02
636
原创 linux vmalloc的page_fault分析
vmalloc是内核中非连续内存分配接口,返回高端的线性地址,而且处于VMALLOC_START ---VMALLOC_END之间。物理地址通过伙伴算法来获取,利用page_alloc来获取每个page,这样在线性地址上看是连续的,但是实际上物理地址是离散分布的,通过页表来实现连续的线性地址到非连续的物理地址的映射。下面分析整个vmalloc的流程:__vmalloc->vmallc_node
2011-10-27 13:08:06
3033
原创 进程创建的页表初始化
进程创建使用do_fork函数,其中重要的部分如子进程的地址空间的建立,进程空间的建立主要包括线性地址空间和物理地址空间两个方面。其中线性地址空间使用VMA的方式管理,在dup_mmap函数中进行复制和初始化,而物理地址空间使用页目录,页表来管理。下面分析进程物理地址空间的初始化过程。整个调用流程:do_fork -> copy_process -> copy_mm -> dup_mm
2011-10-26 15:58:05
3892
1
原创 实现字符串到整形的转换
考虑:1.考虑各种边界条件2.考虑 正负数 3.考虑整数 相加 溢出,注意 负数和整数的表示范围不同。负数最小数是 -(正数最大值+1)int StrToInt(const char* str){ int num = 0; #defi
2011-09-23 21:12:06
981
原创 树的镜像(反转)
#include typedef struct BCTreeNode // { int Value; // struct BCTreeNode *left_child; //
2011-09-23 21:05:35
912
原创 一个十分有趣的字符串算法题目(转On April 19, 2011, in 算法, by sponge)
在blogspot上看到一个十分有趣的字符串算法题目,原文在这里。作者讲述了自己面试google的一次经历。本文不理会这个故事,只来讨论一下里面着个有趣的算法。算法题目:有两个字符串由不同的字母组成,一长一短,长的为A短的为B。设计一个算法,如果所有在B中出现的字符都在A
2011-09-07 13:39:19
567
原创 android 资料
(1)Ben “Benno” Leslie的关于andorid移植到openmoko的个人博客地址:http://benno.id.au/blog/
2011-08-28 18:36:42
356
原创 Edit-Distance的算法分析与实现
我们把两个字符串的相似度定义为:将一个字符串转换成另外一个字符串的代价(转换的方法可能不唯一),转换的代价越高则说明两个字符串的相似度越低。比如两个字符串:“SNOWY”和“SUNNY”,下面给出两种将“SNOWY”转换成“SUNNY”的方法: 变换1: S -
2011-08-26 22:20:01
1661
2
原创 计划一个公司聚会
Stewart教授是一家公司总裁的顾问,这家公司计划一个公司聚会。这个公司有一个层次式的结构;也就是说,管理关系形成一棵以总裁为根的树。人事部给每个雇员以喜欢聚会的程度来排名,这是个实数。为了使每个参加者都喜欢这个聚会,总裁不希望一个雇员和他(她)的直接上司同时参加。St
2011-08-25 08:51:17
678
原创 内核资源URL
http://www.kerneltravel.net/ 内核之旅http://www.ibm.com/developerworks/cn/linux/l-kdb/ 内核调试技术http://www.linuxsir.org/bbs/showthread.php?t=241578 vim ctag,taglist etc confighttp://blog.csdn.net/
2011-08-22 20:29:38
408
原创 内存管理的文章
http://duartes.org/gustavo/blog/首先提供Gustavo Duarte写的三篇非常精彩的文章:1. Anatomy of a Program in Memory2. How The Kernel Manages Y
2011-08-22 20:03:12
402
原创 范式理论
构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,即满足不同的范式。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2N
2009-07-23 14:08:00
556
原创 如何写分页(含HTML)
function PageList($base_url,$num_items,$per_page,$start_item,$PageColor) { $total_pages = ceil($num_items/$per_page); $on_page = floor($start_item / $per_page) + 1; $page_string=""; $page_strin
2009-07-22 11:12:00
804
linux0.11内核完全注释
2010-03-06
Linux编程入门之 C 语言环境
2010-03-06
linux教程UNIX系统
2010-03-06
Annotated+Reference+Manual.pdf
2009-08-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人