自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 资源 (9)
  • 收藏
  • 关注

原创 Linux siginal

这就是说,进程执行一个系统调 用,当因为资源或其他原因要去睡眠时,内核为进程作了一次setjmp,如果在睡眠中被信号唤醒,进程不能再进入睡眠时,内核为进程调用longjmp, 该操作是内核为进程将原先setjmp调用保存在进程用户区的上下文恢复成现在的上下文,这样就使得进程可以恢复等待资源前的状态,而且内核为 setjmp返回1,使得进程知道该次系统调用失败。如果父进程没有处理这个信号,也没有等待(wait)子进程,子进程虽然终止,但是还会在内核进程表中占有表项,这 时的子进程称为僵尸进程。

2023-05-12 19:45:08 890

转载 理解Android线程创建流程(转)

/android/libcore/libart/src/main/java/java/lang/Thread.java/art/runtime/native/java_lang_Thread.cc/art/runtime/native/java_lang_Object.cc/art/runtime/thread.cc/system/core/libutils/Threads.cpp/...

2019-01-08 16:49:10 411

转载 (转)ServiceManager 小结

转自https://www.cnblogs.com/lipeil/p/5982893.html1 ServiceManger 根据name优先从Map中获取IBinder,例如AMS、WMS、PMS;如果Map中没有对应的IBinder,我们获取Serviceanager的代理ServiceManagerNative.asInterface(BinderInternal.getContext...

2018-12-05 13:43:38 241

原创 uboot启动流程之进uboot命令行和启动内核

1.上电进board_init_r-->init_sequence_r-->run_main_loop-->main_loop-->bootdelay_process-->autoboot_command主要就是这么个流程2.具体怎么决定是进命令行还是启动kernel是在autoboot_command决定的void autoboot_command(co...

2018-10-17 12:25:34 6509

转载 【转】vim折叠(非常好的功能)

http://www.2cto.com/os/201203/122133.html主要命令:zf-创建折叠zf20G--创建折叠,从当前行折叠到第20行zfgg--创建折叠,从当前位置折叠到文件头,非常适合编程的时候隐藏文件顶部的头文件包含,源文件注释写程序时都是以函数为单位,可以很方便的折叠一个函数,而保留函数头部。如下函数,我们将光标停留在{处,输入zf%(%在vim中表示...

2018-09-20 17:42:18 297

原创 Android怎么获取设备自身软件信息

1.DeviceUtil,获取Android设备信息的工具类2.从android.os.Build类3.TelephonyManager中获取4.使用反射获取SystemProperties 5.直接调用属性相关接口获取/system/build.prop相关属性。...

2018-09-13 19:55:58 294

原创 Android binder中的mmap到binder_mmap调用流程

framework/native/cmds/servicemanager/binder.c里的binder_open如何调用到binder_mmapstruct binder_state *binder_open(size_t mapsize){    struct binder_state *bs;    struct binder_version vers;    bs = ma...

2018-09-12 15:54:30 1213

转载 Linux系统调用(syscall)原理(转)

引言:分析Android源码的过程中,要想从上至下完全明白一行代码,往往涉及app、framework、native一直到kernel,可能迷失到代码世界,明白了系统调用原理,或许能帮你峰回路转,找到进入kernel函数的入口。本文主要讲解ARM架构相关源码:/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h/bionic/libc/arch-

2017-11-24 20:19:07 493

转载 product.mk-and-node_fns.mk

inherit 一个product definition 文件会在每个product 变量的当前值后面拼上被继承的product的相应变量的值。 如果继承之后又给某些变量赋了新的值,则该变量之前的赋值和继承全部被新值覆盖掉。在node_fns.mk中所谓的node是一个makefile。import-nodes  首先给每个node创建一个独一无二的contex

2017-06-23 14:08:27 350

转载 01 linux shell 打印信息

本文介绍两种 Linux Shell 在终端打印信息的方式:1, echo :echo 共有 3 种输出方式:1.1 直接在 echo 后面跟要输出的信息:echo "----------- echo without quotes ------------------------------"echo Hello world ! ;

2017-04-18 10:25:55 762

转载 linux中shell条件判断if中的-a到-z的意思

下面我们一起来看一篇关于shell条件判断if中的-a到-z的意思,有需要了解的朋友不防进入参考参考.shell if判断中常用的也就是绿色部分,尾部部分越看越不懂。从百度文库转载。[ -a FILE ] 如果 FILE 存在则为真。[ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。[ -c FILE ] 如果 FILE 存在且是一个字特殊文

2017-04-18 10:23:57 925

转载 linux kernel 的makefile的组织结构(转)

背景知识:背景知识一:Kconfig介绍:在#make menuconfig 时,所显示的Menu list是由各层Kconfig组成的。最底层Kconfig存放在 ~/arch/i386/Kconfig. 以此为头,它会一层层使用source来把需要加入的各个目录中Keconfig添加近来。例如:source "drivers/Kconfig"则将~/drivers/Kcon

2017-03-18 19:26:30 682

转载 vim与复制,删除,粘贴,块操作以及快速替换功能

掌握如下命令有什么好办法,我可以告诉你唯手熟尔!!多看多练对于VIM而言,复制,删除,粘贴的操作应该是非常多的。这次也做一个总结,关于处理VIM下的复制,删除,粘贴等操作。学会使用帮助文件,命令的帮助入口,就是”:help 命令名“。例如,对于”j“命令,查看它的帮助,使用”:help j“先谈一下基于块的复制,删除,粘贴操作使用块选的好处:对于vim几乎提到的

2016-09-26 16:59:43 350

转载 Git的Patch功能

UNIX世界的软件开发大多都是协作式的,因此,Patch(补丁)是一个相当重要的东西,因为几乎所有的大型UNIX项目的普通贡献者,都是通过 Patch来提交代码的。作为最重要的开源项目之一,Linux,也是这样的。普通开发者从软件仓库clone下代码,然后写入代码,做一个Patch, 最后用E-mail发给Linux Kernel的维护者就好了。Git最初作为Linux的版本控制工具,提供了透明、

2016-09-26 14:20:27 304

转载 shell编程——if语句 if -z -n -f -eq -ne -lt

shell编程中条件表达式的使用if  条件then Commandelse Commandfi                              别忘了这个结尾If语句忘了结尾fitest.sh: line 14: syntax error: unexpected end of fi

2016-09-06 16:04:28 26389

转载 理解 Android Build 系统

Android Build 系统是用来编译 Android 系统,Android SDK 以及相关文档的一套框架。众所周知,Android 是一个开源的操作系统。Android 的源码中包含了许许多多的模块。 不同产商的不同设备对于 Android 系统的定制都是不一样的。如何将这些模块统一管理起来,如何能够在不同的操作系统上进行编译,如何在编译时能够支持面向不同的硬件设备,不同的编译类型,且

2016-08-26 17:56:11 522

转载 linux 顶层Makefile执行的流程!!!

1、make menuconfigVERSION = 2PATCHLEVEL = 6SUBLEVEL = 26EXTRAVERSION =NAME = Rotary Wombat# *DOCUMENTATION*# To see a list of typical targets execute "make help"# More info can be l

2016-08-18 18:11:14 1019

转载 Linux 内核 Makefile 体系简单分析

此文转载自http://blog.chinaunix.net/uid-27692613-id-3761510.html~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~众所周知,Linux内核是使用make命令来配置并编译的,那必然少不了Ma

2016-08-03 15:52:20 337

转载 Android4.4的zygote进程

转自http://www.open-open.com/lib/view/open1435109640966.html1背景前些天为了在科室做培训,我基于Android 4.4重新整理了一份关于zygote的文档。从技术的角度看,这几年zygote并没有出现什么大的变化,所以如果有人以前研究过zygote,应该不会对本文写的内容感到陌生。2zygote进程的描述在An

2016-05-30 18:27:42 404

转载 安卓4.1: input系统从frameworks到kernel

1,概述        废话少说,直接上图,input从kernel到android frameworks一锅端式结构框架图。该图kernel部分是以用i2c接口的input设备为例。2,Frameworks层2.1,箭头1:WindowManagerService部分    WindowManagerService是android系统一个非常重要的

2016-05-30 17:24:19 423

转载 利用Core Dump调试程序

利用Core Dump调试程序 [描述] 这里介绍Linux环境下使用gdb结合core dump文件进行程序的调试和定位。 [简介] 当用户程序运行,可能会由于某些原因发生崩溃(crash),这个时候可以产生一个Core Dump文件,记录程序发生崩溃时候内存的运行状况。这个Core Dump文件,一般名称为core或者core.pid(pid就是应用程序运行时候的pid

2016-05-20 18:18:07 428

原创 Linux Pthread 总结

- 1.线程特点- 2.pthread创建- 3.pthread终止        - 4.mutex互斥量使用框架        - 5.cond条件变量================================================================================================1. 线程特点

2016-05-20 11:40:36 371

转载 进程与线程的一个简单解释

进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。

2016-05-19 11:47:52 191

转载 strtok()函数

strtok()这个函数大家都应该碰到过,但好像总有些问题, 这里着重讲下它首先看下MSDN上的解释:char *strtok( char *strToken, const char *strDelimit );ParametersstrTokenString containing token or tokens.strDelimitSet of delimiter c

2016-05-11 13:44:47 220

转载 linux下内存的统计和内存泄露类问题的定位

在产品的开发中,通过对当前系统消耗内存总量的统计,可以对产品所需内存总量进行精确的评估,从而选择合适的内存芯片与大小,降低产品的成本。在遇到内存泄露类问题时,经常会对此束手无策,本文通过对proc下进程相关的文件进行分析,精确评估系统消耗内存的大小,还可以对内存泄露类问题的解决提供一种定位手段。       Linux在内存使用上的原则是:如果内存充足,不用白不用,尽量使用内存来缓存一些文件,

2016-03-22 17:59:09 303

转载 常用时间函数总结

在计算机中,时间通常有三个作用:表示时间、计时和定时。本文将主要介绍一些常用的表示时间的函数,以及他们之间的转换,对于其它的用法,在后续中补充。一、基本概念     1. 世界标准时间(UTC, Coorainated Universal Time)是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治标注年时间(GMT,Greenwich Mean Time),在大多数

2016-03-10 18:23:59 500

转载 利用redrat模拟遥控器

1. 安装redrat驱动:1)http://www.redrat.co.uk/Software/Drivers/RRUSB-II-Vista-Win7-x64-V3.4.4.zip2)解压。3)接上redrat。4)我的电脑->管理->设备管理器,找到redrat3。点击右键,选择属性,在电脑上查找驱动,选择刚才redrat驱动存放的目录。然后开始安装。安装成功后,将可以在设

2016-03-10 17:50:55 2103 2

转载 Linux 可加载内核模块剖析 (2.6 内核透视图)

Linux® 可加载内核模块(从内核的 1.2 版本开始引入)是 Linux 内核的最重要创新之一。它们提供了可伸缩的、动态的内核。探索隐藏在可加载模块后面的原理,并学习这些独立的对象如何动态地转换成 Linux 内核的一部分。0 评论:M. Tim Jones, 顾问工程师, Emulex Corp.2008 年 8 月 07 日内容

2016-03-07 23:58:47 552

转载 Linux设备模型(2)_Kobject

1. 前言Kobject是Linux设备模型的基础,也是设备模型中最难理解的一部分(可参考Documentation/kobject.txt的表述)。因此有必要先把它分析清楚。2. 基本概念由“Linux设备模型(1)_基本概念”可知,Linux设备模型的核心是使用Bus、Class、Device、Driver四个核心数据结构,将大量的、不同功能的硬件设备(以及驱动该硬件设备的

2016-03-01 00:15:14 327

转载 设备驱动基础1:设备模型之总线,驱动,设备

Kobject,kset是设备模型的基本结构体,设备模型使用这两个结构体来完成设备的层次关系,但在实际的设备驱动编写中,我们基本上用不到kobject,kset这些结构体,是因为这些结构体又被嵌入到更大的结构体中,原因在于kobject,kset结构体只能表征设备的层次关系,但是一个设备的驱动,并不是简单的一个层次关系而已,因此,必需要把kobject,kset结构体嵌入到更大的结构体中,使用ko

2016-03-01 00:08:27 446

转载 设备驱动基础0:设备模型之kobject,kset及其关系

Linux2.6以后的设备驱动,都是在设备模型的基础上构建的,因此,要编写linux下的设备驱动程序,不论是usb设备,pci设备等,都需要了解设备模型。设备模型的基础结构体主要是kobject,kset这两个结构体:struct kobject {   char      * k_name;   char      name[KOBJ_NAME_LEN];

2016-03-01 00:07:27 3131 1

转载 Kobject、Kset 和 Subsystem

http://www.itshanghai.net/technology/2008/1128/article_110.htmlKobjectskobject是一种数据结构,定义在 。 struct kobject {    const char    * k_name;/*kobject 的名字数组(sysfs 入口使用的名字)指针;如果名字数组大小小于KOBJ_NAME_LE

2016-02-29 23:45:26 498

转载 Android init.rc文件详

本文主要来自$Android_SOURCE/system/init/readme.txt的翻译.1 简述Android init.rc文件由系统第一个启动的init程序解析,此文件由语句组成,主要包含了四种类型的语句:Action,Commands,Services,Options.在init.rc文件中一条语句通常是占据一行.单词之间是通过空格符来相隔的.如果需要在单词内使用空格

2016-01-15 11:38:17 286

转载 Android系统启动过程浅谈

一、 系统启动流程简介在Linux内核启动后,init 1(1号进程)将作为第一个用户空间(Linux虚拟内存的大小为232(在32位的x86机器上),内核将这4G字节的空间分为两部分。最高的1G字节供内核使用,称为“内核空间”。而较低的3G字节供各个进程使用,称为“用户空间”。)的进程来启动Android系统,该启动流程可以分为如下5个阶段,如下图: (1) 启动准备:该阶段包括

2016-01-14 15:35:59 295

转载 Android消息处理机制(Handler、Looper、MessageQueue与Message)

Android是消息驱动的,实现消息驱动有几个要素:消息的表示:Message消息队列:MessageQueue消息循环,用于循环取出消息进行处理:Looper消息处理,消息循环从消息队列中取出消息后要对消息进行处理:Handler平时我们最常使用的就是Message与Handler了,如果使用过HandlerThread或者自己实现类似HandlerThread的东西可能还会接触

2016-01-08 18:07:01 303

转载 JVM虚拟机结构

JVM的主要结构如下图所示,图片引用自舒の随想日记。方法区和堆由所有线程共享,其他区域都是线程私有的程序计数器(Program Counter Register)类似于PC寄存器,是一块较小的内存区域,通过程序计数器中的值寻找要执行的指令的字节码,由于多线程间切换时要恢复每一个线程的当前执行位置,所以每个线程都有自己的程序计算器。这一个区域不会有OutOfMemer

2016-01-08 18:04:27 71

转载 Git与Repo入门

版本控制  版本控制是什么已不用在说了,就是记录我们对文件、目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作。。。一、原始版本控制  最原始的版本控制是纯手工的版本控制:修改文件,保存文件副本。有时候偷懒省事,保存副本时命名比较随意,时间长了就不知道哪个是新的,哪个是老的了,即使知道新旧,可能也不知道每个版本是什么内容,相对上一版作了什么修改了,当

2016-01-08 18:02:30 286

转载 解密Linux kernel中的内核线程

kernel_thread(kthreadd, NULL, CLONE_FS |CLONE_FILES);       regs.ARM_pc= (unsigned long)kernel_thread_helper;       do_fork(flags|CLONE_VM|CLONE_UNTRACED,0, &regs, 0, NULL, NULL);kernel_thread_h

2016-01-06 18:06:43 855

转载 x86处理器中的特权级检查及Linux系统调用的实现

该部分内容需要仔细阅读Intel或者AMD的相关文档,Intel文档名为《Intel 64 and IA-32 Architectures Software Developer's Manual》, AMD的文档名是《AMD64 Architecture Programmer's Manual》,这些文档在intel和amd的官方网站上都可以下到,据我了解intel甚至提供纸质的文档供开发者使用(

2016-01-05 23:58:57 745

转载 Linux内核中的init_task进程和idle进程

当Power on PC时,BIOS的代码开始执行,然后是Linux初始化的代码,这其中大约很长一段时间Linux都没有进程这一概念,但是这不影响CPU执行它的二进制代码。如果不是多任务以及进程调度的需要,Linux内核可以一直这样走下去。但是因为多任务的需求,Linux必须能支持任务这一特性,任务即进程,或者更简单地说由task_struct对象实例所代表的一段代码的集合,用以完成特定的任务

2016-01-05 18:10:24 129

notepade++ android logger插件

notepade++ android logger插件

2023-07-27

ZoneAlarm505注册机

仅供学习与研究!用完请删除!谢谢!!!!!!!!!!!!!!!!!!!!!!

2010-07-23

NOD32注册机。。。

仅供学习与研究,不可用于任何商业用途!支持正版!谢谢!!!!!!!!!!!!!!!!!

2010-07-23

Gdata2010注册补丁

仅供学习与研究,不可用于任何商业用途!支持正版!谢谢!!!!!!!!!!!!!!!!!

2010-07-23

BitDiffender2010注册机

仅供学习与研究,不可用于任何商业用途!支持正版!谢谢!!!!!!!!!!!!!!!!!

2010-07-23

VMware6.5汉化补丁

VMware6.5汉化补丁,供学习研究,。。。。。。。。。。。。。。。。。

2010-07-23

3ds.Max-2008注册机

3ds.Max-2008注册机,用注册机生成激活码注册就可以用,仅限于学习,用完24小时请自觉删除,支持正版

2010-06-03

空空如也

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

TA关注的人

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