自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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内核完全注释

linux0.11内核完全注释linux0.11内核完全注释linux0.11内核完全注释linux0.11内核完全注释linux0.11内核完全注释linux0.11内核完全注释

2010-03-06

Linux编程入门之 C 语言环境

本讲是编程系列讲座的第一讲,主要讲述 Linux 平台上的 C 语言环境,包括编译器、 调试器、Make、Diff、Patch 等。其目的是通过介绍 Linux 上 C 语言编程的基本工具 以及一些新手必须掌握的技巧,迅速引导新手入门,以避免走弯路。 首先对 Linux 作一简单介绍,然后通过讲解 Linux 上进行编程的常识以及典型场景的 演示,使大家对 Linux 上的程序开发有一个感性认识。在此基础上,重点讲述 Linux 上 C 语言编程的基本工具,包括编译器和调试器,主要是它们的重要选项和基本用法。 接下来讲述在项目组织和开发过程中非常重要的工具,即 GNU make 和 makefile。 最后讲述 diff/patch 工具

2010-03-06

linux教程UNIX系统

本书全面介绍了UNIX系统的程序设计界面—系统调用界面和标准C库提供的许多函数。 本书的前15章着重于理论知识的阐述,主要内容包括UNIX文件和目录、进程环境、进程控制、进程间通信以及各种I/O。在此基础上,分别按章介绍了多个应用实例,包括如何创建数据库函数库,PostScript 打印机驱动程序,调制解调器拨号器及在伪终端上运行其他程序的程序等。 本书内容丰富权威,概念清晰精辟,一直以来被誉为UNIX编程的“圣经”,对于所有UNIX程序员—无论是初学者还是专家级人士—都是一本无价的参考书籍。

2010-03-06

ADS的使用说明和教程

ADS使用教程,让你在最短时间里熟悉ADS的使用,通过几个简单的配置,基本了解ADS

2010-03-03

华为+编程规范和范例

华为+编程规范和范例,良好的变成习惯,是程序员成功的必备素质~

2009-08-18

Annotated+Reference+Manual.pdf

层级三:底层机制(C++ Object Model) [Ellis90] The Annotated C++ Reference Manual

2009-08-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除