自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

转载 定位oops的具体代码行

接下来实习很可能搞测试,转一篇找错的文章先.来自Linus Torvalds的讨论:https://groups.google.com/group/ ... 41/ed9c0a0cfcd31111例如这样的一个Oops:Oops: 0000 [#1] PREEMPT SMP                  Modules linked in: capidrv kernelcapi isdn

2009-06-02 21:48:00 631

转载 什么是字节对齐,为什么要对齐?

现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。     对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU

2009-06-02 20:49:00 579

原创 C puzzles and my solution

题目地址:http://www.gowrikumar.com/c/Dear visitor,Thanks for your interest in C programming. In this page, you will find a list of interesting C programming questions/puzzles, These programs listed ar

2009-05-30 00:02:00 400

转载 逻辑地址、线性地址、物理地址和虚拟地址

原帖地址:http://linux.chinaunix.net/bbs/thread-919019-1-1.html 要过年了,发个年终总结贴,只是个人理解,不包正确哈。本贴涉及的硬件平台是X86,如果是其它平台,嘻嘻,不保证能一一对号入座,但是举一反三,我想是完全可行的。一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。—

2009-05-22 14:45:00 677

原创 内存 编址 指针

2^10 = 1K2^20 = 1M2^30 = 1G2^32 = 4G 别忘了,上述单位都是Byte字节,内存是以字节为单位编址的。可以将32位机器的内存(应该是虚拟内存)想象成一个数组,含有2^32个元素。内存地址就是这个数组的编号,从1(0x00000001)到 2^32(0xFFFFFFFF)           | ————  | 0xFFFFFFFF

2009-05-14 21:18:00 373

原创 lovebird

我默默的沉思了许多年,当我回首往事的时候,总会感慨一个又一个错过的美好。像我这个年纪,总能够从年轻人的话语中品味自己的过去。虽然我和他们经历不同,但是我想最基本的体验是一致的,相似的。看见青年陷入一个又一个泥淖,我心痛啊!我渴望帮助他们,可是路只能自己走。我们的岁数也许教会我们要包容、理解他们选择自己的路,即便那是错的。我们只能提醒和帮助。

2009-05-09 00:27:00 387 1

转载 Linux下的AT&T语法(即GNU as 汇编语法)入门

汇编语言作为一种高效的,而且紧密结合硬件平台的编程语言,在操作系统,嵌入式开发等领域都有着十分重要的作用。正因为汇编依赖于硬件结构(CPU指令码),因此不同体系结构上的汇编语言也大相径庭。本文简单介绍了Linux下的AT&T语法(即GNU as 汇编语法),以及在Linux下汇编的基本方法。AT&T语法起源于AT&T贝尔实验室,是在当时用于实现Unix系统的处理器操作码语法之上而形成的,AT&T语

2009-05-05 00:40:00 1198

转载 保护模式 VS 实模式

1:实模式:寻址采用和8086相同的16位段和偏移量,最大寻址空间1MB,最大分段64KB。可以使用32位指令。32位的x86 CPU用做高速的8086。2:保护模式:寻址采用32位段和偏移量,最大寻址空间4GB,最大分段4GB (Pentium Pre及以后为64GB)。在保护模式下CPU可以进入虚拟8086方式,这是在保护模式下的实模式程序运行环境。 第一:实模式下程序的运行回顾.    程序

2009-05-05 00:39:00 513 1

转载 写给Linux内核初学者

 提供的链接让我发现了很多资源------------------------------ 写给像我一样的Linux内核初学者                                                         --孔建军(Kongove.CN)                                                         

2009-05-01 01:53:00 1177 1

转载 内核入门

内核入门取自 西邮linuxhttp://xiyoulinux.cn/wiki/index.php?title=%E5%86%85%E6%A0%B8%E5%85%A5%E9%97%A8目录[隐藏]1 走近Linux内核 1.1 简介 1.2 需要准备什么 1.3 开始 1.3.1 1. 精通C语言编程 1.3.2

2009-05-01 01:37:00 1241

原创 输出重定向

被打印到屏幕上的信息有两种:是写到stdout的(可以用1表示)是写到stderr的(可以用2表示)如果你用command   >   filename或者command   1>   filename的形式,只有写到stdout的信息会被重定向到filename中;如果用command   2>   filename的形式,只有写到stderr的信息会被重定向到fil

2009-04-18 20:04:00 446

原创 指针 插入排序分析(我都晕了)

 被那指针的指针、传地址等东东搞糊涂了!#if N <= 1000static void insert_sort(char *strings[], int n){ char *v, *t; char **strp, **endp; int i; endp = &strings[N-1]; i = N-2; do {

2009-04-18 13:53:00 543

原创 指针数组vs数组指针

这个问题大家应该都碰到过,指针数组和数组指针,刚开始看时觉得还是能看懂,但是过些时又搞混了,最后发现还是没有真正理解。先简单从概念上说一下:指针数组:是一个数组,其元素是指针。 数组指针:是一个指针,指向一个数组类型。

2009-04-18 11:30:00 267

转载 Linux驱动程序开发学习步骤

1. 学会写简单的makefile  2. 编一应用程序,可以用makefile跑起来  3. 学会写驱动的makefile  4. 写一简单char驱动,makefile编译通过,可以insmod, lsmod, rmmod. 在驱动的init函数里打印hello world, insmod后应该能够通过dmesg看到输出。  5. 写一完整驱动, 加上rea

2009-04-08 19:00:00 444

转载 linux 2.6.24 makefile文件基本介绍

目录     === 1 概述     === 2 角色分工     === 3 内核编译文件        --- 3.1 目标定义        --- 3.2 内嵌对象 - obj-y        --- 3.3 可加载模块 - obj-m        --- 3.4 导出符号        --- 3.5 库文件 - lib-y        --- 3.6 目录递归        -

2009-03-14 23:29:00 529

转载 linux 2.6 启动流程分析

内核在启动时可以传递一个字符串命令行,来控制内核启动的过程,例如:"console=ttyS2,115200 mem=64M@0xA0000000"这里指定了控制台是串口2,波特率是115200,内存大小是64M,物理基地址是0xA0000000。另外我们可以在内核中定义一些全局变量,使用这些全局变量控制内核的配置,例如usb驱动中定义了static int nousb; /*

2009-03-10 23:16:00 830

转载 dota 诗一首

多塔能有几多愁,莫提小鸡吃树臂章流。月骑倚树月如钩,末日使者三路把兵收。君不见,越塔杀人被塔杀,队友无耻抢人头;千辛万苦开一场,莫名秒退是七楼。君不见,家中起火火烧楼,无奈没有回城轴;孤身独挡三军路,队友遥望喊加油。君不见,黑血残躯逃出路,蓝光乍现缥缈雾;河道将逃仇家捕,忽现双倍夺命符。君不见,团战失利幸未死,宙斯一笑几家苦;荒郊野岭遇地卜,命丧神箭白老虎。遗产流,速推流,不敌自家内讧流;四人黑,

2009-03-03 09:58:00 494

原创 【摘选】linux 设备驱动程序工作的基本原理

由于用户进程是通过设备文件同硬件打交道,对设备文件的操作方式不外乎就是一些系统调用,如 open,read,write,close...., 注意,不是fopen, fread.,但是如何把系统调用和驱动程序关联起来呢?这需要了解一个非常关键的数据结构:   struct file_operations { int (*seek) (struct inode * ,struct file *, o

2009-03-02 14:40:00 404

转载 堆和栈的区别

一、预备知识—程序的内存分配 由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack): 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3、全局区(static): 全局变量和静态变量的存储

2009-02-27 22:20:00 238

转载 Linux 脚本编写基础

1.1 语法基本介绍1.1.1 开头程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh   符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。   当编辑好脚本时,如果要执行该脚本,还必须使其可执行。   要使脚本可执行:编译 chmod +x filename 这样才能用./filename 来运行1.1.2 注释   在进行

2009-02-27 22:15:00 460 1

转载 makefile 中":"和":="赋值的区别

Makefile中的"="":="、"?="和"+="区别是:"="是直接给变量赋值。":="是将":="右边中包含的变量直接展开给左边的变量赋值。"?="是在该变量没有被赋值 的情况下为其赋值。"+="是给该变量追加值。例:a = 1b = 2c := $(a) 3d = 4d ?= 5b += 6结果:a=1c=1 3d=4b=2 6#example a = orginal_value

2009-02-27 16:45:00 350

原创 ctrl+c中断一个小示例

ctrl+c中断一个小示例代码分析:#include ;#include ;#include ;#include ;#include ;#define PROMPT "你想终止程序吗?"char *prompt = PROMPT;void ctrl_c_op(int signo){ write(STDERR_FILENO,prompt,strlen(prom

2009-02-24 22:06:00 713

原创 C中什么时候使用static?

什么时候使用static?就像java中的private,C中的static用来说明变量或函数是私有的。当希望某些全局变量或函数只能被本文件引用,而不能被其他文件引用时,可以在定义时加上static声明。尽可能的用static属性来保护你的变量和函数是很好的编程习惯c源代码文件扮演模块的角色,任何声明带有static属性的全局变量和函数都是模块私有的。 ps:典型的ELF(可执行、

2009-02-21 19:35:00 963

转载 写给C语言初学者的话

前些天我写了一篇“Unix C语言值得注意的地方”一贴,回贴中谈到学习国外的开源软件中的高质量代码的问题,但是有朋友跟我说,在看代码的过程中感觉难度很大,想想也是如此,动辄十几万行的程序如果没有人指点的话是很难找到切入点的,所以我撰写了此文希望能对广大C语言爱好者有所帮助,在文章中有很多煽情的地方还请大家原谅,因为这篇文章使我想到了刚刚毕业的时候,所以有点感慨。同时文章中还有一些个人偏见存在,希望

2009-02-21 18:16:00 316

原创 csapp “链接”

链接可以在编译时由静态编译器来完成,也可以在加载时和运行时由动态链接器来完成。连接器处理的文件为目标文件(为二进制文件)包含:可重定位的、可执行的、共享的三种。 多数编译系统提供编译驱动程序comiler driver,为用户根据需求调用语言预处理器、汇编器、和连接器。驱动程序将ASCII码源文件翻译成为可执行目标文件的过程如下:驱动程序首先运行C预处理器cpp将c源程序翻译成一个AS

2009-02-19 13:38:00 601

原创 我那些逝去的blog

很早就写blog,刚开始是在学校服务器上自己做的个人网站上写,怕毕业后不好办然后在新浪写.结果弄的这里一点,那里一点,sign... 现在又搬到CSDN上来.学校的个人网站如今已经灰飞烟灭了,今天偶然间想起了新浪的blog,搜了下,很容易就找到了,登陆名是gaoboblog,我用gaobo1025试了好久也没登上,最后灵机一动,用对应的编号登了进去.发现还是写了不少篇呢,又有点不舍了,

2009-02-18 21:35:00 301

原创 My first Makefile

First, the source  file is: p631: p631.o csapp.o gcc p631.o csapp.o -o p631 -pthread p631.o: p631.c csap

2009-02-14 23:06:00 320

转载 Ten sentences

第一句 如果我们之间有1000步的距离  你只要跨出第1步 我就会朝你的方向走其余的999步 第二句 通常愿意留下来跟你争吵的人  才是真正爱你的人  第三句 付出真心 才会得到真心  却也可能伤得彻底 保持距离 就能保护自己  却也注定永远寂寞  第四句 有时候 不是对方不在乎你  而是你把对方看得太重  第五句 朋友就是把你看透了 还能喜欢你的人  第六句

2009-02-14 12:41:00 264

原创 工程实践

       当感慨任务不可能完成之时,先想一想花了多少时间在上面。——记工程实践开题

2008-12-03 22:06:00 250

原创 500强公司面试的经典正确与错误回答对比!!![zz]

问题1 你为什么觉得自己能够在这个职位上取得成就? 分析 这是一个相当宽泛的问题,它给求职者提供了一个机会,可以让求职者表明自己的热情和挑战欲。对这个问题的回答将为面试人在判断求职者是否对这个职位有足够的动力和自信心方面提供关键信息。 错误回答 我不知道。我擅长做很多事情。如果我能得到并且决定接受这份工作,我确信自己可以把它做得相当好,因为我过去一直都很成功。 评论 尽管表面上听起来这种回答可以接

2008-06-08 20:49:00 340

原创 【摘选】嵌入式学习步骤

先说做硬件: 把你的数字电路教材和模拟电路的教材读熟,暂时先把重点放在数字电路上面,接着把微机原理和接口技术读熟悉了,最好能用汇编写几个简单的程序上机调试一下,这是很重要的。 完成上面的工作大概需要半年,不管你有多么的聪明,除非你以前这个基础就打的不错,否则,还是老老实实花上至少半年的时间!还是那句话,没有捷径可走,如果你相信那些什么“21天学通xx”什么的,那么我告诉你,放弃做工程吧!再

2008-04-14 10:52:00 958

原创 ZZ一个优秀的IT人

  我希望成为一个优秀的IT人,我已经努力了七年  这些日子我一直在写一个实时操作系统内核,已有小成了,等写完我会全部公开,希望能够为国内IT的发展尽自己一份微薄的力量。最近看到很多学生朋友和我当年一样没有方向,所以把我的经历写出来与大家共勉,希望能给刚如行的朋友们一点点帮助。  一转眼我在IT行业学习工作已经七年多了,这期间我做过网页,写过MIS、数据库,应用程序,做过通信软件、硬件驱动、协议栈

2008-04-01 16:25:00 402

转载 简单即是美

1.       c++       就是在c的基础上引进了面向对象(以下简写为       oo       )的特性,但是,请注意,就是这点不同,让c++       与       c       成了截然不同的两种语言!(c++之父也是这样说的)   2.       oo       只是看上去很美,实际上并没解决任何问题,开始的时候它是打着拯救软件危机的旗号来的,但现在看,可惜的是,其

2008-02-23 16:13:00 468

原创 考研信条

1.觉得为时已晚的时候,恰恰是最早到时候。2.失败者找借口,成功者找方法。3.Pursue the feeling of perfect.这三句话在我考研后期给了我不少的鼓励,让我充满信心的迎接每一天,相信这三句话以后仍会继续陪伴我,谨记之。 

2008-02-23 16:07:00 364

原创 在csdn也安了个家

  在学校有一个,yohoro.3u.cn,但怕万一出现问题,而且估计以后这个也得常上,就转移到这边来了。 

2008-02-23 15:26:00 321

空空如也

空空如也

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

TA关注的人

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