第一章 Sysvinit技术
1. 特点
系统第1个进程(pid=1)为init;
Init进程是所有进程的祖先,不可kill;
大多数Linux发行版的init系统是和SystemV相兼容的,被称为sysvinit。
代表系统:CentOS5、CentOS6。
2. 应用场景
用于服务器时代。
3. 优点
SysVinit运行非常良好,概念简单清晰。它主要依赖于Shell脚本。
4. 缺点
按照一定顺序执行启动太慢。
很容易hang住,fstab与nfs挂载问题。
第二章 Upstart技术
CentOS6采用了Upstart技术代替sysVinit进行引导,Upstart对rc.sysinit脚本做了大量的优化,缩短了系统初始化时的启动时间。但是CentOS6为了简便管理员的操作,upstart的很多特性并没有凸显或者直接不支持,因此在CentOS6中的服务启动脚本还是以原来SysV的形式提供的,所以我们依然采用SysV init的图来讲CentOS6的系统初始化过程。(initctl)。
代表系统: CentOS6 ,Ubuntu14,从CentOS7,Ubuntu15开始使用systemd。
第三章 Systemd 技术
新系统都会采用的技术(RedHat7,CentOS7,Ubuntu15等);
设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度;
和 Sysvinit 兼容,降低迁移成本;
最主要优点:并行启动
#Pid为1的进程
[root@centos7 ~]# ps -ef|head -2
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 11:13 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --
system --deserialize 21
第四章 CentOS7系统安装
1. 下载地址
http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso
镜像名字解释:CentOS-7-x86_64-DVD-1611.iso。
从 CentOS 7 之后,版本命名就跟发行的日期有关了。
CentOS-7 系统是7.x版本
x86_6464 位操作系统,并且从7以后不再提供32位镜像。
1611 2016年11月发表的版本
第五章 CentOS7系统yum源优化
1. Yum源优化
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2. 安装vim
yum -y install vim
3. tab补全
yum install -y bash-completion
第六章 CentOS7 修改网卡名称为eth0
传统上,Linux的网络接口名称为eth0、eth1…,但这些名称并不一定符合实际的硬件插槽等,这可能会导致不同的网络配置错误(例如,由无意的接口改名引起的禁止接口)。基于MAC地址的udev规则在虚拟化的环境中并不有用,这里的MAC地址如端口数量一样无常。
CentOS6/RHEL6引入了一致和可预测的网络设备命名网络接口的方法。这些特性可以唯一地确定网络接口的名称以使定位和区分设备更容易,并且在这样一种方式下,无论是否重启机器、过了多少时间、或者改变硬件,其名字都是持久不变的。然而,这种命名规则并不是默认在CentOS/RHEL6上开启。
从CentOS7/RHEL7起,这种可预见的命名规则变成了默认。根据这一规则,接口名称被自动基于固件,拓扑结构和位置信息来确定。现在,即使添加或移除网络设备,接口名称仍然保持固定,而无需重新枚举,和坏掉的硬件可以无缝替换。
在安装系统的时候配置:修改内核选项,net.ifnames=0 biosdevname=0
第七章 网络配置相关命令
- ip:yum -y install iproute
- CentOS7主推使用ip、ss命令。
- ifconfig:yum -y install net-tools
- setup:yum -y install setuptool 废弃命令
安装好之后,你会发现里面什么都没有,这只是一个图形工具。我们需要用到的网络服务,防火墙,系统服务等需要另外再安装。
安装好setup tools工具之后,我们需要安装工具组件如ntsysv(系统服务),system-config-networktui(网络服务),iptables(防火墙配置)等。只需要部分的也可以只安装需要的也行。 - nmtui:替代setup命令
第八章 主机名等配置文件
1. 修改主机名
hostname CentOS7 临时生效
编辑/etc/hostname 主机名的配置文件变了
hostnamectl set-hostname CentOS7 #→方法2,本质还是改配置文件。
2. 修改字符集
localectl set-locale LANG=zh_CN. UTF-8
编辑/etc/locale.conf
cat /etc/redhat-release 查看系统版本号
cat /etc/os-release 所有支持systemd系统的统一发行版名称和版本号文件。
第九章 兼容的 /etc/rc.local
Please note that you must run ‘chmod +x /etc/rc.d/rc.local’ to ensure
that this script will be executed during boot.
第十章 运行级别Runlevel
1. Runlevel
[root@CentOS7 ~]# cat /etc/inittab
# inittab is no longer used when using systemd.
2. 当前启动级别
[root@CentOS7 ~]# systemctl get-default
multi-user.target
3. 设置启动级别
systemctl set-default multi-user.target
第十一章 systemd一统天下
1. 看看从前的runlevel都变成什么样了?
ls -lh /usr/lib/systemd/system/runlevel*.target
2. 所有可用的单元文件存放在/usr/lib/systemd/system/和/etc/systemd/system/目录(后者优先级更高)。
ll -h /etc/systemd/system/default.target
第十二章 管理服务
1. chkconfig
2. service
3. /etc/init.d/
4. systemctl:融合service和chkconfig的功能于一体,兼容SysV和LSB的启动脚本,而且够在进程启动过程中更有效地引导加载服务。。
第十三章 启动时间优化
- systemd-analyze time
- systemd-analyze blame
- systemd-analyze plot > bootime.svg