一、程序

   1、应用程序:程序=指令+数据,Architecture(平台架构),heap(堆),库,Stack(栈);

   2、C语言:源代码-->(编译)二进制格式

       脚本:解释器(二进制程序)

   3、源代码转化为二进制的程序流:

       源代码-->编译-->链接-->运行

   4、程序开发需要:库

       静态库

       动态库

   5、程序运行加载配置文件:

       dir=/path/to/somewhere

   6、程序组成部分:

       二进制程序    /bin, /sbin

       库    /lib

       配置文件    /etc

       帮助文件    /usr/share/man

二、Linux文件系统目录

   1、/etc, /bin, /sbin, /lib,

       系统启动就需要用到的程序,这些目录不能挂载额外的分区,必须在根文件系统的分区上;

   2、/usr/

           bin

           sbin

           lib

       这些目录是操作系统核心功能,可以单独分区;

   3、/usr/local

           bin

           sbin

           lib

           etc

           man

       独立的运行程序,独立完整的体系;一般安装第三方软件;可以单独分区;

   4、/opt

       最初系统认为的第三方软件的安装目录;

   5、/proc

       /sys

       伪文件,不能单独分区,默认为空;

   6、/dev

       设备,不能单独分区;

   7、/home

       用户存放数据的地方,单独分区;

   8、/root: 不能单独分区

   9、/var

       外围文件系统,如:存放系统运行日志、邮件等,建议单独分区

   10、/boot

       内核,initrd(initramfs),建议单独分区

   11、系统启动过程:

       a)POST-->BIOS(HD)-->(MBR)bootloader(文件系统结构,ext2, ext3, xfs)-->内核

       b)BIOS(ROM)-->MBR(bootloader)-->展开读取内核-->挂载内核

三、软件包管理器的核心功能

   1、制作软件包:把二进制程序、库文件、配置文件、帮助文件打包成一个包,生成数据库,追踪所安装的每一个文件;

   2、安装、卸载、升级、查询、校验;

   3、不同操作系统的软件包管理工具

       a)Redhat, SUSE: RPM(Redhat Package Manager后改名为PRM is Package Manager)

       b)Debian: dpt

   4、软件包依赖关系:

       X-->Y-->Z

       X-->Y-->Z

   5、自行解决依赖关系

       前端工具:yum(Yellowdog Update Modifier), apt-get

       后端工具:RPM, dpt    。