一.Linux开机启动流程
开机启动流程的意义:
1.掌握让某个软件开机自动运行
2.开机不能正常启动,是什么原因,或者那个环节出现了问题
3.防止黑客植入木马,去查询黑客会把木马放到哪些地方
开机启动流程:
1.power on开机
2.POST开机自检,指计算机系统,接通电源,包括对CPU、系统主板、基本内存、扩展内存等设备的测试,如果发现错误,会给操作者提示或者警告。简化或者加快该过程,可以使系统能够快速启动。
3.BIOS程序,完成开机自检的程序。BIOS就是Basic Input Output system的缩写,简称基本输入输出系统。BIOS是电脑启动时加载的第一个软件。
它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。此外,BIOS还向作业系统提供一些系统参数。系统硬件的变化是由BIOS隐藏,程序使用BIOS功能而不是直接控制硬件。现代作业系统会忽略BIOS提供的抽象层并直接控制硬件组件。
ROM存储器 : read only memory --》只读的存储器 断电信息丢失
RAM存储器: random access memory 随机存取存储器 --》可读可写 断电信息不丢失
BIOS的配置固化到了主板上面的CMOS芯片上面, BIOS是一个程序会读取CMOS芯片里的参数,了解cpu的配置,时间的配置,启动顺序的配置等
CMOS芯片:CMOS芯片是一种低耗电存储器,其主要作用是用来存放BIOS程序中的设置信息以及系统时间日期。如果CMOS中数据损坏,计算机将无法正常工作
4.boot启动顺序检查,启动第一启动顺序
boot启动顺序,一般来说是:可移动设备--->硬盘--->光驱--->网络中安装启动服务器
我们电脑在没有连接外驱设备的情况下,一般是选择硬盘作为第一启动顺序
5.硬盘中的MBR(master boot record)程序
MBR也就是主引导记录,它位于硬盘的0磁道,0柱面的1扇区,然后MBR中有一个grub2引导程序,是用来启动Linux系统的
MBR主引导记录的组成:
分区表 + grub2主引导程序 + 类型 总共512个字节
grub是linux系统的启动程序
grub2是grub的第2个版本
6.加载/boot中文件系统的驱动
[root@localhost ~]# cd /boot
[root@localhost boot]# ls
config-4.18.0-240.el8.x86_64 initramfs-4.18.0-240.el8.x86_64kdump.img
efi loader
grub2 System.map-4.18.0-240.el8.x86_64
initramfs-0-rescue-c60d2d9754344502ada018e9d5f81a56.img vmlinuz-0-rescue-c60d2d9754344502ada018e9d5f81a56
initramfs-4.18.0-240.el8.x86_64.img vmlinuz-4.18.0-240.el8.x86_64
7.运行/boot里的内核文件vmlinuz、initramfs
vmlinuz,是内核程序文件
initramfs,给内核程序提供一个初始化的内存文件系统的镜像文件
8.启动systemd进程
systemd是centos7里的第一个进程,是所有进程的父进程(centos6的第一个进程是init)
9.启动对应的运行级别的里的服务,我们一般是启动multi-user多用户模式,会运行/etc/systemd/system/multi-user.target.wants/ 下的服务(也就是设置为开机要自启的服务,里面都是一些链接文件)
运行级别:runlevel(是centos6的叫法,)
0 关机
1 单用户模式
2 多用户模式,不能使用nfs
3 完全多用户模式 --》字符界面模式 --》非常正常的模式, 默认最小化安装的模式 multi-user
4 保留,没使用
5 图形界面
6 重启
centos7中只有3和5两个级别,不同级别启动的服务是不一样的
3 字符界面–》会定义哪些程序在字符界面下开机启动–>开启的程序少–》消耗的资源少–》最小化安装–》3
5 图形界面–》会定义哪些程序在图形界面下开机启动–》开启的程序多–》消耗资源多–》带GUI服务器–》5
可以使用renlevel命令查看当前的运行级别
[root@wangsh boot]# runlevel
N 3 #N代表最开始进入的模式,没有进行模式切换
[root@wangsh boot]#runlevel
3 5 #代表开机先进入运行级别3,后来切换到运行级别5
10.启动相应运行级别的的服务,比如/etc/rc.local以及/etc/fstab文件
/etc/rc.local 启动的过程中,最后会运行这个脚本里的命令(这个文件必须要有可执行权限)
/etc/fstab 启动的过程中,会加载这个文件里知道的磁盘分区
11.login登录
用户输入用户名和密码以后,Linux系统会自动进入/etc/passwd文件和/etc/shadow文件里验证用户名和密码是否正确
12.加载四个配置文件
登录成功之后,会加载四个配置文件
/etc/profile 全局配置,对所有用户有效
/etc/bashrc 全局配置,对所有用户有效
~/.bash_profile 局部配置,只对登录的用户生效
~/.bashrc 局部配置,只对登录的用户生效
二.socket
socket分为网络socket和文件socket
socket是进程与进程之间的一种通信方式
进程之间的通信方式:
1.管道(匿名管道和命名管道)
2.消息队列
3.信号
4.信号量
5.共享内存
6.socket(文件socket、网络socket)
文件socket:
是实现一台电脑里的不同进程之间通信的文件
Linux中连接mysql的时候,可以通过-S来指定socket的路径,如果在配置文件中写好了socket的路径,那么使用mysql连接的时候,就不需要使用-S来指定socket的路径了
网络socket
是ip + port --》格式ip:port 例: 192.168.2.43:3306
使用mysql连接的时候,可以通过-h指定主机名,-p指定端口号来进行指定网络socket
[root@localhost ~]# mysql -h 192.168.2.43 -P3306 -u root -p'Sanchuang123#'
三.软中断和硬中断
软中断和硬中断的差别
1、硬中断是由外部事件引起的因此具有随机性和突发性;软中断是执行中断指令产生的,无外面事件中断请求信号,因此软中断的发生不是随机的而是由程序安排好的。
2、硬中断的中断号是由中断控制器提供的(NMI硬中断号系统指定的为02h);软中断的中断号是由指令直接给出的,无需使用中断控制器。
3、硬中断的中断响应周期,CPU需要发中断回合信号(NMI不需要),软中断的中断响应周期,CPU不需要发中断回合信号。
4、硬中断是可屏蔽的(NMI硬中断不可屏蔽),软中断是不可屏蔽的。