自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(672)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android 模拟器的认识

Android中提供了一个模拟器来模拟ARM核的移动设备。Android的模拟器是基于QEMU开发的,QEMU是一个有名的开源虚拟机项目(详见http://bellard.org/qemu/),它可以提供一个虚拟的ARM移动设备。Android模拟器被命名为goldfish,用来模拟包括下面一些功能的ARM SoC:·  ARM926ej-S CPU ·  Thumb suppor

2010-05-27 17:04:00 3211 1

原创 android 内核代码的获取,编译和使用

Reference: http://www.williamhua.com/2009/04/29/git-and-repo-for-dummies/                  http://www.williamhua.com/2009/04/30/how-to-build-android-15-kernel-image/ 关于获取,编译和使用android platform 代

2010-05-27 15:39:00 4192

原创 Android ramdisk.img system.img userdata.img

ramdisk.img 是android系统的根文件系统,系统内核会加载它。它的目录结构如下:   /system   /sys   /sbin   /proc   init.rc   init.goldfish.rc   init   /dev   default.prop   /data system.img 是android系统中存放系统文件的

2010-05-27 11:34:00 6303

转载 Android init 启动过程分析2

主進程runSelectLoopMode()5.Runs the zygote processs select loop runSelectLoopMode(), Accepts new connections as they happen, and reads commands from connections one spawn-requests worth at a time.如果运

2010-05-26 23:37:00 2866

转载 Android init 启动过程分析1

  未完 资料:Simple Guide for Porting Android Kernelhttp://feixf1974.javaeye.com/blog/187773分析android的启动过程,从内核之上,我们首先应该从文件系统的init开始,因为 init 是内核进入文件系统后第一个运行的程序,通常我们可以在linux的命令行中指定内核第一个调用谁,如果没指定那么内

2010-05-26 23:34:00 2363

转载 Android底层启动过程(应该说是应用进程init启动后的一些步骤)

对于关注Android底层的朋友来说,其具体的启动过程应该是比较吸引我们的。但是很多启动文件什么的,都得adb push到host上来看,挺不方便的,都怪Android自带的Toolbox太简略了。所以在深入了解Android的启动流程之前,我们来把 Busybox安装到Android上去,这样,就有很多工具供我们使用了。首先去busybox主页 下载最新版本的源代码,然后用arm的交叉编译器编译

2010-05-26 23:23:00 1822

转载 为Android加入busybox工具

我们可以通过两种方式进入Android的console:1. 直接执行命令emulator -shell;2. 在启动emulator后,通过命令adb shell进入。之后我们就可以使用一些linux下常用的命令了,如ls,cat等。然而Android自带的toolbox(位于/system/bin中)也太简略了点,有些命令如find,Android并不支持或者支持得不好。下面将介绍

2010-05-26 23:17:00 1024 2

转载 windows操作系统同步

一:Critiacal_Section1:使用临界区的目的是确保资源每次只能被一个线程所使用。一个线程进入某个临界区,另一个线程就不能够再进入同一个临界区。临界区不是核心对象,它只存在进程的内存空间。没有所谓的句柄,只能在同一进程中的线程间完成同步。2:使用函数    VOID InitializeCriticalSection(LPCRITICAL_SECTION lpCri

2010-05-21 10:22:00 1369

原创 volatile用法总结

首先:volatile是变量修饰符,而synchronized则作用于一段代码或方法;1:例如int geti1() {return i1;}由于每个线程可以有它自己的变量拷贝,而这个变量拷贝值可以和“主”内存区域里存放的不同。导致存在一种可能:“主”内存区域里的i1值是1,线程1里的i1值是2,线程2里的i1值是3——这在线程1和线程2都改变了它们各自的i1值,而且这个改变还

2010-05-21 09:35:00 997

原创 线程等待 WaitFor...

一:BOOL GetExitCodeThread(HANDLE hThread, LPDWORD lpExitCode);该函数可以决定一个线程是否还在执行,只要不断的检测返回值就可以判断线程是否结束。但是不断的检测会浪费CPU事件。常说的busy loop就是这种现象。二:DWORD WaitForSingleObject(HANDLE hHandle, DWORD dwMill

2010-05-20 18:39:00 1686

转载 带你全面了解APR ARP协议详解

ARP(AddressResolutionProtocol)地址解析协议用于将计算机的网络地址(IP地址32位)转化为物理地址(MAC地址48位)[RFC826]。ARP协议是属于链路层的协议,在以太网中的数据帧从一个主机到达网内的另一台主机是根据48位的以太网地址(硬件地址)来确定接口的,而不是根据32位的IP地址。内核(如驱动)必须知道目的端的硬件地址才能发送数据。当然,点对点的连接是

2010-05-20 18:31:00 3937

转载 ARP

ARP,即地址解析协议,实现通过IP地址得知其物理地址。在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。这样就存在把IP地址变换成物理地址的地址转换问题。以以太网环境为例,为了正确地向目的主机传送报文,必须把目的主机的32位IP地址转换成为48位以太网的

2010-05-20 18:25:00 846

转载 DHCP工作原理

DHCP的工作原理视乎客户端是否第一次登录网路﹐DHCP的工作形式会有所不同。第一次登录的时候﹕1.      寻找Server。当DHCP客户端第一次登录网路的时候﹐也就是客户发现本机上没有任何IP资料设定﹐它会向网路发出一个DHCPDISCOVER封包。因为客户端还不知道自己属于哪一个网路﹐所以封包的来源地址会为0.0.0.0﹐而目的地址则为255.255.255.25

2010-05-20 18:12:00 1192

转载 Peer-to-Peer Communication Across Network Address Translators

from http://www.bford.info/pub/net/p2pnat/Bryan FordMassachusetts Institute of Technologybaford (at) mit.eduPyda SrisureshCaymas Systems, Inc.srisuresh (at) yahoo.comDa

2010-05-10 15:08:00 1468

原创 HOOK钩子机制学习笔记(1)

一、什么是钩子(hook)    Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。钩子(hook)是一种特殊的消息处理机制,钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,屏幕取词,日志监视等等。  

2010-05-08 11:49:00 3659 7

原创 包级别的 TCP/UDP 负载均衡和NAT(Network Address Translate)

作者: <a title="Nety" onclick="window.open(/control/postMessage.b?receiverName=Nety&receiver=162936,发送短消息,width=310,height=265)" href="javascript:void(0);" title="Nety">Nety                 

2010-05-08 11:44:00 2598 3

原创 递归锁与非递归锁

   * 非递归锁:非递归锁提供互斥的一种高效的形式,它定义一个临界区,每一时刻只有单个线程可在其中执行。它们之所以是非递归的,是因为当前拥有锁的线程在将其释放前不可以再次获取它。否则,就会立即发生死锁。SunOS 5.x通过它的mutex_t、rwlock_t,和sema_t类型(POSIX Pthreads不提供后两种同步机制)为非递归锁提供支持

2010-05-08 11:40:00 1663 1

原创 HTTP协议--处理状态和返回状态码含义

HTTP 处理状态。当一个XMLHttpRequest初次创建时,这个属性(readystate)的值从0开始,直到接收到完整的HTTP响应,这个值增加到4。5个状态中每一个都有一个相关联的非正式的名称,下表列出了状态、名称和含义:状态    名称        描述0    Uninitialized       初始化状态。XMLHttpRe

2010-05-08 11:39:00 7031

原创 setsockopt 设置socket 详细用法

1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2. 如果要已经处于连接状态的soket在调用clo

2010-05-08 11:37:00 890

原创 设备坐标和逻辑坐标

要用到两个函数:CDC::LPtoDP  将逻辑坐标转换为设备坐标CDC::DPtoLP  将设备坐标转换为逻辑坐标 设备坐标(Device Coordinate)又称为物理坐标(Physical Coordinate),是指输出设备上的坐标。通常将屏幕上的设备坐标称为屏幕坐标。设备坐标用对象距离窗口左上角的水平距离和垂直距离来指定对象的位置

2010-05-07 14:44:00 1299

原创 基于VC++的GDI常用坐标系统及应用

 在Windows应用程序中,只要进行绘图,就要使用GDI坐标系统。Windows提供了几种映射方式,每一种映射都对应着一种坐标系。例如,绘制图形时,必须给出图形各个点在客户区的位置,其位置用x 和y两个坐标表示,x 表示横坐标,y表示纵坐标。在所有的GDI绘制函数中,这些坐标使用的是一种“逻辑单位”。当GDI函数将结果输出送到某个物理设备上时,Windows将逻辑坐标转换成设备坐标(如屏

2010-05-07 14:20:00 1160 1

原创 Window 中窗口的层次关系以及窗口的属性

Window 窗口层次关系  相信在Window 下面编程的很多兄弟们都不是很清楚Window中窗口的层次关系是怎么样的,这个东西很久已经研究过一下,后来又忘记了,今天又一次遇到了这个问题,所以便整理一下。下面就说说Window中桌面(Deskkop)以及顶层窗口,以及子窗口之间的关系。    在Window 的图形界面下,最基本显示信息的元素就是窗口,每一个Window

2010-05-04 18:28:00 782

原创 消息WM_SIZEPARENT

每个欲参与分配客户区的子窗口都要响应这个消息,除非这个子窗口是那个特定的子窗口。    响应这个消息的子窗口至少要做两件事:1,将可用的父窗口客户区切去自己所占据的一块。2,根据消息参数的指示,将自己的大小和位置调整到刚好容纳到自己所占据的区域里或不做调整。    下面详细介绍一下函数CWnd::RepositionBars()和消息WM_SIZEPARENT。  

2010-05-02 22:55:00 1385

原创 List 的一种使用技巧

创建几个带有状态的List,当一个list中的一个元素通过某种处理,进入了另外一种状态,就可以将这个元素移入另外一个List.

2010-04-26 10:57:00 806

转载 数据库的几大范式

第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值 都是不可再分的最小数据单位,则称R是第一范式的关系。例:如职工号,姓名,电话号码组成一个表(一个人可能有一个办公室电话 和一个家里电话号码) 规范成为1NF有三种方法: 一是重复存储职工号和姓名。这样,关键字只能是电话号码。 二是职工号为关键字,电话号码分为单位电话和住宅电话两个属性 三是职工号为关键字,但强制每条记录只能有一

2010-04-22 10:08:00 1384

转载 What's your weakness and strength?

Youre about to read a really old post. For our updated thoughts on this topic, please visit our newer post: Strengths and Weaknesses Revisited. Yesterday, a reader asked us what he should say when

2010-04-21 22:15:00 10990

原创 The function return

 Stack during Subroutine Call 基本知识: http://www.cs.virginia.edu/~evans/cs216/guides/x86.html#include using namespace std;/*Function to return struct */struct A{   int

2010-04-21 09:42:00 1182

转载 Funtion call conventions

Other resource about function-call conventions.http://www.codeproject.com/KB/cpp/calling_conventions_demystified.aspxhttp://www.intel.com/products/processor/manuals/index.htm  Architecture Softwar

2010-04-20 09:54:00 973

转载 volatile用法总结

在用C语言编程时,经常会遇到使用关键字volatile修饰的变量,比如:在单片机头文件中一些寄存器的定义,如#define DDRD (*(volatile unsigned char*)0x31),还有全局变量,如volatile unsigned chartimecnt等。为什么要在这些变量前面加上volatile呢?volatile到底有什么作用?  一个定义为v

2010-04-20 09:51:00 878

转载 C++'s mutable

MutableThe keyword mutable is used to allow a particular datamember of const object to be modified. This is particularly useful ifmost of the members should be constant but a few need to be up

2010-04-20 09:43:00 761

原创 afxGetApp解析

MFC中有不少的全局函数,方便在不同对象中获取不同的内容或创建不同的对象。主要全局函数有:AfxWinInit()  AfxBeginThread()  AfxEndThread()  AfxFormatString1()  AfxFormatString2()AfxMessageBox()  AfxOutPutDebugString()  AfxGetApp()  AfxGetMainW

2010-04-16 16:03:00 1093 1

原创 make的参数

五、make的参数下面列举了所有GNU make 3.80版的参数定义。其它版本和产商的make大同小异,不过其它产商的make的具体参数还是请参考各自的产品文档。“-b”“-m”这两个参数的作用是忽略和其它版本make的兼容性。“-B”“--always-make”认为所有的目标都需要更新(重编译)。“-C ”“--directory=

2010-04-13 23:27:00 1212

转载 SQL中有几种连接?有什么区别?(左连右连内连和外连?)

连接查询 通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。 在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新

2010-04-13 10:08:00 3015 1

转载 Windows 程序设计(第2版) 3.2.6 线程局部存储

线程局部存储(thread-local storage, TLS)是一个使用很方便的存储线程局部数据的系统。利用TLS机制可以为进程中所有的线程关联若干个数据,各个线程通过由TLS分配的全局索引来访问与自己关联的数据。这样,每个线程都可以有线程局部的静态存储数据。用于管理TLS的数据结构是很简单的,Windows仅为系统中的每一个进程维护一个位数组,再为该进程中的每一个线程申请

2010-04-11 22:59:00 970

原创 C++程序的阅读

C++中的类型转换操作符的重载      C++中类对象定义了类型转换操作符后,表达式的含义就要仔细分析。任何一步都有可能导致类型转换函数的调用。这是C和C++很大的不同。 C++中全局变量     对于C++中全局对象变量,其构造函数的调用先于main,实在可执行文件被装载时就调用的,处于ELF中的.init section.     C语言中,全局变量没有构造函数。 

2010-04-11 11:07:00 1289

转载 巧妙的offset

#define   offsetof(s,m)   (size_t)&(((s   *)0)-> m)     然后到网上查了一下,发现还真的是很有用,附带一位大侠的解说:     struct       AAA           {           int       i;        

2010-04-10 23:18:00 189 1

原创 umask

umask   umask命令  linux常用的命令  umask命令的一般格式:  umask [选项] [掩码]  该命令用来设置限制新文件权限的掩码。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时,umask命令都被执行,并自动设置掩码改变默认值,新的权限将会把旧的覆盖。  选项及

2010-04-10 17:17:00 702

原创 nohup

  Unix/Linux下一般想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台:/usr/local/mysql/bin/mysqld_safe –user=mysql ……  Unix/Linux下一般想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台:  /usr/loca

2010-04-10 17:13:00 1825

原创 数百种 Windows 软件的免费替代品列表

http://blog.chinaunix.net/u/3204/showart_233901.html

2010-03-29 18:21:00 1175

转载 NETSTAT命令详解

netstat netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息,在我的计算机上执行netstat后,其输出结果为: Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp

2010-03-29 18:11:00 1717

jijf 文件格式(JPEG)

JIJF文件格式的详细介绍,是JPEG图像的文件格式

2011-05-24

linux设备驱动程序编程第三版

附件是linux设备驱动程序编程第三版, 英文的

2009-05-18

空空如也

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

TA关注的人

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