摘要:
昨天群里有人adb启动不了 报了这个错正常应该是这样的我们看下源码这里我们看到两个分支, if(fd==-2){ //根据注释 以前还没启动过服务 就走这个分支 }else{ 当前进程已经有这个服务在运行就走这个分支 }根据上面的打印的日志 很明显群里的这位朋友已经执行了这个服务,因为它走进了第二个分支。但是他在任务管理器中又找不到adb服务。我们来看下android是怎么判断服务已经在进程中的。即什么情况下int _adb_connect(const char *service)返回-2.只有当fd<0... 阅读全文
摘要:
以前从来不做笔记,好多东西学了忘,忘了学,今天开始记录下来。X86的分段 x86微处理器有两种工作模式,实模式和保护模式。实模式仅仅是为了与之前产品的兼容。因为linux是运行在保护模式上,所以这里只讨论保护模式.X86分段是将内存地址按段区分开来,cs,ss,ds,es,fs和gs都是段寄存器。 16位的高13位是段描述的索引号(段描述符马上就讨论),TI位指示是全局描述附表(TI=0)还是局部描述附表(TI=1),RPL是特权 0为最高3最低。段描述符: 我们就是通过它真正去找到一段内存地址的。一个描述符占8个字节。它的结构一会儿说。段描述符表: 你可以看成是排列在连续内存上的一组... 阅读全文