自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_34888036的博客

好好学习

  • 博客(5)
  • 收藏
  • 关注

原创 linux中的PCB(进程控制块) task_struct(进程描述符)

进程就是处于执行期的程序,线程是进程中的活动的对象。每个线程都拥有一个独立的程序计数器(PC)、栈、和一组寄存器。内核调用的对象是线程而不是进程。在Linux中,线程的实现非常独特,从内核的角度讲,linux并没有线程的概念。Linux把所有的线程都当成进程来实现,内核没有准备特别的调度算法或是定义特别的数据结构来表征线程。相反,线程仅仅被视为一个与其他进程共享某些资源的进程,每个线程都拥有自己的task_struct。进程和线程都是通过系统调用clone()创建的,只不过传给系统调用的参数不同而已,我们

2021-06-27 19:39:49 2034 1

原创 binder驱动分析

相关源码文件:/drivers/android/binder.c/drivers/staging/android/binder.c1.binder_init用户态的程序调用 Kernel 层方法需要陷入内核态,进行系统调用(syscall),打开 Binder 驱动方法的调用链为: open-> __open() -> binder_open()。 open() 为用户空间的方法,__open() 便是系统调用中相应的处理方法,内部通过查找会找到对应的内核 binder 驱动的 bin

2021-06-26 01:33:41 765 3

原创 虚拟内存和物理内存

一、从程序到进程:我们都知道Linux下一个C程序的生成分为4个阶段:预编译(.i) --> 编译(.s) --> 汇编成目标文件(.o) --> 链接(可执行文件)1.在预编译阶段,它会修改原始的C程序,将源程序翻译成一个ASCII码的以.i结尾的中间文件。它会读取系统头文件stdio.h的内容,并把它直接插入到程序文本中。2.在编译阶段,编译器将以.i为扩展名的文本文件翻译成以.s作为扩展名的文本文件,它包含一个汇编语言程序。3.在汇编阶段,汇编器将以.s为扩展名的文本文件

2021-06-18 00:55:08 4950 3

原创 启动 ServiceManager 进程

相关源码文件:/system/core/rootdir/init.rc/frameworks/native/cmds/servicemanager/service_manager.c/frameworks/native/cmds/servicemanager/binder.cServiceManager 进程是由 init 进程通过解析 init.rc 文件而创建的service servicemanager /system/bin/servicemanager class core

2021-06-10 01:03:01 397

原创 服务的添加和使用过程

相关源码文件:/frameworks/av/media/mediaserver/main_mediaserver.cpp/frameworks/native/libs/binder/ProcessState.cpp/frameworks/av/media/libmediaplayerservice/MediaPlayerService.cpp/frameworks/native/libs/binder/IServiceManager.cpp/frameworks/native/include/bi

2021-06-02 00:03:09 349

空空如也

空空如也

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

TA关注的人

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