自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

walterxia的专栏

E-Mail: walter.xia@gmail.com

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

原创 谈谈字节序

谈谈字节序walterxia walter.xia@gmail.com         说到字节序问题首先想到的是网络字节序(Network byte order)。不同主机之间需要通信,可能各个主机的体系结构不同,其本身存放字节的顺序是不同的,X86体系一般采用Little Endian(即低字节存放在低地址),而PowerPC相反,采用Big Endian(即高字节存放在低地址),

2012-06-18 23:03:37 792 1

原创 TAOVar Out type

TAOVar Out typeBy WalterXia walter.xia@gmail.com In our project, TAO, ACE are used widelyand they are crossing platforms. Especially, the CORBA based on them is highweight IPCinfrastructure

2012-06-12 15:27:14 735

原创 版本控制软件Git

今天看了一下Linux Kernel已经到3.5-rc2,好快啊。公司里一直在用2.6.11,Linus说3.0里没有大变化,只是重新编号而已。内核使用Git来版本控制的,是个分布式版本控制软件,开源的版本控制软件,如CVS, SVN (Subversion)不是分布式的。如今,Git在开源项目中的使用异常凶猛。有必要学习一下。跟随《Git Community Book中文版》 在WINXP上安装

2012-06-09 22:50:27 323

转载 C++标准转换运算符reinterpret_cast (转)

C++标准转换运算符reinterpret_castreinterpret_cast (expression)reinterpret_cast运算符是用来处理无关类型之间的转换;它会产生一个新的值,这个值会有与原始参数(expressoin)有完全相同的比特位。什么是无关类型?我没有弄清楚,没有找到好的文档来说明类型之间到底都有些什么关系(除了类的继承以外)。

2012-06-06 14:27:05 378

转载 警惕UNIX下的LD_PRELOAD环境变量

警惕UNIX下的LD_PRELOAD环境变量 转自 http://blog.csdn.net/haoel/article/details/1602108  陈皓 前言        也许这个话题并不新鲜,因为LD_PRELOAD所产生的问题由来已久。不过,在这里,我还是想讨论一下

2011-07-12 14:14:39 653 1

转载 标准C++类std::string的内存共享和Copy-On-Write技术

标准C++类std::string的内存共享和Copy-On-Write技术 陈皓1、             概念 Scott Meyers在《More Effective C++》中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功课,于是你把自己关在房间里,做出一副正在复习功课的样子,其实你在干着别的诸如给班上的某位女生写情书之类的事,而

2011-06-29 12:29:00 502

转载 spinlock和semaphore的差别和应用

转自 http://group.ednchina.com/1036/18550.aspx   这两天经常有同事在问我spinlock和semaphore的相关问题,什么时候该用spinlock?什么时候该用semaphore?什么时候该用spinlock_irq?什么时候该用spinlock_irqsave?的确,对于初涉内核开发的人员来说,spinlock和semaphore的应用是

2011-06-17 15:59:00 738

转载 False Sharing问题

在多处理器,多线程情况下,如果两个线程分别运行在不同的CPU上,而其中某个线程修改了cache line中的元素,由于cache一致性的原因,另一个线程的cache line被宣告无效,在下一次访问时会出现一次cache line miss,哪怕该线程根本无效改动的这个元素,因此出现了False Sharing问题【1】。如下图所示,thread1修改了memory灰化区域的第[2]个元素,而

2011-06-15 20:54:00 415

转载 为什么程序员需要关心顺序一致性(Sequential Consistency)而不是Cache一致性(Cache Coherence?)

转自: http://www.parallellabs.com/2010/03/06/why-should-programmer-care-about-sequential-consistency-rather-than-cache-coherence/ 本文所讨论的计算机模型是Shared Memory Multiprocessor,即我们现在常见的共享内存的多核CPU。本文适合的对象是

2011-06-13 23:19:00 429

原创 learn LDD (Linux device driver) using virtual box + ubuntu 10.04

---Downloading software---Downloading virtual machine http://www.virtualbox.org/, latest version 4.0.4Downloading ubuntu-10.04-desktop-i386.

2011-04-06 18:39:00 560

转载 多核与多线程技术的区别到底在哪里?

<br />转自 http://article.pchome.net/content-326430.html <br />2007-04-21 CBSi中国·PChome.net 类型: 转载 来源: 硬派网 作者: 硬派网 责编: 胡亚峰<br /> <br /><br />毫无疑问的,“多核”、“多线程”此二词已快成为当今处理器架构设计中的两大显学,如同历史战国时代以“儒”、“墨”两大派的显学,只不过当年两大治世思想学派是争得你死我亡,而多核、多线程则是相互兼容并蓄,今日几乎任何处理器都朝同时具有多核多

2011-03-29 12:37:00 702 1

转载 MII、GMII、RMII、SGMII、XGMII

MII即媒体独立接口,也叫介质无关接口。它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口(图1)。数据接口包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需16个信号。管理接口是个双信号接口:一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY。MII标准接口 用于连快Fast Ethernet MAC-block与PHY。“介质无关”表明在不对MAC硬件重新设计或替换的情况下,任

2011-03-25 17:53:00 1125

转载 STL源码结构解析之Stack,Queue,Priority_Queue

<br />日期:2010-08-28 作者:ths<br />作者: ths. 本文可以转载,请以超链接标明原始出处和作者信息及版权声明 <br />网址: http://www.zhongsisi.com/stl-source-structure-of-stack-queue-priority_queue/<br />这里的STL源码结构解析的版本均是G++ 4.4.4。该源代码可以在gun中下载,如果有安装linux,一个STL源码存储再/usr/include/c++/目录下。<br />文章先对S

2011-03-14 14:49:00 1241

原创 Linux用户进程内存泄露一种检测方法

作者:夏斯华         像使用C/C++内存管理器不会帮我们自动回收不再使用的内存,如果忘记释放不再使用的内存而不能再被重用,就造成了所谓的内存泄露。         在Linux中,用户进程在/proc/{pid}/status文件中记录了该进程的内存使用实时情况。         *VmSize:     虚拟内存大小。     整个进程使用虚拟内存大小,是VmLib, VmExe, VmData, 和 VmStk的总和。* VmLck:     虚拟内存锁。     进程当前

2011-03-10 01:31:00 1497

原创 OMCI协议二层功能的模型选择

<br />作者:夏斯华<br /> <br /> <br />我们知道有两种大的二层功能,即MAC桥以及802.1p映射。MAC桥是IEEE 802.1D描述的,有许多的特性,可以基于MAC地址透明转发(True bridging)或VLAN characteristics(利用VLAN filter)。而映射功能描述了一个用户侧实体到1到8个网络侧流标记的关系。那种映射与只利用VLAN标记中pbit字段作为VLAN filters的MAC桥是相等的。<br />         那两种基本二层服务能组合

2011-03-10 01:07:00 2241

转载 linux线程同步浅析——睡眠与唤醒的秘密

<br />http://blog.csdn.net/baiduforum/archive/2010/04/12/5475284.aspx<br />一个程序问题 <br />之前写过这样一个C程序:模块维护一个工作线程、提供一组调用接口(分同步调用和异步调用)。用户调用模块提供的接口后,会向工作队列添加一个任务。然后任务由工作线程来处理。在同步调用情况下,接口调用后调用者被阻塞,等待工作线程处理完成后,将调用者唤醒。伪代码如下: <br />[调用接口] <br />add_command(cmd, pi

2011-03-10 00:14:00 1055

转载 【百度分享】频繁分配释放内存导致的性能问题的分析

<br />http://blog.csdn.net/baiduforum/archive/2011/01/10/6126337.aspx <br />现象<br />1 压力测试过程中,发现被测对象性能不够理想,具体表现为:  <br />进程的系统态CPU消耗20,用户态CPU消耗10,系统idle大约70  <br />2 用ps -o majflt,minflt -C program命令查看,发现majflt每秒增量为0,而minflt每秒增量大于10000。<br /><br />初步分析<br

2011-03-10 00:12:00 356

转载 Linux下 /proc/maps 文件分析

<br />/proc/<PID>/maps <br />查看进程的虚拟地址空间是如何使用的。 <br />该文件有6列,分别为: <br />地址:库在进程里地址范围 <br />权限:虚拟内存的权限,r=读,w=写,x=,s=共享,p=私有; <br />偏移量:库在进程里地址范围 <br />设备:映像文件的主设备号和次设备号; <br />节点:映像文件的节点号; <br />路径: 映像文件的路径 <br />每项都与一个vm_area_struct结构成员对应, <br />范例: <br />

2011-03-09 19:55:00 785

转载 嵌入式或LINUX相关研发面试题目

http://blog.csdn.net/anxiongshan/archive/2007/10/11/1819511.aspx 目录一、ANSI C/C++方面的知识 二、POSIX方面的知识三、Linux编程基本使用知识四、C++题目五、QT编程六、MiniGUI编程 七、Kernel & Driver 八、用中文Linux办公九、娱乐一、ANSI C/C++方面的知识 (一.I).简答题。下面的题目必须全部答对才给分(20分): 1、 如何在C中初始化一个字符数组。 2、 如何在C中为一个数组分配空间

2011-03-09 00:48:00 1038

转载 16道嵌入式C语言面试题(经典)

<br /><br />16道嵌入式C语言面试题(经典)<br />预处理器(Preprocessor<br />1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)<br /> <br />#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL <br />我在这想看到几件事情: <br />1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) <br />2). 懂得预处理器将为你计算常数表达式的值,因

2011-03-09 00:19:00 504

转载 大内高手--调试手段及原理

<br /><br />大内高手--调试手段及原理<br />   <br />知其然也知其所以然,是我们《大内高手》系列一贯做法,本文亦是如此。这里我不打算讲解如何使用boundschecker、purify、valgrind或者gdb,使用这些工具非常简单,讲解它们只是多此一举。相反,我们要研究一下这些工具的实现原理。<br /> <br />本文将从应用程序、编译器和调试器三个层次来讲解,在不同的层次,有不同的方法,这些方法有各自己的长处和局限。了解这些知识,一方面满足一下新手的好奇心,另一方面也可能

2011-03-09 00:12:00 367

转载 大内高手—惯用手法

<br /><br />大内高手—惯用手法<br /> <br /> <br />《POSA》中根据模式粒度把模式分为三类:架构模式、设计模式和惯用手法。其中把分层模式、管道过滤器和微内核模式等归为架构模式,把代理模式、命令模式和出版-订阅模式等归为设计模式,而把引用计数等归为惯用手法。这三类模式间的界限比较模糊,在特定的情况,有的设计模式可以作为架构模式来用,有的把架构模式也作为设计模式来用。<br /> <br />在通常情况下,我们可以说架构模式、设计模式和惯用手法,三者的重要性依次递减,毕竟整体决策

2011-03-09 00:11:00 296

转载 大内高手—常见内存错误

<br /><br />大内高手—常见内存错误<br /> <br /> <br />随着诸如代码重构和单元测试等方法引入实践,调试技能渐渐弱化了,甚至有人主张废除调试器。这是有道理的,原因在于调试的代价往往太大了,特别是调试系统集成之后的BUG,一个BUG花了几天甚至数周时间并非罕见。<br /> <br />而这些难以定位的BUG基本上可以归为两类:内存错误和并发问题。而又以内存错误最为普遍,即使是久经沙场的老手,也有时也难免落入陷阱。前事不忘,后世之师,了解这些常见的错误,在编程时就加以注意,把出错的

2011-03-09 00:09:00 335

转载 大内高手—共享内存与线程局部存储

<br /><br />大内高手—共享内存与线程局部存储<br /> <br /> <br />城里的人想出去,城外的人想进来。这是《围城》里的一句话,它可能比《围城》本身更加有名。我想这句话的前提是,要么住在城里,要么住在城外,二者只能居其一。否则想住在城里就可以住在城里,想住在城外就可以住在城外,你大可以选择单日住在城里,双日住在城外,也就没有心思去想出去还是进来了。<br /> <br />理想情况是即可以住在城里又可以住在城外,而不是走向极端。尽管像青蛙一样的两栖动物绝不会比人类更高级,但能适应于更

2011-03-09 00:08:00 309

转载 大内高手—内存管理器

<br /><br />大内高手—内存管理器<br /> <br />转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd<br />作者联系方式:李先静 <xianjimli at hotmail dot com><br />更新时间:2007-7-9<br /> <br /><br />作为一个C程序员,每天都在和malloc/free/calloc/realloc系列函数打交道。也许和它们混得太熟了,反而忽略了它们的存在,甚至有了三五年的交情,仍然对它们的实现一无所知

2011-03-09 00:07:00 320

转载 大内高手—全局内存

<br /><br />大内高手—全局内存<br /> <br />转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd<br />作者联系方式:李先静 <xianjimli at hotmail dot com><br />更新时间:2007-7-9<br /><br /><br />有人可能会说,全局内存就是全局变量嘛,有必要专门一章来介绍吗?这么简单的东西,还能玩出花来?我从来没有深究它,不一样写程序吗?关于全局内存这个主题虽然玩不出花来,但确实有些重要,了解这些知识

2011-03-09 00:06:00 292

转载 大内高手—栈/堆

<br /><br />大内高手—栈/堆<br /> <br />转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd<br />作者联系方式:李先静 <xianjimli at hotmail dot com><br />更新时间:2007-7-9<br /> <br /><br />l         栈<br />栈作为一种基本数据结构,我并不感到惊讶,用来实现函数调用,这也司空见惯的作法。直到我试图找到另外一种方式实现递归操作时,我才感叹于它的巧妙。要实现递归操作,

2011-03-09 00:04:00 276

转载 大内高手—内存模型

<br /><br />大内高手—内存模型<br /> <br />转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd<br />作者联系方式:李先静 <xianjimli at hotmail dot com><br />更新时间:2007-7-9<br /> <br />了解linux的内存模型,或许不能让你大幅度提高编程能力,但是作为一个基本知识点应该熟悉。坐火车外出旅行时,即时你对沿途的地方一无所知,仍然可以到达目标地。但是你对整个路途都很比较清楚的话,每到一个站

2011-03-09 00:02:00 257

转载 软件设计本质论(Essential Design) —从链表设计说起

<br /><br />软件设计本质论(Essential Design) —从链表设计说起<br /> <br />转载时请注明出处:http://blog.csdn.net/absurd/<br /> <br />大师说,软件设计不过是在适当的时候做出适当的决策罢了。对此我深以为然,好的设计就是做出了正确决策。然而,在多种互相竞争的因素下,要好做出正确的决策可不是件容易的事!本文以一个双向链表的设计为例,阐述一下软件设计为什么这样困难。<br /> <br />双向链表无疑是最简单的数据结构之一。即使没

2011-03-08 23:48:00 470

转载 C异常处理机制:setjmp和longjmp

setjmp.h is a header defined in the C standard library to provide "non-local jumps": control flow that deviates from the usual subroutine call and return sequence. The complementary functions setjmp and longjmp provide this functionality.A typical use of s

2011-03-08 23:35:00 596

转载 __attribute__ 详解

<br />http://blog.csdn.net/ruixj/archive/2009/06/16/4274721.aspx GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function     Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。<br />__attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,

2011-03-08 23:15:00 298

转载 函数指针与软件设计

<br /><br />函数指针与软件设计<br /> http://blog.csdn.net/absurd/archive/2006/05/29/761943.aspx<br />记得刚开始工作时,一位高手告诉我,说,longjmp和setjmp玩得不熟,就不要自称为C语言高手。当时我半信半疑,为了让自己向高手方向迈进,还是花了一点时间去学习longjmp和setjmp的用法。后来明白那不单是跳来跳去那样简单,而是一种高级的异常处理机制,在某些情况下确实很有用。<br /> <br />为了显示自己的技

2011-03-08 22:15:00 376

原创 电梯调度模拟系统

电梯调度模拟系统Elevator Attemper Simulation System(EASS)设计开发者:夏斯华1.调度描述:实现电梯调度算法如下:1.  初始状态在一楼。内外部没有请求,则保持原先状态。2.  外部请求发出,放在请求列表中。定时分配: a>.读取当前各电梯状态(运动状态、所在楼层) b>.同方向、路径最短.(除去 同方向需要折回情况) c>.同方向不符和,则取停止电梯中路径最短的那个。修改该电梯目标列表. d>.此时没有符合要求的。则进入下一个循环。3.  内部请求。下一个请求需要在电

2011-03-07 14:35:00 2580 1

原创 超级俄罗斯方块V1.0说明文档

超级俄罗斯方块V1.0说明文档 夏斯华 二零零四年三月十四日1简介1.1项目名称及编写者   超级俄罗斯方块V1.0(双模式)   夏斯华(010155)(xiasihua0001@yahoo.com.cn)1.2项目介绍本程序实现了俄罗斯方块游戏的基本功能。可以单机游戏,也可以通过TCP/IP协议进行网络游戏。涉及到了JAVA的GUI,线程控制,文件读写(IO)以及基于SOKET的网络传输。既可单机游戏,也双机联机游戏。适用于jdk1.4以上运行环境。1. 3编写目的编写该程序,旨在对JAVA 程序设计有

2011-03-07 14:04:00 561

原创 简单文件系统的实现

简单文件系统的实现

2011-03-07 13:55:00 911

空空如也

空空如也

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

TA关注的人

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