2.1内核
一般情况下,Linux内核可执行文件的路径名为:/boot/vmlinuz。其中z表示内核经过了压缩。
内核态和用户态
与之对应,将虚拟内存分为用户空间和内核空间。内核态时可以同时访问这两种内存。
2.2 shell
是一个读取输入输出的程序,是一个用户进程。历史上几种类型:bourne shell(sh);C shell(csh);korn shell(ksh);bourne again shell(bash)
2.3用户和组
一个用户可属于多个组。用户信息存在/etc/passwd中。组信息存在/etc/group中。
超级用户的ID为0,名字为root。
2.4单根目录层级、目录、链接及文件
内核:单根目录结构(相反,Windows中每个磁盘都有各自的目录结构),其根基名为“/”,如下图:
文件类型
普通文件(纯文本文件)、设备、管道、套接字、目录、符号链接
路径和链接
目录的内容采用表格形式:文件名+指针。每个文件可以有多条链接、多个名称、在相同或者不同目录出现。每个目录至少包含两条记录:.和..。前者是指向自身的链接,后者是指向其父目录的链接。除了根目录,每个目录都有父亲。对根目录来说,..指向自身(因此,/..等于/)。
符号链接
类似普通的链接,作用是给文件起个别名。一个符号链接对应目录中的一条记录,即“文件名+指针”,只不过指针指向的文件内容是另一个文件名。“另一文件”也称为目标。普通链接称为hard link,而符号链接称为soft link。
文件名
建议使用字母、数字、点、下划线、连字符,即[-._a-zA-Z0-9],称作可移植文件名字符集。其他字符需要进行转义(在前面插入"\")。此外避免使用“-”作为文件名的起始符,会被误认为是命令行选项开关。
路径名
可在路径名中任意位置引入字符串“..”,来指代路径名中当前位置的父目录。
路径名分为绝对路径名和相对路径名。绝对路径名以“/”开始;相对路径名缺少了起始的“/”。
文件的所有权和权限
每个文件都有与之关联的user ID和group ID。系统把用户分为3类,属主、group ID下的属组成员、其他。为以上3种用户分别设置3种权限,(共计9种权限位):读(只允许查看文件内容)、写(允许修改文件内容)、执行(允许执行文件)。
2.5文件I/O模型