Linux 和 UNIX
epoll,获取文件I/O事件通知的一种机制。
inotify,监控文件和目录变化的一种机制。
capabilities,为进程赋予超级用户的部分权限的一种机制。
扩展属性。
i-node标记。
clone()系统调用。
/proc文件系统。
在文件I/O、信号、定时器、线程、共享库、进程间通信以及套接字方面,Linuxs所专有实现的细节。
POSIX.1b实时性扩展包括文件同步、异步I/O、进程调度、高精度时钟和定时器、采用信号量、共享内存,以及消息队列的进程间通信。这3种进程间通信方法的称谓前通常冠以POSIX,以示其有别于与之类似而又为古老的System V信号、共享内存以及消息队列。
POSIX.2这一与POSIX.1相关的标准,对shell和包括C编译器命令行接口在内的各种UNIX工具进行了标准化。
内核的职责..
内存管理。
进程调度--
Linux虚拟内存管理机制两方面优势:
1进程与进程之间、进程与内核之间彼此隔离,因此一个进程无法读取或修改内核或其他进程内存内容。
2、只需将进程的一部分保持在内存中,这不但降低了每个进程对内存的需求量,而且还能再RAM中同时加载更多的进程。这也大幅提升了如下事件的发生概率。在任一时刻,CPU读又知识一个进程可以执行,从而使得对CPU资源的利用更加充分。
提供了文件系统。
创建和终止进程。
对设备的访问。
联网。
提供系统调用应用编程接口(API)。
内核解决(多进程)访问硬件资源时可能引发的冲突,用户和进程对此则往往一无所知。
内核态和用户态。执行硬件指令可使CPU在两种状态间来回切换。与之对应,可将虚拟内存区域划分(标记)为用户空间部分或内核空间部分。在用户态下运行时,CPU只能访问被标记为用户空间的内存,试图访问属于内核空间的内存会引发硬件异常。当运行于核心态时,CPU既能访问用户空间内存,也能访问内核空间内存。
仅当处理器在和心态运行时,才能执行某些特定操作,这样的例子包括:执行宕机(halt)指令去关闭系统,访问内存管理硬件,以及设备I/O操作的初始化等。实现者们利用这一硬件设计,将操作系统至于内存空间,这确保了用户进程既不能访问内核指令和数据结构,也无法执行不利于系统运行的操作。
shell 是一种具有特殊用途的程序,主要用于读取用户输入的指令,并执行相应的程序以相应命令。有时,人们也称之为命令解释器。
术语登陆shell(login shell)是指用户刚登陆系统时,由系统创建,用以运行shell的进程。
而对于UNIX系统而言,shell只是一个用户进程。shell的种类繁多,登入同一台计算机的不同用户同时可使用不同的shell。
以下几种重要的shell:
1、Bourne shell(sh)
2、C shell
3、Korn shell
4、bash
用户和组
系统会对每个用户的身份做唯一标识,用户可隶属于多个组。
用户。系统的每个用户都用有唯一的登录名(用户名)和与之相对的整数型用户ID(UID)。系统密码文件/etc/passwd 为每个用户都定义有一行记录,除了上述两项信息外,改记录还包括如下的信息。
登陆shell:执行以解释用户命令的程序名称。
该记录还能以加密形式保存用户密码。然而,处于安全考虑,用户密码往往存储于单独的shadow密码文件中,仅供特权用户阅读。
组--每个用户组都对应这系统组文件/etc/gruop中的一行记录,该记录包含如下信息。
组名:(唯一的)组名称。
组ID(GID):与组相关的整数型ID。
用户列表,隶属于改组的用户登陆名列表(通过密码文件记录的group ID 字段未能标识出的该组其他成员,也在此列),以逗号分隔。
超级用户。