一、进程和进程边界:
- 可执行文件、进程和线程的概念:可执行文件,没执行不活动也就是一个普通文件;进程,可执行文件或者说程序一次运行活动的表现,进程是系统进行资源分配和调度的一个独立单位;线程,是进程的一个实体,是CPU调度和分派的基本单位,并发的执行序列。线程自己基本上不拥有系统资源,拥有寄存器和栈等运行中必不可少的资源,但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。
- 进程的地址空间边界理解:如图
- 进程边界的安全围栏作用:Crash的不可扩延性,对于android操作系统来说,一个应用程序的崩溃是不会扩延到对操作系统或者其他应用造成影响,但是对非智能手机就不一样,它是单进程多任务的操作系统,某个应用的Crash就会对导致整个进程Crash,从而导致手机重启或者关机,而智能手机是多进程多任务的操作系统,一个进程的Crash,加上进程边界的安全围栏作用是不会对其他进程造成影响的;全局数据和服务的不可访问性,比如一个进程中的变量A和函数B,另一个进程是不能够通过读取A地址来获得A的指,也不能调用B地址的函数。这是因为两个进程映射到的物理地址是不一样的。这样很好的保证了应用的独立性和安全性,当然android也提供了其他方式来解决进程间通信的问题,如ContentProvider内容提供者。
- 多用户的需求背景:资源匮乏,中央的统一管理,现实中还是其他有很多方面的原因而要用到多用户的操作系统。
- 多用户的边界:独立的工作目录,每个用户都有自己的独立空间,互不干扰;可操作或访问的资源,每个用户对某一种资源的权限是不一样的;可执行的操作,每个用户对某一个资源拥有的权限也是不一样的;UID和GID,用户名只是用来看的,Identifier才是系统层面的标识,而用户的行为就是一系列进程的行为,所以多用户的特性标识其实就是进程的UID和GID。
PS:笔记内容可能记录的不是很准确,请大家多多包涵!