Redhat6 和 7系统启动过程?
Linux简介
Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
linux的发行版本
Radhat:收费(服务费) 系统有自己红帽商标 国企(中石油 中海油 银行)
Centos:免费 去掉了红帽商标 互联网
linux云服务器
自己安装服务器还是麻烦了些,现在一般都推荐大家使用云服务器,比较方便,价格也不贵。
目前市场上的云服务器很多:腾讯云,阿里云
RPM软件包管理器
早期linux只能采用源码包的方式安装,需要运维人员解决许多的软件依赖关系,RPM机制则为解决这些问题而设计,简化软件的安装的复杂度。
常用的rpm命令:
rpm -ivh filename.rpm --安装
rpm -Uvh filename.rpm --升级
rpm -e filename.rpm --卸载
rpm -qpi filename.rpm --查询软件的描述信息
rpm -qpl filename.rpm --列出软件文件信息
rpm -qf filename --查询文件属于哪个rpm的命令格式
YUM软件仓库
尽管RPM能够帮助用户查询软件相关的依赖关系,但问题还是低有运维人员来解决,而有些大型软件可能与数十个程序都有依赖关系,YUM软件仓库便是为了进一步减低
软件的安装难度和复杂度而设计的技术,YUM软件仓库可以根据用户的要求分析出所需软件包其相关的依赖关系,然后自动从服务器下载软件包并安装到系统
常用的yum命令:
yum install --安装
yum update --升级
yum clean all --清除缓存
yum reinstall --重新安装
yum list all --列出仓库所有的软件包
yum repolist all --列出所有仓库
Linux 系统启动过程
第一步:开机自检
当计算机打开电源后,首先是BIOS开机自检,这个过程中主要是检测我们的计算机硬件设备比如:CPU,内存,主板,显卡,CMOS等设备是否有故障存在
第二步:读取MBR(引导文件)
搜索可以让系统启动的引导设备(比如我们有时在BIOS中设置为从硬盘启动),这时如果BIOS找不到可以引导的设备及相关程序后,便会启动失败,如果顺序的找到了相关设备硬盘,
那么BIOS将把控制权交给启动设备中的MBR(Master Boot Record)主引导记录
第三步:Boot Loader grub引导菜单
引导系统启动的程序
第四步:读取内核文件/boot
第五步:
运行init(redhat6)
内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。
其实/etc/inittab文件最主要的作用就是设定Linux的运行等级,其设定形式是“:id:5:initdefault:”,这就表明Linux需要运行在等级5上。Linux的运行等级设定如下:
0:-halt 关机
1:-single user mode 单用户状态。仅root用户可登录;用于系统维护,禁止远程登录,相当于Windows下的安全模式
2:-Multi-user,without 多用户状态(无NFS)。没有网络服务。
3:-Full multi-user mode 完整的多用户状态(有NFS)。有网络服务,登录后进入控制台命令行模式。
4:-unused 保留,未使用
5:-X11 X11控制台,登录后进入图形GUI模式。
6:- reboot 重新引导系统,即重启
Linux查看运行级别:
runlevel 《==可查看当前的运行级别;
Linux临时切换运行级别:
init 6 《==重启
Linux修改系统默认运行级别:
vi /etc/inittab 《==编辑inittab文件,initdefault前面的值即为系统默认运行级别。
第六步:系统初始化
在设定了运行等级后,执行etc/rc.d/rc.sysinit脚本程序。它主要完成的工作有:配置主机名,检查磁盘,加载硬件模块,配置网络
执行/etc/rc.d/rc脚本,会读取对应运行级别的脚本
运行systemd初始化进程服务(redhat7)
systemd采用并发启动机制,提升了开机速度。
Linux查看运行级别:
runlevel 《==可查看当前的运行级别;
-bash-4.2$ ls -al /lib/systemd/system/runlevel*
lrwxrwxrwx. 1 root root 15 12月 20 16:46 /lib/systemd/system/runlevel0.target -> poweroff.target 关机
lrwxrwxrwx. 1 root root 13 12月 20 16:46 /lib/systemd/system/runlevel1.target -> rescue.target 单用户模式,root权限,用于系统维护
lrwxrwxrwx. 1 root root 17 12月 20 16:46 /lib/systemd/system/runlevel2.target -> multi-user.target 多用户状态(无NFS)。没有网络服务。
lrwxrwxrwx. 1 root root 17 12月 20 16:46 /lib/systemd/system/runlevel3.target -> multi-user.target 完整的多用户状态(有NFS)。有网络服务,登录后进入控制台命令行模式。
lrwxrwxrwx. 1 root root 17 12月 20 16:46 /lib/systemd/system/runlevel4.target -> multi-user.target 保留,未使用
lrwxrwxrwx. 1 root root 16 12月 20 16:46 /lib/systemd/system/runlevel5.target -> graphical.target X11控制台,登录后进入图形GUI模式。
lrwxrwxrwx. 1 root root 13 12月 20 16:46 /lib/systemd/system/runlevel6.target -> reboot.target 重启模式
linux修改运行级别
将默认级别设置为3(命令行模式)
systemctl set-default multi-user.target
将默认级别设置为5(图形界面模式)
systemctl set-default graphical.target
systemctl管理服务的启动,重启,停止等命令
systemctl start foo.service 启动
systemctl restart foo.service 重启
systemctl stop foo.service 停止
systemctl status foo.service 查看服务状态
systemctl设置服务开机启动,不启动等命令
systemctl enable foo.service 开机自动启动
systemctl disable foo.service 开机不自动启动
systemctl is-enable foo.service 查看特定服务是否开机自启动
第七步:终端进入