摘要:
系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口.设备驱动程序为应用程序屏蔽了硬件的细节,这样在 应用程序看来,硬件设备只是一个设备文件, 应用程序可以象操作普通文件一样对硬件设备进行操作.比如read(),就像读文件一样操作设备。设备驱动程序是内核的一部分,它完成以下的功能: 1.对设备初始化和释放. 2.把数据从内核传送到硬件和从硬件读取数据. 3.读取应用程序传送给设备文件的数据和回送应用程序请求的数据. 数据在用户空间 系统空间 硬件之间流动。 4.检测和处理设备出现的错误.linux操作系统设备分3种:字符设备 块设备 网络设备。其中... 阅读全文
随笔档案-2012年04月
malloc() free()函数分析
2012-04-22 22:11 by 至上, 333 阅读, 收藏,
摘要:
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 #include <stdio.h>#include "xlmalloc.h"main() { char *p, *q,*t; p = (char *)SysLmalloc(2); memset(p,1,2); q = (char *)SysLmalloc(16); memset(q,2,16); t = (char *)SysLmalloc(2... 阅读全文
设备驱动概述
2012-04-13 09:37 by 至上, 703 阅读, 收藏,
摘要:
1 .对设备驱动通俗的解释:驱动硬件设备行动。设备驱动与底层硬件直接打交道,按照硬件设备的具体工作方式读写设备寄存器,完成设备的轮询,中断处理,DMA通信,进行物理内存向虚拟内存的映射,最终使通信设备能够收发数据,使显示设备能够显示文字和画面,使存储设备能够记录文件和数据。2.关于有操作系统和没有操作系统的区别: 有时候操作系统是不必的,对于一些功能单一,控制并不复杂的系统,只需要在一个无限循环中包含设备中断的检测或者设备的轮询就可以了,比如公交刷卡机,电冰箱,微波炉,简单的手机和小灵通。 当功能很多的时候,需要多进程并发,就需要进程的调度,文件系统的管理,内存的管理等。这时候操作系统就需要了 阅读全文
解释器入口 Interp.c
2012-04-10 20:51 by 至上, 777 阅读, 收藏,
摘要:
void dvmInterpret(Thread* self, const Method* method, JValue* pResult){ InterpState interpState; //glue结构体实例 glue就是存放信息的一个结构体 类似于ecb bool change;#if defined(WITH_JIT)//解释器是否使用jit 编译热路径使用的 纯汇编编写 提高速度使用 /* Target-specific save/restore *///保存信息 以便回复 有一种调用函数的感觉 最后还会有返回值//那么解释器是否以一个方法作为最小单位澹(或者是一小段代码) ex 阅读全文
ZygoteInit源码解读
2012-04-06 22:33 by 至上, 2304 阅读, 收藏,
摘要:
由app_main.cpp文件中调用ZygoteInit.java 进行创建第一个虚拟机。init.rc中可以设置与其相关的参数:servicezygote/system/bin/app_process-Xzygote 告诉操作系统 Zygote加入到系统服务中 -Xzygote,该参数将作为虚拟机启动时所需要的参数,是在AndroidRuntime.cpp类的startVm()函数中调用JNI_CreateJavaVM()时被使用的/system/bin--zygote--start-system-server --开头的都是参数 比如--start-system-server指的是Zyg. 阅读全文
java 简单的模糊查找
2012-04-05 20:41 by 至上, 5692 阅读, 收藏,
摘要:
最近做一个基于语音的文件管理器,说几个字就可以找到相应的文件或者歌曲,视频等当语音输入的,在文件中找不到完全匹配时,进行模糊查找,找到相似度最高的并且打开它。 File File1=new File("/sdcard/music"); 主函数的一部分 serchFile(File1); 查找 if(max==0) Toast.makeText(FileManager.this, "没有找到", Toast.LENGTH_LONG).show(); 报错 else openFile(maxfile); 打开找到的匹配度最高的那一个文件 String Key 阅读全文
Dalvik虚拟机源码解读
2012-04-04 13:09 by 至上, 5000 阅读, 收藏,
摘要:
Dalvik虚拟机的入口有两个1./Dalvikvm/Main.c2.frameworks/base/cmds/app_process.cpp这两个文件中都包含main函数 用于创建第一个虚拟机实例 虚拟机作为一种应用程序,运行它是需要main函数的 其中app_peocess.cpp继承了AndroidRuntime.cpp/frameworks/base/core/jni/AndroidRuntime.cpp第一个是用于开发用的,一般在x86上,开发调试时用。第二个是手机等移动设备上用的。区别在于开发时要使用dx工具等,实际手机就是使用android操作系统,运行.apk文件,不需要再做编 阅读全文
浙公网安备 33010602011771号