Linux的主要功能
Linux系统为用户提供了强大的管理功能,主要包括存储管理,系统用户和用户组管理,进程管理,文件管理等
存储管理
Linux内核采用虚拟页似存储管理,采用三级映射机制实现从线性地址到物理地址的映射。这三级映射机制包括:
1.页面目录(PGD)
2.中间目录(PMD)
3.页面表(PT)
具体的映射过程为:
(1)从内存的CR3寄存器中找到PGD地址。
(2)从线性地址的最高位段为下标,在PGD中找到指向PMD的指针。
(3)以线性地址的次位段为下标,在PMD中找到指向PT的指针。
(4)在PT中找到指向页面(PGD)的指针。
(5)线性地址的最后位段为此页中的偏移量,这样就完成了从线性地址到物理地址的映射过程。
对于32位的微机平台,如Intel的X86采用段,页式的两层映射机制,而64位的微处理器采用三级分页技术。所以对于传统的32位平台,Linux采用让PMD(中间目录)全部为0来消除中间目录域,这样就把Linux逻辑上的三层映射模型落实到X86结构物理上的二层映射,从而保证了Linux对多种硬件平台的支持。
用户和用户组管理
Linux系统是一个多用户的操作系统,任何一个要使用系统资源的用户,都必须向系统管理员申请一个账号,然后以这个账号的身份进入系统。
每个账号都拥有一个唯一的用户名和口令,正确输入命令和口令后,才能进入系统和自己的家目录
管理用户一般就以下几个方面:
- 用户账户的添加,删除与修改
- 用户口令的管理
- 用户组的管理
进程管理
前面也说了,Linux是一个多用户,多任务的分时操作系统。
- 多用户指的是多个用户可以在同一时间使用操作系统
- 多任务指的是Linux可以同时执行多个任务,它可以在还未执行完一个任务时又执行另个任务。
- 操作系统管理着多个用户的请求和多个任务的执行。但是大多数操作系统都只有一个cpu和一个内存,不过可能有多个二级存储磁盘和多个输入/输出设备
- 操作系统管理着这些资源,并在多个用户间共享资源,当某个用户提出一个请求时,好像系统只被该用户独自占有。而实际上操作系统监控着一个等待执行的任务队列,这些任务包括用户作业,系统任务,系统中断等。
- 操作系统根据每个任务的优先级别,为他们分配合适的时间片段,每个时间片段大约有零点几毫秒,足够计算机完成成千上万的指令。每个任务都会被系统运行一段时间然后挂起,系统转而去处理其他任务;过一段时间后再回来处理这个任务,直到该任务完成,才从任务队列中删除。
- 在Linux操作系统中,任务被称之为“进程”。进程终其一生存在多个状态,正是有了操作系统管理着进程在多个状态之间的轮换,才能控制多个进程之间协调有序地执行。
文件管理
Linux的常见文件类型有七种
文件属性 | 文件类型 |
---|---|
- | 常规文件,即file |
d | 目录文件 |
b | block device 即块设备文件,如硬盘;支持以block为单位进行随机访问 |
c | character device 即字符设备文件,如键盘支持以character为单位进行线性访问 |
l | symbolic link 即符号链接文件,又称软链接文件 |
p | pipe 即命名管道文件 |
s | socket 即套接字文件,用于实现两个进程进行通信 |
Linux用一个称为VFS(虚拟文件系统)的接口将真正的文件系统和操作系统以及其他服务器分离,掩盖不同文件系统之间的差异,使所有的文件系统在操作系统和用户程序里看起来都是相同的。不负责任的讲:在Linux中,所有的操作都是对文件的操作
由于Linux是一个多用户的操作系统,为了防止出现删库跑路(rm -rf /*
)这样的事情发生,就对文件的操作设定了权限(文件权限是系统安全的一个主要因素)
linux文件的权限分为三种:读(r),写(w),执行(x)都是字面意思
另外,在Linux中,一个分离的文件系统不是通过设备标识(驱动器号)来访问的,而是把它合并到一个单一的目录树结构中去,通过目录来访问。