毕业设计做网站怎么答辩,电商网站开发流程图,卖房网站母亲节做什麽活动,基于jsp企业网站开发设计答辩ppt当按下电源时#xff0c;引导芯片代码会从预定义的地方(固化在ROM) 开始执行,加载引导程序BootLoader到RAM,然后执行。 启动内核的第一个进程idle(pid0),idle进程是Linux系统第一个进程#xff0c;是init进程和kthreadd进程的父进程。
idle的主要作用
初始化进程以及内存管… 当按下电源时引导芯片代码会从预定义的地方(固化在ROM) 开始执行,加载引导程序BootLoader到RAM,然后执行。 启动内核的第一个进程idle(pid0),idle进程是Linux系统第一个进程是init进程和kthreadd进程的父进程。
idle的主要作用
初始化进程以及内存管理加载硬件的驱动程序创建init进程该进程的pid1init进程是第一个用户空间的进程创建kthreadd进程该进程pid2并且该进程仍属于内核空间idle进程自己也运行在内核空间
关系如下图所示: kthreadd进程是Linux系统内核管家所有的内核线程都是直接或间接以它为父进程 对于kthreadd进程我们其实并不需要知道太多毕竟我们正常开发用不到关注内核相关的代码。我们只需要知道几点
kthread的进程pid2内核相关的资源都是由这个进程创建而来的。该进程以及由它产生的子进程都运行在内核空间 init进程是Linux系统第一个用户进程是Android系统应用程序(用户空间)的始祖我们的app都是直接或间接以它为父进程。 init主要作用
该进程最主要的作用就是fork出了Zygote进程同时会创建ServiceManager进程。即我们俗称的服务大管家。 最重要的进程Zygote
Zygote英文翻译为受精卵我们平时启动的所有进程等都是由这个进程复制而来。所谓复制就是这个进程会复制出两份一模一样的进程其中一个继续当Zygote进程另一个进程执行完相关代码就变成了你想启动的进程。但是在fork出别的进程之前他要先进行一些初始化这样fork出来的进程就和他一样自带这些初始化好的功能而不是在初始化一遍。
Zygote的主要作用
创建虚拟机注册JNI启动ZygoteServer实际就是Socket用来跨进程通信preload 预加载资源之后复制出的进程就都已经是加载过资源的进程了启动SystemServer循环等待一旦AMS通知创建进程就会进行进程分裂。
这里多说一嘴Zygote进程本身创建了JVM虚拟机注册了JNI也就是说我们的代码从这里开始才真正的开始可以执行Java代码之前运行的都是C代码。 另外由于在fork进程之前进行了创建虚拟机注册JNI以及预加载等工作。所以我们fork出的进程从出生开始就自带了虚拟机并且已经注册好了JNI代码相应的资源也已经加载完毕了。 SystemServer
几乎所有服务都是由SystemServer创建的。其中包括AMS,WMS,PMS等重要服务都是运行在该进程上的并且在该进程上注册到ServiceManager进程中。
Launcher
各位有没有想过我们每天滑动手机时的界面到底是什么。其实它和我们开发的手机程序一样都是一个App。只不过它是由Android系统自动启动的。并且它可以把我们的所有安装的App全都显示出来仅此而已。 当我们点击Launcher上的App图标时它会和AMS进行通信AMS又和Zygote进行通信。Zygote进程fork出了一个新进程,并执行相关代码从而我们编写的App就这样被创建了出来。