自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AddyLee的专栏

或偷、或抢、或想,反正都是一些有用的小技术,与君共享尔。。。

  • 博客(62)
  • 资源 (4)
  • 收藏
  • 关注

转载 glib库头文件找不着 glib.h/glibconfig.h: no such file or directory

glib-2.0使用pkg-configMakefile加上CFLAGS  += `pkg-config --cflags glib-2.0`LDFLAGS += `pkg-config --libs glib-2.0`

2014-10-14 17:48:23 31210 1

转载 ARM 指令集版本和ARM 版本

常常能看到ARM7,ARM9,ARM11,以及armv6k等不同的表达。且在GCC编译中,常常要用到 -march, -mcpu等。他们分别表达什么涵义呢?Sam自己也不很清楚,只是大概有个模糊的概念。今天就仔细研究一下。 ARM(Advanced RISC Machines)是微处理器行业的一家知名企业。设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。1985年,

2014-09-04 09:05:05 2128

转载 ARM CPU 简单分类

- ARM7 系列       ARMv4T intruction set   (but ARM7EJ use ARMv5TE)    Core:ARM7TDMI 、 ARM7TDMI-S 、ARM720T 、 ARM7EJ     No MMU      三级流水线- ARM9 系列  ARMv4T intruction set       Core:ARM920T

2014-08-13 16:22:43 1451

转载 Linux下C语言多线程编程

一、多线程的创建1、Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连 接时需要使用库libpthread.a。因此,后面的编译必须在选项中加入 -lpthread 选项,否则提示找不到pthread_create()这些函数。Linux下pthread的实现是通过系统调用clone()来实现的。C

2014-07-18 09:50:35 2839

转载 迭代与递归:To Iterate,Human; to Recurse, Divine.

引言从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?「从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?『从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?……』」什么是递归递归(Recursion),在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。为什么要用

2014-06-04 19:41:59 3425

转载 qemu 二进制翻译 执行流程分析

一.qemu简介         qemu是使用动态二进制翻译的cpu模拟器,它支持两种运行模式:全系统模拟和用户态模拟。在全系统模拟下,qemu可以模拟处理器和各种外设,可以运行操作系统。用户态可以运行为另外一种cpu编译的进程,前提是两者运行的os要一致。qemu使用了动态二进制翻译将targetinstruction翻译成hostinstruction,完成这个工作的是tcg模块。为

2014-04-26 15:25:05 6389

转载 Linux程序设计 清空标准输入缓冲区

今天在Linux程序设计的时候需要清空标准输入缓冲区,于是使用了如下Windows程序设计中的方法:1.fflush(stdin);这个fflush()函数根本不是标准C中的函数,只是标准C的扩展,所以在Linux中使用根本不行;2.中网上搜索了下,发现有网友建议使用rewind(stdin);这个函数其实是将指针指向流的开始处。但是它是文件操作中的一个函数,操作的是FILE型流,

2014-04-25 14:51:01 5089

转载 将标准输出重定向到一个文件的同时并在屏幕上显示

一、标准输出+标准错误输出标准输出和标准错误,同时保存到文件logfile方法一:  2>&1 | tee [root@home root]# id das 2>&1 |tee logfileid: das: No such user[root@home root]# cat logfileid: das: No such user 注释:管道的作用为把

2014-04-22 17:37:36 38023

转载 内存分配的原理__进程分配内存有两种方式,分别由两个系统调用完成:brk和mmap系统调用

如何查看进程发生缺页中断的次数?         用ps -o majflt,minflt -C program命令查看。          majflt代表major fault,中文名叫大错误,minflt代表minor fault,中文名叫小错误。          这两个数值表示一个进程自启动以来所发生的缺页中断的次数。发成缺页中断后,执行了那些操作?

2014-03-30 19:09:05 3907

转载 ln命令 软链接建立与删除

1 . 使用方式 :ln [option] source_file dist_file   (source_file是待建立链接文件的文件,dist_file是新创建的链接文件)                    -f 建立时,将同档案名删除.                     -i 删除前进行询问.                     ln -s abc cde 建

2014-03-17 11:41:10 10737

转载 GDB调试命令总结

1:定位某变量/内存地址 何时被修改a为待观察的变量gdb> watch *(long*)agdb> watch *(long*)(a+4)gdb> watch *(long*)(a+8)2:查看数组的值。编程时:array[i]用GDB查看时,用 p array+i即可。3:善于使用$4: layout功能ctrl x 然后再 a 可以切换

2014-03-12 19:32:50 2988

转载 系统调用,stat,fstat以及lstat函数:检查文件的属性

头文件:#include   #include 定义函数:int stat(const char * file_name, struct stat *buf);函数说明:stat()用来将参数file_name 所指的文件状态, 复制到参数buf 所指的结构中 。  我们使用函数stat,fstat和lstat来检查文件的属性。这些函数使用struct

2014-03-12 15:23:22 4318 1

转载 系统调用 stat(), fstat(), lstat() 函数

stat函数讲解表头文件:    #include                      #include 定义函数:    int stat(const char *file_name, struct stat *buf);函数说明:    通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值:      执行成功则返回0,失

2014-03-12 15:21:02 4751 1

转载 Linux内存管理 mmap系统调用

转自: http://blog.chinaunix.net/uid-26669729-id-3077015.html   heavent2010的ChinaUnix博客一. mmap系统调用1. mmap系统调用        mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零

2014-03-06 19:51:15 1973

转载 printf_系统调用过程分析_write() putc() 函数实现

系统调用”是操作系统提供给用户程序进行调用的一些服务。这些服务是系统预先提供的函数,在这一点上系统调用与普通的用户程序是没有区别的。而区别则在于“系统调用”是由操作系统提供给用户的,这些服务更接近底层或者要求的安全性更高,因此由操作系统来统一实现和管理。    程序员在写程序的过程中会经常需要调用“系统调用”来完成特定的任务。我们以教学用的类Linux操作系统xv6为例,以打印操作为主线来说明

2014-02-28 14:36:18 14643

转载 C++ 多态性的实现方式

C + + 中多态性的实现方式    多态性是面向对象程序设计的一大支柱,它指的是在基类中定义的属性或服务被派生类继承之后,可以表现出不同的行为. 也就是指一段程序能够处理不同类型对象的能力. 在面向对象程序设计语言C + + 中,这种多态性的实现方式有4 种,分别是强制多态、重载多态、类型参数化多态和包含多态. 其中,类型参数化多态和包含多态称为一般多态性,用来系统地描述语义

2013-11-04 18:03:29 3920

转载 Linux 查看系统信息命令 cpu、内存、进程、硬盘、网卡

系统# uname -a               # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue   # 查看操作系统版本# cat /proc/cpuinfo      # 查看CPU信息# hostname               # 查看计算机名# lspci -tv              # 列出所有PCI设备# lsus

2013-10-21 08:39:14 5227

原创 linux 输出 重定向命令

标准输入,输出和错误---------------------------------文件文件                描述符---------------------------------输入文件—标准输入       0输出文件—标准输出       1错误输出文件—标准错误   2---------------------------------

2013-10-17 09:35:48 1426

转载 C语言字节对齐及设置编译对齐方式方法

一、概念       对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。     二、为什么要字节对齐      需要字节对齐的根本原因在于CPU访问数据的效率问题。假设上面整型变量的地址不是自然对齐,比如为0x00000002,则CPU如果

2013-10-15 13:52:22 35134

转载 linux less命令

less 在查看之前不会加载整个文件。可以尝试使用 less 和 vi 打开一个很大的文件,你就会看到它们之间在速度上的区别。 在 less 中导航命令类似于 vi。本文中将介绍一些导航命令以及使用 less 的其它一些技巧。 1 搜索当使用命令 less file-name 打开一个文件后,可以使用下面的方式在文件中搜索。搜索时整个文本中匹配的部分会被高亮

2013-10-11 08:44:17 1299

转载 Linux grep 命令用法

相信grep是UNIX和LINUX中使用最广泛的命令之一。   grep(全局正则表达式版本)允许对文本文件进行模式查找。如果找到匹配模式,grep打印包含模式的所有行。grep支持基本正则表达式,也支持其扩展集。grep有三种变形,即:    grep:标准grep命令,本章大部分篇幅集中讨论此格式。    egrep:扩展grep,支持基本及扩展的正则表达式,但不支持\q模

2013-10-10 16:36:52 2957

转载 scons —— Python自动化编译构建工具

转载自:http://blog.csdn.net/sealyao/article/details/6402257一、概述    scons是一个Python写的自动化构建工具,和GNU make相比优点明显:    1、 移植性:python能运行的地方,就能运行scons    2、 扩展性:理论上scons只是提供了python的类,scons使用者可以在这个类的基

2013-10-10 10:07:10 7469

原创 C语言中字符串如何转换为二进制、八进制、十进制、十六进制

在C语言某个程序当中需要把文本16进制转换成对应的16进制数,比如字符串"0x1a"转换成10进制的26,可以用以下函数来实现相关函数: atof, atoi, atol, strtod, strtoul表头文件: #include 定义函数: long int strtol(const char *nptr, char **endptr, int base);函数的解释说明

2013-06-24 15:34:39 56721 5

原创 gcc 编译器常用的命令行参数汇总

gcc 编译器常用的命令行参数汇总1. gcc -E source_file.c-E,只执行到预编译。直接输出预编译结果。2. gcc -S source_file.c -S,只执行到源代码到汇编代码的转换,输出汇编代码。3. gcc -c source_file.c-c,只执行到编译,输出目标文件。4. gcc (-E/S/c/) sour

2013-05-28 15:53:57 1770

原创 安装vmare-tools ——实现ubuntu与windows的互相复制与粘贴(无需共享文件夹)

这里主要解决的问题是如实现linux系统与windows系统之间能够方便快捷的实现复制粘贴,就像ctrl+c 与ctrl+v一样方便。一 安装前准备:    1、一定要先安装 build-essential软件,否则不能够顺利安装      $ sudo apt-get install build-essential    2、要安装linux-head

2013-05-23 19:17:26 15170

原创 Linux命令 查看操作系统版本&&查看操作系统的位数

1. 查看内核版本命令:  [root@localhost Addy]$ cat /proc/version    Linux version 2.6.5-7.244-smp (geeko@ buildhost) (gcc version 3.3.3 (SuSE Linux)) #1 SMP Mon Dec 12 18:32:25 UTC 2005  [root@local

2013-05-11 11:24:18 1758

原创 CentOS操作系统 GCC升级到4.6.1

一、安装环境系统版本:centos6.0 X64原GCC版本:gcc-4.4.4新GCC版本:gcc-4.6.1二、正式安装1、下载安装的源码:如下需要下载以下包:gcc-4.6.1.tar.bz2 gmp-4.3.2.tar.bz2 mpc-0.8.1.tar.gz mpfr-2.4.2.tar.bz2  下载地址如下:  wget ftp://gcc.gnu.org

2013-05-09 21:03:33 1087

原创 gcc 编译器 最常用的命令行参数

1. gcc -E source_file.c-E,只执行到预编译。直接输出预编译结果。2. gcc -S source_file.c -S,只执行到源代码到汇编代码的转换,输出汇编代码。3. gcc -c source_file.c-c,只执行到编译,输出目标文件。4. gcc (-E/S/c/) source_file.c -o output_filenam

2013-05-03 13:34:07 1868 1

原创 likely() 和 unlikely() 功能分析

在程序中,偶尔可以见到 likely() 和 unlikely() 判断语句,那么为什么要用它们?它们之间有什么区别? 首先要明确:            if(likely(value)) 等价于 if(value)            if(unlikely(value)) 也等价于 if(value)也就是说 likely() 和 unlikely() 从阅读和理解

2013-05-02 18:59:40 7282

原创 Linux vim快捷键操作命令整理

前言Vim是一个超牛的编辑器,命令功能十分强大 。而且这些命令大都可以进行组合 ,比如,9yy命令表示复制9行内容,9表示要复制的行数,同样100dd表示删除100行,当数字和命令合作的时候,就比单纯的命令更强大,同样,c命令表示擦除,w表示word即单词,那么cw就表示擦除一个单词,c5w就表示删除5个单词等等。将这些简单命令合成在一起,就可以发挥出难以想象的强大功能。宏命令(M

2013-05-02 11:00:06 2688

原创 虚拟机操作系统文件夹空间不足解决办法——对虚拟硬盘进行分区和格式化及 挂载到某个文件夹下

对虚拟硬盘进行分区和格式化及 挂载到某个文件夹下。。。[root@cncmail data1]# fdisk -l                ## 这里是查看目前系统上有几块硬盘Disk /dev/sda: 36.4 GB, 36401479680 bytes255 heads, 63 sectors/track, 4425 cylindersUnits = c

2013-04-27 18:59:44 6608

原创 VMware 中添加新的虚拟磁盘的方法

下是在VMware 中添加新的虚拟磁盘的方法: 一、VMware新增磁盘的设置步骤(建议:在设置虚拟的时候,不要运行虚拟机的系统,不然添加了新的虚拟磁盘则要重启虚拟机)1、选择“VM”----“setting”并打开,将光标定位在hard Disk这一选项,然后点击下方的Add按钮2、点击next,执行下一个步骤

2013-04-27 18:50:46 1771

转载 ELF格式文件符号表全解析及readelf命令使用方法

1. 读取ELF文件头:$ readelf -h signELF Header:  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00  Class:                                                  ELF64  Data:                    

2013-04-09 18:40:44 85920 7

原创 乱序执行中 寄存器重命名(Register Renaming )技术介绍

寄存器重命名技术在乱序执行流水线中有两个作用。一是消除指令之间的寄存器读后写相关(WAR),和写后写相关(WAW);二是当指令执行发生例外或转移指令猜测错误而取消后面的指令时可以保证现场的精确。寄存器重命名的思路很简单:就是当一条指令写一个结果寄存器时不直接写到这个结果寄存器,而是先写到一个中间寄存器过渡一下,当这条指令提交的时候再写到结果寄存器中。指令重命名有两种方法:软件重命名

2013-04-08 11:36:15 19227

原创 单发射与多发射

单发射与多发射 1  流水线(pipeline)技术:      是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。流水线是Intel首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由5—6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5—6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,

2013-04-03 11:57:14 10672

原创 分支预测器(Branch Predictor) 汇总介绍

当包含流水线技术的处理器处理分支指令时就会遇到一个问题,根据判定条件的真/假的不同,有可能会产生转跳,而这会打断流水线中指令的处理,因为处理器无法确定该指令的下一条指令,直到分支执行完毕。流水线越长,处理器等待的时间便越长,因为它必须等待分支指令处理完毕,才能确定下一条进入流水线的指令。  分支预测技术便是为解决这一问题而出现的。  分支预测技术包含编译时进行的静态分支预测和硬件在

2013-04-03 11:01:52 41457 3

原创 存储一致性模型研究——Research of Memory Consistency Model

一致性模型:所谓存储一致性模型(Memory Consistency Model),实际上是系统设计者与应用程序员之间的一种约定。如果应用软件遵从一定的规则访问虚内存系统,则应用软件可获得正确的存储访问结果;反之,若破坏约定的规则,则存储访问的正确性不受保证。  从某种意义上来讲,存储一致性模型对共享存储系统中多处理机的访存次序作了限制,从而对性能有影响。分布式共享存储系统(DSM

2013-03-27 14:43:30 3388

转载 ptrace运行原理及使用详解

你想过怎么实现对系统调用的拦截吗?你尝试过通过改变系统调用的参数来愚弄你的系统kernel吗?你想过调试器是如何使运行中的进程暂停并且控制它吗?你可能会开始考虑怎么使用复杂的kernel编程来达到目的,那么,你错了。实际上Linux提供了一种优雅的机制来完成这些:ptrace系统函数。 ptrace提供了一种使父进程得以监视和控制其它进程的方式,它还能够改变子进程中的寄存器和内核映像,因而可以

2013-03-25 15:08:48 44716 3

转载 intel 性能监控计数器PMC寄存器详解

所有内容来自intel官方手册,章节号已给出。。。一  以下内容来自(P279):30.1 PERFORMANCE MONITORING OVERVIEW从Pentium奔腾处理器开始,Intel引入了一组计数寄存器用于做系统性能监视(System Performance monitoring)。针对不同型号的CPU处理器,它们各自拥有的性能计数寄存器是不同

2013-03-18 10:53:14 10632

原创 MSR-Model Specific Registers (特殊模块寄存器)

一 概念Model Specific Register (MSR) as the name implies is model specific and may change from processor model number (n) to processor model number (n+1).二 读写方法MSR 是CPU 的一组64 位寄存器,可以分别通

2013-03-18 09:19:38 17310

SPE-C2[1].53_集成开发环境帮助手册

SPE-C是SPARC v8兼容系列处理器(MXT0105,MXT0106等)的专用集成开发环 境,它使用C语言做为其编程语言,运用SPARC V8平台适用的gcc作为编译器,能在本地Win32的环境下运行。它具备了集成开发环境所有必要的功能,包括集成的源代码编辑,工程管理,编译调试,环境设置等,方便用户基于MXT0105/MXT0106系列处理器的应用开发和程序调试。 新的SPE-C版本主要增强了调试部分的功能,实现了编辑开发和调试功能的集成,极大的提高了开发环境的易用性和方便性。新集成的调试部分功能包括断点、逐语句/过程运行、查看和修改寄存器堆/存储器/片上寄存器、指令跟踪等,实现了调用栈和变量的查看等。

2012-12-27

cacti-0.8.7h.tar.zip

Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据,使用RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善,界面友好。

2012-10-25

LDRA_Testbed中文使用指南1.0.pdf

LDRA Testbed 源码分析,使用指南,中文版

2012-06-20

PCI 延迟读 线目标控制器的设计

用状态机实现总线访问操作的复杂时序,通过 FIFO型目标接口和寄存器型目标接口的建立实现了数据通路

2011-08-24

空空如也

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

TA关注的人

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