Skip to content

Commit ddd5aae

Browse files
committed
add files
1 parent cd42554 commit ddd5aae

5 files changed

Lines changed: 257 additions & 57 deletions

File tree

OperatingSystem/1.操作系统简介.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@
134134

135135
目前的Android系统大多运行在ARM处理器之上。ARM本身是一个公司的名称,从技术的角度来看,它又是一种微处理器内核的架构。
136136

137-
对于ARM处理器,当复位完毕后,处理器首先还行其片上ROM中的一小块程序。这块ROM的大小一般只有几KB,改段程序就是Bootloader程序,这段程序执行时会根据处理器上一些特定引脚的高低电平状态,选择从何种物理接口上装载用户程序,比如USB口、SD卡、并口Flash等。
137+
对于ARM处理器,当复位完毕后,处理器首先还行其片上ROM中的一小块程序。这块ROM的大小一般只有几KB,该段程序就是Bootloader程序,这段程序执行时会根据处理器上一些特定引脚的高低电平状态,选择从何种物理接口上装载用户程序,比如USB口、SD卡、并口Flash等。
138138

139139
多数基于ARM的实际硬件系统,会从并口NAND Flash芯片上的0x00000000地址处装载程序。对于一些小型嵌入式系统而言,该地址中的程序就是最终要执行的用户程序;而对于Android而言,该地址中的程序还不是Android程序,而是一个叫做uboot或者fastboot的程序,其作用是初始化硬件设备,比如网口、SDRAM、RS232等,并提供一些调试功能,比如向NAND Flash中写入新的数据,这可用于开发过程中的内核烧写、升级等。
140140

@@ -146,6 +146,12 @@ Linux内核被装载后,就开始进行内核初始化的过程。
146146

147147

148148

149+
![](https://raw.githubusercontent.com/CharonChui/Pictures/master/android_system_start.png)
150+
151+
152+
153+
154+
149155
## CPU(Central Processing Unit)
150156

151157
CPU(中央处理器)是计算机的大脑,它主要和内存进行交互,从内存中提取指令并执行它。它是一块超大规模的集成电路(Integrated Circuit),是信息处理、程序运行的最终执行单元。其功能主要是解释计算机指令以及处理计算机软件中的数据。由于访问内存获取执行或数据要比执行指令花费的时间长,因此所有的 CPU 内部都会包含一些寄存器来保存关键变量和临时结果。因此,在指令集中通常会有一些指令用于把关键字从内存中加载到寄存器中,以及把关键字从寄存器存入到内存中。从功能方面来看,CPU的内部主要由寄存器,控制器,运算器构成,各部分之间由电流信号相互连通。其中运算器负责算术运算和逻辑运算,控制器负责计算指令的解析,产生各种控制指令,寄存器组用来临时存放参加运算的数据和计算的中间结果。CPU计算结果最终需要写到内存中,内存的存取速度远低于CPU,为提升数据交换速率,CPU内部一般还集成了高速缓存(CACHE),其中缓存分为一级缓存和二级缓存,一级缓存和CPU速率相当,二级缓存次之。

OperatingSystem/2.进程与线程.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,11 @@ Linux为进程间通信和同步提供了各种机制。这里只是几种。
324324

325325
应用程序通过调用操作系统提供的库与操作系统进行交互,这些库合起来构成Android框架(Android framework)。这些库中有一些可以在进程内部执行其工作,但是许多库需要与其他进程执行进程间通信,作者通常是在system_server进程中提供服务的。
326326

327+
### ServiceManager
327328

329+
Android Binder的管理服务。
330+
331+
对于Binder驱动而言,**ServiceManager是一个守护进程,更是Android系统各个服务的管理者**。Android系统中的各个服务,都是添加到ServiceManager中进行管理的,而且每个服务都对应一个服务名。当Client获取某个服务时,则通过服务名来从ServiceManager中获取相应的服务。
328332

329333
### Zygote
330334

0 commit comments

Comments
 (0)