Feature Phone(功能手机)使用单进程,所有应用以多线程方式展开。无法扩展。
Smart Phone(智能手机)每个应用运行在独立的进程。可扩展。
每个进程在黄色部分都映射到单独的物理内存空间,绝对不会override。红色部分是kernel。
进程边界安全围栏:某个进程crash,不会影响其他进程和系统的正常运行。
当然,如果是红色部分的kernel出现crash,系统也crash。
进程边界安全围栏:全局资源的不可访问性,A进程无法访问B进程的资源。
多用户的需求背景:
1.资源匮乏:比如很多人只能买得起一台计算机,只能大家一起用
2.中央处理:数据统一管理。
每个用户都有自己的工作目录。
把资源分别圈起来分配给每个用户,设置权限,可读、可写或者可执行。
Name是字符串,只是供看的,Identifier才是系统层面的标识,是int的值。
UID:User Identifier
GID:Group Identifier
用户的行为最终表现出来的是一系列进程的running,所以UID/GID其实是进程的UID/GID。
第二列是进程名称,一串int。不同的进程在第一列用不同的UID标识,root对应的int是0,即管理员身份。
以红框部分为例,最前面的d代表资源是文件目录direction。rwx代表UID是xmao的权限,r是read,w是write,x是executable。
r-x是GID是ximao但UID不是xmao的权限,这里只能读和执行,不能写。最后的r-x代表others,也就是UID和GID都不是ximao的情况下的权限,这里只能读和执行,不能写。
第一列是UID,第二列是User的Name(字符串),只是供我们看的,第三列是GID,第四列是Group的Name(字符串),只是供我们看的,第五列是PID,第六列是Process的Name(字符串),只是供我们看的。
chmod 664 :4+2+0=6,4+2+0=6,4+0+0=4,UID对应的权限就是rw- ,GID对应的权限是rw- , others对应的权限是r--。
chmod u-w : owner user,也就是UID对应的权限减去w,得到r--。
chmod g-w : GID对应的权限减去w,得到r--。
chmod a+x : 所有的都加上x,得到 r-xr-xr-x。
GID和others不变,UID如果被修改为rws,s就代表setUID,前提是必须是可执行的,所以s肯定包含了x。
2248开辟了子进程passwd 2445, Real UID继承了2248的Real UID(xmao),而Effective UID提升为root。