首页
学习
活动
专区
工具
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系统启动流程(一)解析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.7K20

Linux操作系统从开机启动到完成详细解析

类似于 Windows NT,Linux系统启动过程需要打开的服务项目也是数量极大的。...加载内核 LILO启动之后,如果你选择了Linux作为准备引导的操作系统,第一个被加载的东西就是内核。...内核挂装了根文件系统之后,将启动并运行一个叫做 init的程序。 注意:在这里我们故意略去了Linux内核启动的许多细节,这些细节只有内核开发人员才感兴趣。...init进程 init进程是非内核进程中第一个被启动运行的,因此它的进程编号PID的值总是1。init读它的配置文件/etc/inittab,决定需要启动的运行级别(Runlevel)。...存放在/etc/rc.d/init.d子目录中的、被符号链接上的命令脚本程序是真正的实干家,是它们完成了启动或者停止各种服务的操作过程。

1K20

浅析 Linux 初始化 init 系统

近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经逐渐淡出历史舞台,新的 UpStart 和 systemd 各有特点,越来越多的 Linux 发行版采纳了...本文简要介绍了这三种 init 系统的使用和原理,每个 Linux 系统管理员和系统软件开发者都应该了解它们,以便更好地管理系统和开发应用。...浅析 Linux 初始化 init 系统,第 1 部分: sysvinit 浅析 Linux 初始化 init 系统,第 2 部分: UpStart 浅析 Linux 初始化 init 系统,第 3 部分...: Systemd Systemd主要的设计目标是克服传统Linux主流启动程序SysVinit 固有的缺点,提高系统的启动速度。...事实上Systemd的作用远不仅是启动系统,它还接管了系统服务的启动、结束、状态查询和日志归档等职责,并支持定时任务和通过特定事件(如插入特定USB设备)和特定端口数据触发的任务。 ?

2.3K90

Linux】systemv init和systemd的区别

引言 在Linux操作系统中,系统初始化和服务管理是操作系统的核心组成部分。随着时间的推移,Linux系统采用了不同的初始化系统,其中最常见的是systemv init和systemd。...SystemV Init简介 SystemV Init(简称SysV Init)是Linux系统中的一种较早期的初始化系统,用于控制系统的启动和服务管理。...引入了简单的脚本和运行级别的概念,SysV Init在一段时间内是Linux系统的标配初始化系统。...引导加载程序: 引导加载程序(如GRUB)加载Linux内核。 内核初始化: Linux内核初始化系统的关键组件,然后启动第一个用户空间进程。...SysV Init启动: 第一个用户空间进程负责启动SysV Init,根据默认或指定的运行级别执行相应的启动脚本。

19410

Linux 内核 内存管理】Linux 内核内存布局 ④ ( ARM64 架构体系内存分布 | 内核启动源码 start_kernel | 内存初始化 mm_init | mem_init )

文章目录 一、ARM64 架构体系内存分布 二、Linux 内核启动源码 start_kernel 三、内存初始化源码 mm_init 四、内存初始化源码 mem_init 一、ARM64 架构体系内存分布...内核启动源码 start_kernel ---- 在 Linux 内核初始化完成后 , 会在 " 初始化内存 " 时 , 输出 内存布局 ; Linux 内核启动源码是定义在 linux-5.6.18...\init\main.c 源码中的 asmlinkage __visible void __init start_kernel(void) 函数 ; 在 Linux 内核启动方法 中 , 调用了 mm_init...(0); vfs_caches_init_early(); sort_main_extable(); trap_init(); mm_init(); // ... } Linux 内核 启动源码...四、内存初始化源码 mem_init ---- 在 linux-5.6.18\init\main.c#795 定义的 mm_init 方法 中 , 调用了 mem_init 方法初始化内存 , 该方法定义在

6.8K20

史上最详细linux启动过程讲解---没有之一

对于linux系统的初学者来说,理解并掌握linux系统启动流程能够使你够深入的理解linux系统,还可以通过系统的启动过程来分析问题解决问题。...Linux系统的启动流程 ---- 关于linux系统的启动流程可以分为以下步骤: POST(加电自检)–>加载BIOS(Basic Input/Outpu System)–>确定启动设备...(Boot sequence)、加载Boot Loader–>加载内核(kernel)初始化initrd–>运行/sbin/init初始化系统–>打印用户登录提示符 下面让我们逐步剖析说明系统启动过程...4、运行/sbin/init,进行系统初始化 内核并加载进内存运行并以读写方式挂载完根文件系统后,执行第一个用户进程initinit首先运行/etc/init/rcS.conf脚本,如下图 ?...事实上init执行/etc/rc.d/rc.sysinit的初始化将会做很多设置: 1、获得网络环境 2、挂载设备 3、开机启动画面Plymouth(

20.9K83
领券