Linux文件系统:
内核不负责任何的具体的工作,外部工作需要外部程序实现。
glibc:glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc,glibc除了封装[linux]操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。
程序的编译方式
静态编译
文件比较大,编译时把库函数复制到程序中
动态编译
依赖性较强,
进程的类型:
终端:硬件设备,关联一个用户接口
与终端相关:通过终端启动
与终端无关:操作系统引导启动过程中自动启动
操作系统的组成:
静态:kernel,application
文件系统:层级结构
[FHS](http://refspecs.linuxfoundation.org/fhs.shtml):
Filesystem Hierarchy Standard
/bin:所有用户可用的基本命令程序文件;
/sbin:供系统管理员使用的工具程序;
/boot:引导加载器必须用到的各静态文件【kernel,initramfs(initrd),grub等】
/dev:存储特殊文件或设备文件;
设备有两种类型:
字符设备(线性设备):数据交换是以字符为单位进行的【例如键盘、显示屏】
块设备(随机设备):可以把多个程序打包为一个单位【例如硬盘】
/etc:系统程序的配置文件,只能为静态
/home:普通的家目录的集中位置:/home/USERNAME,管理员root的家目录可选【因为不建议使用管理员登陆系统】
/lib:为系统启动或根文件系统上的应用程序【/bin,/sbin】提供共享库,以及为内核提供内核模块。
libc.so.*:动态链接的C库;
ld*:运行时链接器/加载器;
modules:用于存储内核模块的目录。
/lib64:64位系统特有的存放64位共享库的路径
/media:为便携式设备提供挂载点,如cdrom,floppy 等
/mnt:其他文件系统的临时挂载点
/opt:optional,附加程序【第三方】的安装位置【可选路径】,不过大家都不喜欢当备胎,都不愿意承认自己是附加程序。
/srv:当前主机位服务提供的数据;
/tmp:Temporary files为那些会产生临时文件的程序提供的用于存储临时文件的目录,可供所有用户执行写入操作,有特殊权限
/usr:/usr hierarchy universal shared read-only data全局共享的只读数据路径
有子目录:bin.sbin,lib,lib64,include(c程序头文件),share(命令手册页和自带文档等架构特有的文件存储位置),local(另一个层级目录),XllR6(X-windows程序的安装位置),src(程序源码文件的存储位置)
/usr/local:Local hierarchy让系统管理员安装本地应用程序,也通常用于安装第三方程序
/var :/var hierarchy存储经常变化的数据的目录
/proc:基于内存的(关机就清空)虚拟文件系统,用于为内核及进程存储其相关信息,多为内核参数【例如net.ipv6.ip_forward虚拟为net/ipv4/ip_forward,存储与/proc/sys/下】
/sys:虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径,其主要作用在于为管理Linux设备提供一种统一模型的接口。
参考文档:https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/