首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android init 启动

Android是基于Linux系统的,所以Android启动将由Linux Kernel启动并创建init进程。该进程是所有用户空间的鼻祖。...在init进程启动的过程中,会相继启动servicemanager(binder服务管理者)、Zygote进程(java进程)。而Zygote又会创建system_server进程以及app进程。...下面我尝试来分析Android启动过程中关于init进程的创建过程。 此次分析过程基于Android 10.0 init init进程是Android启动过程中在Linux系统中用户空间的第一个进程。...关于Zygote的启动后续再分析。 今天主要尝试分析了一下Android在Linux系统下的init启动涉及的主要流程。...可见init启动主要涉及的工作是: 创建与挂载启动所需要的文件系统 初始化属性服务 创建single句柄,来监听子进程,防止僵尸进程的产生 开启属性服务 解析.rc文件并启动Zygote进程

2.5K30
您找到你想要的搜索结果了吗?
是的
没有找到

linux_init_and_systemd

一个问题 今天在重启 nginx 服务的时候,注意到有这样一条输出 还有在设置 nginx 开机启动,一般的做法是 把脚本放在 /etc/init.d/ 下然后 用 chkconfig 管理 不过这些都是...System V Release 4,或者称为SVR4,是最成功的版本,成为一些UNIX共同特性的源头, 例如“SysV 初始化脚本”(/etc/init.d),用来控制系统启动和关闭, System...其开发目标是提供更优秀的框架以表示 系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动, 同时达到降低Shell的系统开销的效果,最终代替现在常用的System V与BSD风格init程序。...自带启动脚本兼容用的systemd启动脚本包以方便用户,使用户能“开箱即用” Chakra GNU/Linux,在2012.10的光盘映像档发布后默认使用systemd。...Debian GNU/Linux,在2014年的技术委员会的init系统投票中决定在Debian 8“Jessie”中以Linux为核心的版本转换到systemd[16]。

1.9K10

cloudbase-init启动模式为.cloudbase-init存在隐患

建议cloudbase-init启动模式改为“本地系统账户”,目前发现....\cloudbase-init启动模式存在explorer.exe异常的概率 image.png 异常现象: explorer loop crash(explorer循环crash,一闪一闪,appplication.evtx...的启动模式,制作镜像的几个注意事项: 如果原机器有用userdata,不要执行清理cloudbase-init注册表,原因是,如果创建机器时传了userdata,而userdata代码里有写操作的代码...,那你删除了cloudbase-init的注册表会导致初始化标记为0,下次开机的时候cloudbase-init会认为机器没有初始化过,是新机器,就会自动触发重新执行一遍userdata里的代码,严重点假设...为本地系统帐户、清理本地用户和组里面的cloudbase-init用户 services.msc (在服务列表里改启动模式为“本地系统帐户”) lusrmgr.msc (删掉cloudbase-init

1.3K20

Android系统启动——2init进程

本次系列的内容如下: Android启动流程——1 序言、bootloader引导与Linux启动 Android系统启动——2 init进程 Android系统启动——3 init.rc解析...、Linux Kernel和Android系统服务,一般情况下,他们都会相应的启动对动画对应。...前面我们已经知道Andorid系统是如何启动的BootLoader和Linux Kernel的。...二、Init.cpp initLinux系统中用户空间的第一个进程(pid=1),Linux Kernel启动后,会调用/system/core/init/Init.cpp的main()方法 那我们就来看下...在启动脚本init.rc中,我们可以指定一个进程在退出之后会自动重启。在这种情况下,函数restart_processes就会检查是否存在需要重新启动的进程,如果存在的话,那么就将它重新启动起来。

2.8K20

Android系统启动流程(一)解析init进程

2.引入init进程 说到init进程,首先要提到Android系统启动流程的前几步: 1.启动电源以及系统启动 当电源按下时引导芯片代码开始从预定义的地方(固化在ROM)开始执行。...3.linux内核启动 内核启动时,设置缓存、被保护存储器、计划列表,加载驱动。当内核完成系统设置,它首先在系统文件中寻找”init”文件,然后启动root进程或者系统的第一个进程。...4.init进程启动 讲到第四步就发现我们这一节要讲的init进程了。关于Android系统启动流程的所有步骤会在本系列的最后一篇做讲解。..., 6.init启动zygote 讲完了解析service,接下来该讲init是如何启动service,在这里我们主要讲解启动zygote这个service。...在linux新的内核中,epoll用来替换select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。

1.7K60

Android系统启动——3init.rc解析

常见的如下: on on early-init:在初始化早期阶段触发 on init:在初始化阶段触发 on late-init:在初始化晚期阶段触发 on boot/charger:当系统启动/充电时触发...(action_queue); 其中service_list列表包括了启动脚本所有"service",action_list列表包括了启动脚本中所有"action",init脚本的解析结果就是生成这两个列表...五、init.rc命令执行的顺序 我们知道解析init.rc会把一条条命令映射到内存中,然后依次启动。那启动顺序是什么?...即是按照init.rc里面的顺序大致顺序如下: on early-init on init on late-init //挂载文件系统,启动核心服务 trigger post-fs trigger...class_start core //启动core class 即如下顺序 首先是 on early-init -> init -> late -init -> boot 六、init总结 这里里面总结下

3.9K20
领券