Linux操作系统安全机制
先说明 Linux 更适合学习,Android也基于Linux.
进程和线程
- 进程: 可执行文件的活动表现,如Android中Activity的生命周期.对于进程来讲,他有很多独立的空间,如堆和栈,所以进程是资源的最基本的分配单位.
- 线程: CPU(核的调度单位),他可以让一个进程的任务在CPU下多管齐下,并发执行.所以线程是CPU的最小调度单位.
进程的地址空间边界
一个虚拟的地址空间,只有当程序运行的时候才会分配具体的物理空间。由此我们可以得知,程序的虚拟地址相对来说是固定的,而物理地址则随着每一次程序的运行而有所不同。
进程边界的安全围栏:Crash的不可延续性
Windiows: 也就是说当某一进程对OS的某块内存进行written
,但是该内存快是only read
的,这时改进程就会发生crash,但是他的crash不会影响到其他应用的进程,如chrome,360等应用不受其影响.这就是Crash的不可延续性.
Android: 常见的crash是 Force close
塞班: 诺基亚时代的手机,那时候的系统是没有进程边界的安全围栏的,在对物理内存地址空间这块都是映射同一块,也就是说只要当一个发生了crash,那么整个机子就会重启.那时对于那种crash是非常谨慎的,在测试这块是做最多的.
进程边界的安全围栏:全局数据和服务的不可访问性
存储在两个不同的块,提高了安全.
如A项目无法对B项目的私密信息进行访问,因为这两个项目的存储区是在两块不同的地址范围.
多用户和多用户边界
- 多用户的需求背景&