首先看一张Android系统启动流程图: 一个进程最重要的两项指标一个是启动了Binder线程池,也就是可以进程Binder进程间通信了。另一个是启动了Handler消息循环,可以使用了消息循环机制。 1、那么systemserver进程是什么时候实现上面两个机制的呢?见代码: 启动了Binder线程池。是子线程池。public static final void zyg...
分类:
移动开发 时间:
2015-06-28 12:43:27
阅读次数:
161
转载请注明出处:jiq?钦's
technical Blog
(1) CPU自身初始化:
CPU加电之后需要进行一系列的初始化工作;
(2) CPU加载BIOS(Basic
InputOutput System):
CPU执行一个固定的位置(一般是0xFFFFFFF0)的指令。这是一条跳转指令,跳转到BIOS代码的首部。BIOS固化在主板上一个很小的ROM中,主要完...
分类:
系统相关 时间:
2015-06-21 18:36:24
阅读次数:
194
Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段:
1. 内核的引导。
2. 运行init。
3. 系统初始化。
4. 建立终端 。
5. 用户登录系统。
内核引导
当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。操作系...
分类:
系统相关 时间:
2015-06-10 19:31:48
阅读次数:
159
简介:bootchart是一个用于linux启动过程性能分析的开源软件工具,在系统启动过程自动收集CPU占用率、进程等信息,并以图形方式显示分析结果,可用作指导优化系统启动过程。bootchart是一个对linux启动流程进行分析得开源软件工具。android中有集成bootchart源码,路径为s...
分类:
其他好文 时间:
2015-06-08 19:12:56
阅读次数:
237
本文是《Android内核开发》系列的第六篇文章,前面的几篇文章介绍了Android内核开发相关的基础知识,包括:Android源码的下载、版本和分支介绍、编译和烧写等等,从本文起就要开始真正地进行Android内核的学习及实战了。学习任何软硬件系统,研究系统启动过程都是一种非常有效..
分类:
移动开发 时间:
2015-06-07 21:42:47
阅读次数:
410
注册表是视窗系统的一个核心的数据库,在这个数据库中存放中与系统相关的各种参数,这些参数直接控制中系统的启动、硬件的驱动程序安装信息以及在视窗系统上运行的各种应用程序的注册信息等。这就意味着,如果注册表因为某些原因受到了破坏,轻者是视窗系统启动过程出现异常,重者就有可能导致整个系统的完全瘫痪。所以正确...
Linux系统的启动方式有点复杂,而且总是有需要优化的地方。传统的Linux系统启动过程主要由著名的init进程(也被称为SysV init启动系统)处理,而基于init的启动系统被认为有效率不足的问题,systemd是Linux系统机器的另一种启动方式,宣称弥补了以传统Linux SysV ini...
分类:
系统相关 时间:
2015-05-22 09:28:16
阅读次数:
218
kdump是LinuxKernel崩溃时的转储机制,简单理解就是在系统启动过程中如果Kernel因为某些原因崩溃了,kdump就会负责记录日志以便排查原因。在CentOS6等Linux发行版中,即便采用最小化安装,kdump也会作为服务安装到系统中,此时可能因为我们对Linux分配的内存的限制导致kdump服..
分类:
系统相关 时间:
2015-05-15 09:18:06
阅读次数:
6002
①服务器加电,加载BIOS信息,BIOS进行系统检测,依照BIOS设定,找到第一个可以启动的设备(一般为硬盘)②读取第一个设备的MBR(主引导记录),加载MBR中的BOOTLoader(启动引导程序)③依照BOOTLoader的设置加载内核,内核会进行一次系统检测,同时还会通过加载动态模块的形..
分类:
其他好文 时间:
2015-05-11 18:17:01
阅读次数:
145
系统的加载过程POST-->BIOS(BOOTsequence)-->MBR(bootloader,446)-->kernel(将kernel加载到内存并解压,利用虚根系统加载硬盘驱动(当伪文件系统退出时,需将/dev,/sys,/proc目录搬运至新根))-->initrd(RHLE5)/initramfs(RHEL6)-->init进程(用户空间的主导程..
分类:
系统相关 时间:
2015-05-08 00:16:41
阅读次数:
340