自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

intime的脚印

Be an Artist rather than a Coder!

  • 博客(19)
  • 收藏
  • 关注

转载 kernel oops 分析

https://groups.google.com/group/linux.kernel/browse_thread/thread/b70bffe9015a8c41/ed9c0a0cfcd31111from Linus原文如下:---On Mon, 7 Jan 2008, Kevin Winchester wrote: > J. Bruce Fields wrote: > > Is th

2008-06-05 13:28:00 3425

转载 编码检查表--from the book(编码精粹)

一般问题 你是否为程序建立了DEBUG版本 你是否将发现的错误及时改正了 你是否坚持彻底调试编码,即使耽误了进度也在所不辞 你是否依靠测试组为你测试编码 你是否知道编码的优先顺序 你的变异程序是否有可选的各种警告关于将更改归并到主程序 你是否将编译程序的警告(包括可选)都处理了 你的代码是否未用Lint 你的代码进行了单元测试吗 你是否逐步通过了每一条编码路径以观察数据流 你是否逐步通过了汇编语言

2007-06-06 15:11:00 1172

转载 《编程精粹-Microsoft编写优质无错代码的秘诀》的摘录

第一章:假想的编译程序1.不要期待好运气会碰到错误,应该去自己主动发现错误,排除运气对程序测试的影响,主动地抓住错误每个机会2.这章作者假想了一个非常智能的编译器,可以通过修改一些C语言规则,进行函数原形的检查和提供警告消息主动的发现错误,事实上能够利用现成的C编译器实现这些功能3.勤用Lint程序进行检查4.做单元测试(不要因为修改很平常而放弃单元测试)第二章:自己设计并使用断言1.对于

2007-06-06 15:09:00 1957

原创 如何在linux下编写自己得rpc调用

linux rpc在内核中实现,源代码位置是net/sunrpc/sunrpc不仅实现了rpc的调度,同时将rpc请求构造解析发送接受的通用部分进行了提取。要定义自己的rpc调用仅需要实现那些非通用的部分,下面简要介绍怎么实现一个自己的rpc客户端(2.4内核)主要数据结构介绍1。rpc请求/* * This is the RPC buffer */struct rpc_iov {  

2007-04-30 16:58:00 2243

原创 Linux 计时概要

 1.用户空间用户空间可以使用下面的函数,这些是新增加的通用接口,用来替代过时的不够精确的gettimeofday()。他们的精度取决于不同平台,应该都是硬件实现,struct timespec可表示的最小精度是纳秒#include int clock_getres(clockid_t clk_id, struct timespec *res);int clock_gettime(clockid_

2007-04-29 10:24:00 1327

原创 面试大全 血的教训

 找工作3个月,自认为基础尚可,笔试基本能过,前前后后面试了大公司n个,但搞定的几率却小。所谓知耻而后勇,着实需要反省反省总结总结。在面试过程中摸爬滚打了3个月,虽说没吃上多少猪肉好歹也见识过很多猪跑,总结经验如下,希望以后能用的上:面试就是给时间你宣传自己,宣传的到位不到位完全是个技巧活。说实话,一般的面试短短时间,除了了解面试者背景外,其实很难真正了解一个人。因此如果对自己的能力自我感觉良好而

2007-04-06 20:50:00 1115

原创 Linux rpc结构 一种事件驱动的状态机处理

 Linux的RPC是作为NFS的底层支持接口放在内核中的。当然,需要的话,其他模块也能调用RPC接口。为了高效的调度各个RPC请求,Linux的PRC调度实际上是一个事件驱动模型。C/S结构,大多使用多进程服务模型,这种模型的优点是编程简单,因为操作系统都是基于进程调度的,可以直接使用操作系统的接口。缺点是不适用于大规模的服务。服务进程或者线程的数目越多,用于切换调度的开销就越多,一旦进程或者线

2007-03-02 18:07:00 3484 4

原创 写代码同时应注意的几个代码调试手段

1。debug log信息    这个重要性不用说了  虽然是最低级的调试手段  但是历史告诉我们  往往简单才是最有效的。    debug最基本的初衷是为了让程序除了正常运行模式外,还能运行于debug模式,以方便跟踪程序的一举一动。    见过几种debug的方式        1)分等级    最典型常见的就是printk  分等级的目的是为了将不同等级区分对待。然而printk存在并不是

2007-01-31 16:05:00 1238

原创 关于volatile的一个疑惑

一般说来,volatile用在如下的几个地方: 1、中断服务程序中修改的供其它程序检测的变量需要加volatile; 2、多任务环境下各任务间共享的标志应该加volatile; 3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义;   今日看代码的过程中,发现kernel一个实现未遵循该守则,极为疑惑。。。代码位置为linux内

2007-01-12 19:25:00 894

转载 GCC内嵌汇编简介

 在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可, GCC会自动插入代码完成必要的操作。 1、简单的内嵌汇编 例:       __asm__ __volatile__("hlt"); “__asm__”表示后面的代码为内嵌汇编,“as

2007-01-10 16:49:00 2957 2

转载 GCC内嵌汇编之语法详解

内嵌汇编语法如下:        __asm__(汇编语句模板: 输出部分: 输入部分: 破坏描述部分) 共四个部分:汇编语句模板,输出部分,输入部分,破坏描述部分,各部分使用“:”格开,汇编语句模板必不可少,其他三部分可选,如果使用了后面的部分,而前面部分为空,也需要用“:”格开,相应部分内容为空。例如:              __asm__ __volatile__("cli": :

2007-01-10 16:47:00 1405

转载 AT&T与INTEL的汇编语言语法的区别

1、大小写 INTEL格式的指令使用大写字母,而AT&T格式的使用小写字母。 例:     INTEL                          AT&T       MOV EAX,EBX              movl %ebx,%eax 2、操作数赋值方向 在INTEL语法中,第一个表示目的操作数,第二个表示源操作数,赋值方向从右向左。 AT&T语法第一个为源操

2007-01-10 16:41:00 1532

原创 msra面试

面了3人,中午直接被赶回来。。。第一个 问了问项目然后让写一个转换ipv4字符串成一个整数要求考虑尽可能有的特殊情况   然后设计测试用例第二个题目是54张扑克牌  红黑各一半  问连续拿到相同花色的概率第2个人是一个台湾人  搜索组  主要问项目经验和对项目管理的看法 问的很深然后问了一个概要的设计题  问怎么样来改进sigma的4个电梯  并如何验证成效自始至终竟然没问一个程序题目和智力题目 

2007-01-09 20:29:00 2385 1

原创 关于有限状态机的一种程序实现结构

 关于状态机的定义已经比较模糊了大致猜一下  有限状态机是指 起始结点到终点之间存在有限个数的状态。通过这些状态之间的跳转可以简单的对付复杂的输入在实际应用中,许多状态特性明显或者不明显的都能划分出状态机特别是面向对象思想应用到编程中,状态的意义越来越明显下面要谈到的程序实现来自一个简单的dhcp客户端的实现代码由于dhcp有多个状态:discovery   offer   decline  re

2007-01-08 17:12:00 1987

原创 关于linux bitops的使用

内核API没有通用的标准 即使在内核的文档和头文件也没详细给出一个多平台开发中多处用到bitops   结果碰到许多问题1int find_first_zero_bit(void * addr, unsigned size);int find_next_zero_bit(void * addr, int size, int offset);找到0bit时,各平台都返回0~size-1在x86下,没

2006-12-30 11:56:00 4086

原创 内核中调用用户程序的接口

1。进入正题前,先说明内核拷贝的一个问题 对于读写等接口 最需要注意的一点是:这种类型接口会调用copy_to_user 或者 copy_from_user这两个是进行用户空间拷贝在X86体系结构中 内核调用这个接口必须设置FS段寄存器的值 因为整个拷贝是通过(段寄存器:偏移值寄存器)定位的FS原来指向用户空间,而DS指向内核空间的段,需要将FS更改成内核空间,完成拷贝操作后,再更改回来。   

2006-12-30 10:58:00 1313

原创 内核里面屏蔽信号的方法

    spin_lock_irqsave(&current->sigmask_lock, flags);    oldset = current->blocked;    sigfillset(&current->blocked);    recalc_sigpending(current);   //  重新计算current->sigpending    spin_unlock_irqre

2006-12-30 10:50:00 1318

原创 google开源软件职位笔试面试题

职位本身对算法要求不高,但要求精通Linux编程1. “两亿五千万” “六百三十五万”“十三”写程序将上述字符串转换成阿拉伯数字字符串 2.写代码求一个2叉树中左右子树层数相差最大的结点 3.写代码在一个满2叉树中插入新结点4数字1~n 随机打乱顺序,问还在原来位置上的数字的个数的数学期望。n×1/n = 1想到了没说。。。 55

2006-12-30 00:03:00 1351

原创 blog开张

做技术 日子久了肯定会慢慢丢掉只是希望再要用的时候能比较快的再捡起来积累很重要 老板说的对 还是做人重要做了的总不会丢的

2006-12-29 23:53:00 755

空空如也

空空如也

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

TA关注的人

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