(一)程序编译方式
Linux中的标准C库为glibc,应用程序或多或少都会用到这个库
- 动态链接
- 静态编译
(二)终端
- 终端是硬件设备,关联一个用户接口,如shell
- 进程的类型
- 与终端相关的,通过终端启动
- 与终端无关,操作系统引导启动过程当中自动启动的
(三)操作系统的组成部分
从静态视角来看,由kernal和application组成
(四)FHS:Filesystem Hierarchy Standard
- /bin:所有用户可用的基本命令程序文件
- /sbin:供系统管理使用的工具程序
- /boot:引导加载器必须用到的各静态文件:kernel,initramfs(initrd),grub等
- /dev:存储特殊文件或设备文件
- 设备分为两种类型:字符设备(线性设备),如键盘,显示器;块设备(随机设备),如硬盘
- /etc:系统程序的静态配置文件
- /home:普通用户家目录的集中位置,Optional
- /root:管理员的家目录,Optional,之所以是可选的,因为管理员不该登陆系统
- /lib:为系统启动或者根文件系统上的应用程序(/bin,/sbin等)提供共享库,以及为内核提供内核模块
- libc.so.*:动态链接的C库
- ld*:运行时链接器/加载器
- modules:用于存储内核模块的目录
- /lib64:64位系统特有的存放共享库的路径
- /media:便携式设备挂载点。cdrom,floppy等
- /mnt:其它文件系统的临时挂载点
- /opt:附加应用程序的安装位置,Optional
- /srv:当前主机为服务提供的数据
- /tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录,可供所有用户执行写入操作,有特殊权限
- /usr:全局共享只读数据路径,自己也是层级结构,仅次于根目录第二重要
- bin,sbin:不是开机立刻要用的,可能是在附加程序运行过程中需要用的
- lib,lib64:仅供/usr/bin和/usr/sbin使用的共享库,但是/usr/bin和/usr/sbin使用的共享库也有一部分存放在根目录下的lib和lib64中
- include:C程序用到的头文件
- share:man文档,程序文档放在这里。注:CentOS是这样的,其它发行版本未必
- X11R6:x-window程序的安装位置
- src:程序源码文件
- local:又是一个层级结构,用于安装本地应用程序,或者第三方应用程序,其下的目录结构和/usr很类似,像一个独立王国
- /var:存储经常发生变化的数据的目录,也是一个层级结构。可以具体查FHS标准。
- /proc:基于内存的(临时的)虚拟文件系统,用于为内核及进程在运行时存储其相关信息,它们多为内核参数,例如:net.ipv4.ip_forward,虚拟为net/ipv4//ip_forward,存储于/proc/sys下,因此其完整路径为:/proc/sys/net/ipv4//ip_forward
- /sys:虚拟文件系统,提供了一种比/proc更为理想的访问内核数据的途径,其主要作用在于为管理Linux设备提供一种统一模型的接口。参考:https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/