自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (6)
  • 收藏
  • 关注

原创 升级ubuntu

今天ubuntu升级到了15.10,鼠标不好使了,无线网络还经常掉线,郁闷。

2015-11-01 14:53:15 176

原创 C#访问网页、保存网页

很喜欢看经典书籍,所以就想把网络上的书籍下载下来,做成kindle的电子书籍,以便于阅读。查了一些网络资料,实现了自己的想法,下面这段代码,是从国学导航网站(http://www.guoxue123.com)把《北史》的全部内部保存到本地的“C:\temp\北史”文件夹里。using System;using System.Collections.Generic;using Sys

2015-10-03 15:02:18 4497

原创 快速排序与折半查找算法函数:qsort与bsearch

qsort用来排序,bsearch用二分法来查找元素void qsort( void *base, size_t num, size_t width,int (__cdecl *compare)(const void *elem1, const void *elem2 ) );base: 要排序的数组num: 数组中的元素数目width: 每个数组元素占用内存空间,可使用sizeo

2013-04-21 11:41:38 1818

原创 intel X86指令格式分析

先说一下寄存器编号0         1        2         3         4        5        6       7EAX  ECX  EDX   EBX   ESP   EBP   ESI   EDIintel指令格式如下图所示:Mod为00、01和10时,R/M=000(eax)时,有效地址分别是[eax]、disp8[ea

2013-04-12 19:00:15 3984

原创 李陵之殇

李陵置酒贺武曰:“今足下还归,扬名于匈奴,功显于汉室,虽古竹帛所载,丹青所画,何以过子卿!陵虽驽怯,令汉贳陵罪,全其老母,使得奋大辱之积志,庶几乎曹柯之盟,此陵宿昔之所不忘也。收族陵家,为世大戮,陵尚复何顾乎!已矣,令子卿知吾心耳!”陵泣下数行,因与武决。霍光、上官桀与李陵素善,遣陵故人陇西任立政等三人俱至匈奴招之。陵曰:“归易耳,丈夫不能再辱!”遂死于匈奴。《资治通鉴 卷23》 惜哉

2013-02-21 21:37:38 1148

原创 英雄与流氓

刘邦固然好酒及色,甚至为了自己安危抛妻弃子,可就凭这些小节将一个杰出的政治家称为流氓,自身会是什么水平?出色的政治家与道德完人,不要一厢情愿把他们联系起来,吴起、商鞅杰出吧,你能凭他们做的一些在道德上站不住脚的事将其归入流氓一类?伯夷、尾生,道德水准高吧,这样的人对社会有什么贡献?他们能使社会安定?能让老百姓幸福?司马迁在《史记》中描述刘邦“仁而爱人,喜施,意豁如也。常有大度,不事家人生产作业

2013-01-30 20:18:32 993

原创 见小曰明

昔者纣为象箸而箕子怖。以为象箸必不加于土铏 ,必将犀玉之杯 。象箸玉杯必不羹菽藿,则必旄象豹胎。旄象豹胎必不衣短褐而食于茅屋之下,则锦衣九重,广室高台。吾畏其卒,故怖 其始。居五年,纣为肉圃,设炮烙,登糟邱,临酒池,纣遂以亡。故箕子见象箸以知 天下之祸,故曰:‘见小曰明。’ 《韩非子 喻老》 梁琛          (慕容)暐使其黄门侍郎梁琛聘于坚。琛还,言于评曰:“秦扬兵讲武,运

2012-11-23 07:59:08 1304

原创 吾岂匏瓜?

佛肸召,子欲往。子路曰:“昔者由也闻诸夫子曰:‘亲於其身为不善者,君子不入也。’佛肸以中牟畔,子之往也,如之何?”子曰:“然,有是言也。不曰坚乎?磨而不磷。不曰白乎?涅而不缁。吾岂匏瓜也哉?焉能系而不食!”(《论语阳货》) 《史记孔子世家》“佛肸为中牟宰,赵简子攻范中行,伐中牟,佛肸畔,使人召孔子。” 《四书章句集注》“佛肸,晋大夫赵氏之中牟宰也。子路恐佛肸之浼夫子,故问此以止夫子

2012-11-11 18:47:43 1820

原创 Eclipse CDT生成、调用C动态库

(一) 生成动态库1 创建动态库工程File->New->Project->CProject->选择Shared Library,工程命名为test。 2 创建源代码文件File->New->Source File,指定名称为test.c,内容:#includeusing namespacestd;void show(){    cout } 编

2012-11-09 18:55:08 5939

原创 Windows下安装Eclipse CDT

1、JRE的安装Eclipse是一款跨平台的工具,只需要基本的java虚拟机就可以运行。2 下载Eclipse CDT到http://www.eclipse.org下载,选择自己想要的版本,不用安装,解压后可直接运行。3、安装MinGW到MinGW的网站www.mingw.org 下载(实际上下载的是个在线安装程序,真正安装MinGW是在线完成的)。安装后,要配置系统环境变

2012-11-07 21:17:24 718

原创 ptsname() -- 获得从伪终端名(slave pseudo-terminal)

伪终端并不是真正的硬件终端设备,而是一个应用程序。打开一个终端,输入tty 这个命令来查看当前所使用的终端名:zhang@zhang-laptop:~$ tty/dev/pts/1后面的1意味着已经打开了1个终端窗口。实际上,像上面的 /dev/pts/1是从伪终端,它通过文件 /dev/ptmx 建立。/dev/ptmx 可以建立主从伪终端,当打开该文件时,返回的是主伪终端的文件

2012-11-03 17:09:03 7748

原创 ubuntu 10.04/Windows上编译qemu 1.2

在ubuntu 10.04上,qemu 1.2的编译过程如下:1) ./configure --target-list=arm-softmmu --prefix=/usr出现下面提示:Error: zlib check failedMake sure to have the zlib libs and headers installed.安装zlib./config

2012-10-30 19:13:25 3038

原创 处无为 行不言

天下皆知美之为美,斯恶已。皆知善之为善,斯不善已。故有无相生,难易相成,长短相较,高下相倾,音声相和,前后相随。是以圣人处无为之事,行不言之教;万物作焉而不辞,生而不有,为而不恃,功成而弗居。夫唯弗居,是以弗去。所有人都喜欢美,讨厌恶,肯定善,否定不善。喜怒同根,是非同门,过于追求美善,可能有失偏颇。就像老子讲的,有了“无易短下声后”,才有了“有难长高音前“,它们即对立,又统一,没有非

2012-10-29 22:36:39 582

原创 伐柯伐柯,其则不远

这句话是说: 你用斧子去砍树做斧柄,不用去另找图纸或样子,手里拿的斧柄就是啊!范蠡曰:会稽之事,天以越赐吴,吴不取。今以吴赐越,越其可逆天乎?且夫君王早朝宴罢,非为吴邪?谋之二十二年,一旦而弃之,可乎?且乎天与弗取,反受其咎。伐柯者其则不远,君忘会稽之危乎?勾践曰:吾欲听子言,吾不忍其使者。                《史记越王勾践世家》刘宣等固谏曰:“晋为无道,奴隶御我,是以

2012-10-28 19:30:11 1880

原创 天道有知

邓攸                              《晋书 良吏传》        攸七岁丧父,寻丧母及祖母,居丧九年,以孝致称。清和平简,贞正寡欲。少孤,与弟同居。永嘉末,没于石勒。石勒过泗水,攸乃斫坏车,以牛马负妻子而逃。又遇贼,掠其牛马,步走,担其兒及其弟子绥。度不能两全,乃谓其妻曰:“吾弟早亡,唯有一息,理不可绝,止应自弃我兒耳。幸而得存,我后当有子。”妻泣而从之,乃弃之。

2012-10-14 10:00:17 1069

原创 守柔曰强

句践入宦于吴,身执干戈为吴王洗马,故能杀夫差于姑苏。文王见詈于王门,颜色不变,而武王擒纣于牧野。故曰: ‘守柔曰强。’年在天,位在人颜含         人尝论少正卯、盗跖其恶孰深。或曰:“正卯虽奸,不至剖人弃膳,盗跖为甚。”含曰:“为恶彰露,人思加戮;隐伏之奸,非圣不诛。由此言之,少正为甚。”众咸服焉。郭璞尝遇含,欲为之筮。含曰:“年在天,位在人,修己而天不与者,命也;守

2012-10-14 09:57:40 3164

原创 人情之隐

【原文】   王敦既死,王含欲投王舒。其子应在侧,劝含投彬。含曰:“大将军平素与彬云何,汝欲归之?”应曰:“此乃所以宜投也。江州[彬]当人强盛,能立异同, 此非常识所及。睹衰危,必兴慈愍。荆州[舒]守文,岂能意外行事耶?”含不从,径投舒,舒果沉含父子于江。彬初闻应来,为密具船以待,待不至,深以为恨。[冯述评]  好凌弱者必附强,能折强者必扶弱。应嗣逆敦,本非佳儿,但此论深彻世情

2012-09-17 20:03:35 1999

原创 伯仁由我

【原文·出处】   初,敦之举兵也,刘隗劝帝尽除诸王,司空导率群从诣阙请罪,值顗将入,导呼顗谓曰:“伯仁,以百口累卿!”顗直入不顾。既见帝,言导忠诚,申救甚至,帝纳 其言。顗喜饮酒,致醉而出。导犹在门,又呼顗。顗不与言,顾左右曰:“今年杀诸贼奴,取金印如斗大系肘。”既出,又上表明导,言甚切至。导不知救己,而甚衔之。敦既得志,问导曰:“周顗、戴若思南北之望,当登三司,无所疑也。”导不答。又曰:“

2012-09-14 22:01:33 1951

原创 Eclipse CDT配置使用glib库的方法(ubuntu10.04/windows)

1 安装Eclipse IDE for C/C++ Developers以及glib2 新建一个C project3 右击工程,属性->C/C++ General -> Path and Symbols,在includes中添加/usr/include/glib-2.0和/usr/include/glib-2.0/include(glib安装的位置可能不同);4 C/C++ Build

2012-09-05 21:26:49 2757

原创 Windows同步机制总结

临界区在所有同步对象中,临界区是最容易使用的,但它不是内核对象,只能用于同步单个进程中的线程。临界区一次只允许一个线程取得对某个数据区的访问权。还有,在这些同步对象中,只有临界区不是内核对象,它不由操作系统的低级部件管理,而且不能使用句柄来操纵。由于使用时不需要从用户态切换到核心态,所以速度很快(X86系统上约为20个指令周期),非常适合于序列化对一个进程中的数据的访问,但其缺点是不能跨进

2012-08-29 09:25:30 2974

原创 ubuntu man安装

Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。Linux 的man手册共有以下几个章节:1、Standard commands (标准命令)2、System calls (系统调用)3、Libraryfunctions (库函数)4、Specialdevices (设备说明)5、File formats (文件格式)6

2012-08-24 20:01:44 3297

原创 时钟周期-机器周期-指令周期-总线周期

时钟周期:时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250us。由于时钟脉冲是计算机的基本工作脉冲,

2012-07-31 21:50:36 906

原创 编译器对程序的优化过程

编译器的优化过程:优化过程是所谓的“NP完全问题(NP-complete problem)”复杂度理论的例子。但现代的优化程序并不尝试完全的可能,只是用启发式和案例型算法来确定机器码应采取的转换过程。最好不要使用goto语句,goto不见可能降低程序的可读性,还可能导致程序不能规约,使得编译器的优化工作很难进行。常用的优化措施有下面7种:(1) 常量折叠:即编译时计算出常量表达

2012-07-25 13:47:57 1620

原创 gcc中的逗号表达式简写

看qemu代码的时候,看到一条语句,像是逗号表达式,又跟以往见的不一样。a = b? : 1;在gcc下int b = 2;int a = 3;int main(void) {    a = b? : 1;00401324:   mov 0x402000,%eax00401329:   mov %eax,%edx0040132b:   test

2012-07-22 14:09:07 1096

原创 刘殷为相

汉主刘聪残暴施虐,向他进谏与见阎王差不多,但刘殷确是例外。下面是《资治通鉴》卷88中的原文:殷为相,不犯颜忤旨,然因事进规,补益甚多。汉主聪每与群臣议政事,殷无所是非;群臣出,殷独留,为聪敷畅条理,商榷事宜,聪未尝不从之。殷常戒子孙曰:“事君当务几谏。凡人尚不可面斥其过,况万乘乎!夫几谏之功,无异犯颜,但不彰君之过,所以为优耳。”官至侍中、太保、录尚书,赐剑履上殿、入朝不趋、乘舆入殿。然殷

2012-07-06 20:58:23 4479

原创 QEMU模块构造

QEMU模块构造#define module_init(function, type)                                         \static void __attribute__((constructor)) do_qemu_init_ ## function(void) {  \    register_module_init(funct

2012-07-04 11:21:00 2577

原创 __thread, __typeof__与逗号表达式

1 __thread修饰符约束变量的生存期只在一个线程中,线程停止时变量也被销毁。它提供了一种简单的方式来保证线程安全,多线程访问时不需要关注竞争条件。2 __typeof__操作符:指示表达式的类型,任何可以使用typedef定义名称的地方都能使用它。__typeof__(*x) y;     // Declares y with the type of what x point

2012-06-09 08:40:48 1188

原创 qemu中反转比较与交换比较操作数方法

首先将各种比较操作以枚举形式定义:typedef enum {    TCG_COND_EQ,    TCG_COND_NE,    TCG_COND_LT,    TCG_COND_GE,    TCG_COND_LE,    TCG_COND_GT,    /* unsigned */    TCG_COND_LTU,    TCG_COND_GEU,

2012-05-11 11:21:12 681

原创 动态翻译代码异常时目标CPU状态恢复

动态翻译器执行时如果出现异常,可如何确定异常位置对应的目标位置呢?首先,执行语句:tb = tb_find_pc(pc);其中pc表示异常出现时宿主PC值,如果返回的tb不为NULL,则说明异常发生在动态翻译代码执行时。为了恢复目标CPU的状态,需要使用cpu_restore_state函数。它与函数cpu_gen_code类似,但两者生成中间码时调用函数分别是gen_interm

2012-05-06 16:58:26 1294

原创 softmmu同构函数的定义

在qemu的softmmu代码中,有很多函数它们的功能是相似的,只是处理的数据类型不同,这里我姑且称之为“同构”函数。如果为它们分别编写函数体,代码量及维护工作量会增加数倍,以softmmu_defs.h文件中声明的函数为例,共声明了16个函数//softmmu_defs.huint8_t REGPARM __ldb_mmu(target_ulong addr, int mmu_idx);

2012-04-24 18:44:24 3051

原创 识人五法

战国时期的李克提出了识人五法,居视其所亲,富视其所与,达视其所举,穷视其所不为,贫视其所不取。即:第一,居视其所亲。看一个人平常都与谁在一起,亲近哪些人,如与贤人亲,则可重用,若与小人为伍,就要当心;第二,富视其所与。看一个人如何支配自己的财富,如只满足自己的私欲,贪图享乐,则不能重用,如接济穷人,或培植有为之士,则可重用;第三,达视其所举。一个人处于显赫之时,就要看他如何选拔部属:若任人为贤,则

2012-04-22 16:57:59 3733

原创 Eclipse CDT Hello World工程makefile分析

1. 工程文件分析使用eclipse新建一个Hello World工程,假设工程名称是hello,此时eclipse在工程目录下新建了一个名为hello的文件夹:hello/    .cproject    .project    src/        hello.c先build该工程,然后Clean该工程,清除生成的目标码,这时hello文件夹下只多了eclipse

2012-04-16 19:42:59 13805 2

原创 makefile自动生成依赖关系

<!--@page {margin:2cm}p {margin-bottom:0.21cm}code.cjk {font-family:"DejaVu Sans",monospace}code.ctl {font-family:"DejaVu Sans Mono",monospace}-->手工编写依赖关系不仅工作量大而且极易出现遗漏,更新也很难

2012-04-04 20:23:33 7482

原创 ubuntu上安装eclipse CDT

1 在www.eclipse.org上下载Eclipse IDE for C/C++ Developers (includes Incubating components)2 根据安装的ubuntu确定下载linux-32或linux-64版本3 解压缩出eclipse文件夹如果ubuntu上没有安装jre或jdk1 到oracle官网下载jre2 如果是b

2012-04-01 13:02:44 1248

原创 OPERAND-SIZE和ADDRESS-SIZE属性

当处理器在保护模式下执行时,每一个代码段都具有默认的OPERAND-SIZE和ADDRESS-SIZE属性。这些属性通过segment descriptor中的D flag确定,当D flag为1时,OPERAND-SIZE和ADDRESS-SIZE为32,否则为16。当处理器在实地址模式、虚8086模式或SMM模式,默认的OPERAND-SIZE和ADDRESS-SIZE为16。当OPE

2012-03-30 19:51:10 1460

原创 win eclipse cdt安装

1、Java JDK的安装Eclipse是一款跨平台的工具,只需要基本的java虚拟机就可以运行。2 下载Eclipse CDT到http://eclipse.org/download下载,选择自己想要的版本,不用安装,解压后可直接运行。3、安装MinGW到MinGW的网站http://sourceforge.net/projects/mingw/files/上下载(实际上下载

2012-03-28 13:36:32 860

原创 regparm

GCC中可以使用__attribute__((regparm(n)))指定最多可以使用n个寄存器(eax, edx, ecx)传递参数,n的范围是0~3,超过n时则将参数压入栈中(n=0表示不用寄存器传递参数)。看下面例子,函数p1约定不使用寄存器传递参数,尽管只有1个参数,仍然将参数压入栈中。函数p2约定最多可使用3个寄存器传递参数,因为输入参数有4个,所以前三个使用寄存器传递,最后一个

2012-03-28 13:36:05 2759

原创 QEMU翻译块(TB)分析

1 翻译缓存qemu中翻译缓存是一块连续的内存单元,使用全局变量code_gen_buffer保存其首地址,缓存大小由全局变量code_gen_buffer_size指示;全局变量code_gen_ptr指示当前未使用的缓存地址。static uint8_t *code_gen_buffer;static unsigned long code_gen_buffer_size;sta

2012-03-28 13:32:05 4124

原创 QEMU分页机制分析

1 qemu页面层次划分qemu通过定义一些宏灵活地进行分页,首先由宏TARGET_PAGE_BITS(12)确定页的大小,然后根据目标机的物理地址空间和宿主机的字长确定P_L1_BITS和V_L1_BITS,从而使得剩余部分可以被L2_BITS均分。那么如何确定P_L1_BITS和V_L1_BITS的值呢?先看下面两个宏定义:/* The bits remaining after N l

2012-03-26 17:47:35 1614

原创 RAMBlock之file_ram_alloc

在linux下,分配RAMBlock时可以将内存块映射到文件中,详细内容可见file_ram_alloc函数,下面是该函数的主要部分:static void *file_ram_alloc(RAMBlock *block,                            ram_addr_t memory,                            const

2012-03-25 17:15:41 1032

zlib-1.2.7

zlib-1.2.7,编译qemu需要它

2012-10-30

glib-2.12.13

glib-2.12.13,编译qemu时需要

2012-10-30

gettext-0.18.1.1.

安装glib前先安装它,gettext-0.18.1.1.

2012-10-30

Linux man中文手册

man 手册中文版,在安装之前,运行locale 命令来查看自己的语言环境是什么

2012-08-25

Unix环境高级编程第二版源码

下面这两个文件编译时 getenv1.c getenv3.c 会提示: error: ‘ARG_MAX’ undeclared (first use in this function) 可在其中加下面语句: #define ARG_MAX 4096

2012-08-25

mingw压缩包

完整的MinGW包,无需在线下载安装,解压即可使用。GDB-6.8,可以利用eclipse cdt调试

2012-03-28

空空如也

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

TA关注的人

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