第一章
Linux启动流程图
系统使用mount可产生根目录
加载示意图
根目录:一个目录中最基本的地址代号,理解为最顶层的目录。
FHS:FileSystem Hierarchy Standard Group 定义Linux标准的目录结构
第二章 不同启动模式的目录
启动方式:本地启动、网络启动
本地启动与网络启动是由不同的应用程序所支持的
本地启动由GRUB;网络启动由PXE及TFTP
本地启动目录 /boot 存储很多有关启动时的信息及所需文件
文件:config-2.6.20**.fc7xen 系统kernel的配置文件
Initrd :initral RamDisk 系统启动时的模块供应主要来源
System.map 系统kernel中变量的对应表 Symbols的索引文件:变量或函数名
Vmlinuz 实际系统所使用的kernel
文件夹:
Grub 存放grub在启动所需要的画面、配置及各阶段的文件
选择OS的文件 /boot/grub/grub.conf
理解:boot启动过程中的根目录为“/boot” 而启动完成后的根目录为“/”
/proc/kallsyms 导出/可用内核变量或函数
Kernel OS的核心程序
Initrd 全名 initial ram disk 启动系统所需要加载的虚拟磁盘
kernel、initrd、System Module加载顺序:kernel-->initrd-->System Module (在initrd文件中有执行加载模块的命令)
Initrd目的就是在kernel加载系统认识cpu、内存信息等后,像接力赛一样让系统进一步指导“还有那些硬件是启动所必须使用到的”
远程启动 /tftpboot---->须安装tftp-server组建才会产生
在client上使用tftp命令时 TFTP会自动以/tftpboot目录作为主目录
发送DHCP请求
提供网络数据及下台主机地址
发出使用tftp请求
直接提供启动菜单
选择启动项目
提供适当的kernel及initrd
第三章 内核空间与用户空间的桥梁 VFS
在initrd阶段 VFS被启动
空间划分的作用:1.将系统与用户隔离开 2. 速度 cat /proc/iomem查看kernel地址
用户空间 System Call 内核空间
虚拟文件系统 如:/proc /sys /tmp等。有些OS不会直接替用户预先挂在这类目录
设备文件目录 /dev
由Linux的devfs所建立,已被UDEV取代 目的用以存放系统中device的相关信息,无论使用与否,只要有可能使用到,就会在/dev中建立一个对应的设备文件
/dev/ram0 第一个ramdisk,一般都是用这一设备作为initrd的ramdisk,当然进入系统后就已经释放出来
/dev/fd0 Floppy磁盘驱动器的设备文件
/dev/hda IDE硬盘设备文件
/dev/bus 根据不同的bus将硬件分类
/dev/disk 存放连接到主机的所有硬盘信息
/dev/input 存放输入设备目录,主要针对键盘和鼠标
/dev/net 仅一个tun文件,建立VPN的Tunnel
/dev/shm shm是Linux专门用于分享内存的API,方便用户读写数据到内存 share memory
/proc 程序与系统设置目录 由procfs产生
Linux为保障系统的稳定度 不论是initrd rescumode或是Linux均无法读出 /proc
/proc 对系统而言,主要功能有:
1. 整理系统内部的信息
2. 存放主机的硬件信息
3. 调整系统执行时的参数
4. 检查及修改网络和主机的参数
5. 检查及调整系统的内存和性能
基本程序文件:
/proc/cpuinfo 代表cpu的硬件信息
/proc/kmsg 在OS尚未进入前的log,进入后将其全部写入/var/log/message
/proc/meminfo 系统的内存信息
/proc/modules 目前使用的模块(未整理) lsmod 整理后的
/proc/partitions 实时呈现系统目前所看得到的分区
发展趋势: /proc 被 /sys取代
/proc/sockstat 查看系统socket的状态
重启:reboot 或 init 6
第四章 应用程序目录
/bin 存放“所有用户”必要且共同使用的执行文件
/sbin 只有root或服务程序等级才可使用的执行文件
用户主目录下的“.bash_profile” 用户的环境变量
/lib 函数库目录:共享的软件库
一般属于系统kernel启动所使用的函数库,或执行一些在/bin 或/sbin中的命令时会使用到的函数库。 其他开发或软件用的的放到 /usr/lib下
/lib/iptables iptables软件要使用到的函数库
/lib/modules 系统可支持的硬件模块文件
/etc/passwd /etc/shadow 用户登录密码
/lost+found 还原损坏文件目录
/opt 额外安装软件目录 option
/usr 用户共享目录:可共享的目录;只可读取文件
/usr/bin /usr/sbin 与/bin /sbin区别于:前两个均为非必要性的文件,比较偏应用
/usr/include 用户会使用到的C语言头文件
/usr/kerberos 一种安全机制
/usr/lib 不希望直接被用户或shell script所使用的文件