程序编译方式

  动态链接:

    动态链接可节省系统资源

  静态编译:

    编译出文件体积大于动态链接,可移植任何一台服务器运行,但有可能会占有较多资源


  进程的类型:

    终端:硬件设备,关联一个用户接口

    与终端相关:通过终端启动

    与终端无关:操作引导启动过程当中自动启动


FHS:Filesystem Hierarchy Standard

从网上找了一个图(将就看吧):

Linux基础入门--文件系统结构(四)_基础入门

/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:附加应用程序的安装位置;可选路径;
/srv:当前主机为服务提供的数据
/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;

/usr:usr Hierarchy,全局共享的只读数据路径;

  bin, sbin

  lib, lib64

  include:C程序头文件;

  share:命令手册页和自带文档等架构特有的文件的存储位置

  local:另一个层级目录;

  X11R6:X-Window程序的安装位置

  src:程序源码文件的存储位置


/usr/local:Local hierarchy,让系统管理员安装本地应用程序;也通常用于安装第三方程序;

/var:/var Hierarchy,存储常发生变化的数据的目录;

  cache Application cache data(应用程序缓存数据)

  lib Variable state information(程序状态数据)

  local Variable data for /usr/local(为/usr/local提供变化数据)

  lock Lock files

  log Log files and directories

  opt Variable data for /opt

  run Data relevant to running processes(运行进程变化的数据)

  spool Application spool data

  tmp Temporary files preserved between system reboots


/proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息;它们多为内核参数,例如net.ipv4.ip_forward, 虚拟为net/ipv4/ip_forward, 存储于/proc/sys/, 因此其完整路径为/proc/sys/net/ipv4/ip_forward;
/sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备提供一种统一模型的的接口;


参考:https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/



Linux系统上的文件类型:

  -:常规文件;即f;

  d: directory,目录文件;

  b: block device,块设备文件,支持以“block”为单位进行随机访问

  c:character device,字符设备文件,支持以“character”为单位进行线性访问

    major number:主设备号,用于标识设备类型,进而确定要加载的驱动程序

    minor number:次设备号,用于标识同一类型中的不同的设备;

      8位二进制:0-255

  l:symbolic link,符号链接文件;

  p: pipe,命名管道;

  s: socket,套接字文件;