- 博客(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
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人