- 博客(15)
- 资源 (2)
- 收藏
- 关注
转载 asm和c的相互调用
;*************foo.asm*********************extern choose ;[section .data] ;data is herenum1st dd 3 ;data definitionnum2nd dd 4[section .text
2012-04-04 00:00:46 657
转载 linux中断机制
80x86采用了8259A可编程中断控制器芯片,每个这种芯片可以管理8个中断,通过级联最多可以管理64个中断。80x86支持256个中断,每个中断向量表需要4字节组成,因此整个中断向量表需要1KB,而且他们必须放在0x00000000处。linux内核中,中断分为硬件中断和软中断。每个中断都由0~255中的一个数来标志。前32个中断号被intel保留,属于软中断,即所谓的程序异常。li
2012-02-16 00:40:17 389
转载 linux内核结构
1.单内核模式的系统中,操作系统所提供的服务流程为: a.应用主程序使用指定的参数值执行系统调用指令(int x80) b.CPU从用户态切换到内核态 c.操作系统根据具体的参数值调用特定的系统调用服务程序 d.这些服务程序根据需要再调用底层的一些支持函数以完成特定的功能。 e.完成了所要求的
2012-02-14 23:39:09 333
转载 AT&T汇编语法格式
1.寄存器的引用要在寄存器前加%, 如mov %eax, %ebx2.操作数排列是左源右目的,如上例表示把值从eax寄存器mov到ebx寄存器3.常数/立即数前面要加$,如mov $4, %ebx 4.对于变量加$表示取地址。如mov value,%ebx表示传值给ebx,而mov $value, %ebx表示传地址给ebx.5.操作数长度通过在命令后加后缀实现,如movb,mo
2011-12-25 11:26:53 543
原创 使用netlink
用户态使用 netlinkNetlink 相对于系统调用,ioctl 以及 /proc 文件系统而言具有以下优点:1,为了使用 netlink,用户仅需要在 include/linux/netlink.h 中增加一个新类型的 netlink 协议定义即可, 如 #define NETLINK_MYTEST 17 然后,内核和用户态应用就可以立即通过 socket API 使用该 netli
2011-12-19 23:07:35 556
原创 使用sysctl来实现内核参数修改
//header: sysctl-exam.h#ifndef _SYSCTL_EXAM_H#define _SYSCTL_EXAM_H#include #define MY_ROOT (CTL_CPU + 10)#define MY_MAX_SIZE 256 enum { MY_INT_EXAM = 1,
2011-12-19 22:29:33 3289
原创 内核模块的编写1
#include #include MODULE_LICENSE("Dual BSD/GPL");// 是用来告知内核, 该模块带有一个自由的许可证; 没有这样的说明, 在模块加载时内核会抱怨. static int hello_init(void){ printk(KERN_ALERT "Hello, world\n");//printk 函数在 Li
2011-12-18 16:21:05 388
原创 内核运行于用户上下文时,内核空间与用户空间通信的实现
运行在用户上下文环境中的代码是可以阻塞的,这样,便可以使用消息队列和 UNIX 域套接字来实现内核态与用户态的通信。但这些方法的数据传输效率较低,Linux 内核提供 copy_from_user()/copy_to_user() 函数来实现内核态与用户态数据的拷贝,但这两个函数会引发阻塞,所以不能用在硬、软中断中。一般将这两个特殊拷贝函数用在类似于系统调用一类的函数中,此类函数在使用中往往"穿梭
2011-12-18 15:09:20 395
原创 linux相关链接(后续更新...)
http://lamp.linux.gov.cn/Linux/kernel_options.html Linux 2.6.19.x 内核编译配置选项简介http://bbs.chinaunix.net/viewthread.php?tid=2202907&extra=page%3D1%26amp%3Bfilter%3Ddigest 在VMware5.0环境下编译内核(kerne
2011-11-27 20:29:47 835
原创 linux编程基础
stdin,stdout,stderr通过文件描述符来访问,文件描述符0代表stdin,1代表stdout,2代表stderr。% program > output_file.txt 2>&1% program 2>&1 | filter这里2>&1表示stderr和
2011-09-04 22:21:41 476
原创 [Android开发从零开始].4.TextView控件学习
如何解决Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED我把Project Name设置为ad1.TextView,结果activity的名字为ad1.TextViewActivity。这应该无法作为类名存在,
2011-07-25 22:36:14 866
原创 android基本概念
1.android的系统架构 linux内核:负责各种硬件的驱动,例如显示、蓝牙、相机、音频、usb等。 本机库:位于linux内核层上面一层,用C或C++编写,重要的包括界面管理、图形、媒体解码器、SQL数据库、浏览器引擎。 android运行时:dalvik
2011-07-24 20:39:47 456
原创 第一个android程序:helloworld
平台前向兼容软件: 指老平台下生成的程序在新平台上也能运行。等价于软件后向兼容平台。根据coolszy的操作过程可以正确完成helloworld程序,感谢coolszy的视频。android模拟器每次运行都会临时生成几个tmp临时文件,时间长了,可能占用几G的空间,目录为【win
2011-07-24 11:54:23 392
原创 android模拟器创建和软件安装和卸载
1.运行SDK Manager2.点击new...后,选择target,填入模拟器命名,输入sd card 大小。3.点击create avd即可。4.安装android软件:打开cmd,进入到apk文件所在的路径,输入adb install xxx.apk即可(xxx为你下载的
2011-07-24 08:52:42 351
原创 windows下Android开发环境搭建
1.安装jdk,直接从baidu搜索 android jdk,找到最新版本下载即可。2.解压后,双击SDK Manager.exe,下载平台和第三方库文件。这里需要的时间较长。3.下载eclipse,谷歌推荐使用classic版本,我用的是3.6,据说3.6会出现假死,先不管了。
2011-07-23 10:24:47 427
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人