liunx系统启动和内核管理总结(代码片段)

author author     2023-03-14     455

关键词:

Liunx 系统启动和内核管理总结

Liunx系统启动

一、硬件启动流程

(1)、打开电源  
(2)、BIOS:   
1. POST 初始化硬件设备,检查系统外围主要设备(CPU,内存,硬盘,显卡i-o设备,键盘鼠标)  
2.确定启动设备  
    -根据BIOS设置的启动顺序,检测驱动器(硬盘,光盘,U盘,网络)  
    --如果硬盘是启动项,读取硬盘第一个扇区(MBR,512字节)到内存  
    ---控制区转给MBR中的Boot loader  
(3)、MBR 1.执行MBR中Bootloader  
2.MBR由主引导程序,硬盘分区表DPT和有效硬盘标书(55aa,标识是MBR分区)  
3.MBR的BOOt loader含有grub的stage1阶段  

POST:Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘等硬件情况的检测(主板自带的程序功能)  
ROM:BIOS,Basic Input and Output System,保存着有关计算机系统最重要的基本输入输出程序,系统信息设置、开机加电自检程序和系统启动自举程序等  
RAM:CMOS互补金属氧化物半导体,保存各项参数的设定  
按次序查找引导设备,第一个有引导程序的设备为本次启动设备  

bootloader: 引导加载器,引导程序(MBR引导)  
windows: ntloader,仅是启动OS  
 Linux:功能丰富,提供菜单,允许用户选择要启动系统或不同的内核版本;把用户选定的内核装载到内存中的特定空间中,解压、展开,并把系统控制权移交给内核  
    LILO:LInux LOader | 早期的版本启动程序  
    GRUB: GRand Unified Bootloader |centos6 0.97 centos7 2.02  
    GRUB 0.X: GRUB Legacy, GRUB2  

二、GRUB启动引导阶段

(1)stage1 包含在MBR的前446字节,但内容不足够起到完整的识别(分区文件系统加载程序等)  
(2)stage1_5 在MBR分区后面,能识别启动分区文件系统是1和2直接的桥梁  
(3)stage2 解析/boot/grub里的grub.conf,显示操作系统启动菜单,加载内核文件到内存,通过/boot/initrd开头文件建立虚拟DAM disk虚拟文件系统转交给内核  

三、内核引导阶段

探测可识别到的所有硬件设备  
加载硬件驱动程序(借助于ramdisk加载驱动)  
以只读方式挂载根文件系统(grub.conf grub.cfg里的root=)  
运行用户空间的第一个应用程序:/sbin/init 用init里面的进程文件初始化,第二次重新挂载  

四、系统初始化阶段

(1)、 读取/etc/inittab 获取用户级别  

(2)、读取/etc/rc.sysinit初始化系统  
        测试与载入内存设备/proc及usb设备、/sys  
        挂载/etc/fstab定义的文件系统  
        加载核心的相关设置,按/etc/sysctl.conf文件设定的内核参数的值(/proc/sys/)   
        将启动相关信息加载到/var/log/dmesg文件中  

(3)、加载系统服务  
        /etc/rc/rc#.d 根据运行级别启动对应/etc/rc/rc#.d目录下的服务,K开机关闭S开机开启centos6 chkconfig centos7 systemctl  
        /etc/local 加载用户自定义服务 一般可以将自己编译的服务放在里面  

五、启动终端
默认执行/sbin/mingetty打开的6个文本终端
验证登陆
1./etc/nologin(可能没有)有则在内的普通用户不可登陆,(usermod -s /sbin/nologin,可能能使用系统资源,/bin/false 则所有服务都不可以用)
2./etc/usertty对文件做出附近访问限制,不存在该文件没有限制
3./etc/securetty 登记的终端才允许使用,没有文件任何终端都可以登陆
4./etc/passwd & /etc/shadow 存放用户信息、密码、使用何种shell

    登陆成功  
    输出 /var/log/lastlog 输出最近一次登陆的信息  
        /var/spool/mail/用户名 邮件存放的地方  
        /etc/profile、.bash_profile、.bash_login、.profile  

安装图形界面默认是5级别的图形桌面  

centos6系统启动和有关文件

Linux内核特点:  
支持模块化:.ko(内核对象)如:文件系统,硬件驱动,网络协议等  
支持内核模块的动态装载和卸载  
内核组成部分:  
核心文件:/boot/vmlinuz-VERSION-release核心驱动文件  
            vmlinux-2.6.32-754.e16.x86_64  
ramdisk:辅助的伪根系统  
CentOS 5 /boot/initrd-VERSION-release.img |虚拟磁盘  
CentOS 6,7 /boot/initramfs-VERSION-release.img(一些必要的辅助文件模块驱动放在这里-打包文件-虚拟文件系统)  
initramfs-2.6.32-754.el6.x86_64.img   
模块文件:/lib/modules/VERSION-release(模块化的驱动文件)   
/lib/modules/2.6.32-754.el6.x86_64/kernel/fs  
配置文件 /etc/ld.so.conf.d/kernel-2.6.32-754.el6.x86_64.conf  
locate ext3.ko 搜索模块  

1、先识别系统核心文件放在/boot (不进入/就完成不了后续的行为)2、识别放驱动的文件(/lib/modules) 3、识别加载文件系统的驱动 4、在加载有文件系统的/  5、加载init进程  
此时ramdisk的initramfs-2.6.32-754.el6.x86_64.img文件就存放了加载文件系统的驱动  
文件是装系统临时生成的   

(我这是想看看这个文件有点啥:)
mv initramfs-2.6.32-754.el6.x86_64.img in.img.gz
gunzip initramfs-2.6.32-754.el6.x86_64.img.gz
file initramfs-2.6.32-754.el6.x86_64.img
cpio -id < initramfs-2.6.32-754.el6.x86_64.img(小型的/环境)
centos initrd(硬盘) centos6 initramfs(文件系统) 提高速度

CentOS 6,7 initramfs.img
工具程序:mkinitrd, dracut
ramdisk文件的制作
(1) mkinitrd命令:为当前正在使用的内核重新制作ramdisk文件(脚本调用dracut)
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
(2) dracut命令:为当前正在使用的内核重新制作ramdisk文件
dracut /boot/initramfs-$(uname -r).img $(uname -r)

实验:破坏此文件 挂光盘救援模式 光盘的isolinux目录下有vmlinuz(不会放图,不想放图,顺便也删除了)
mkinitrd /boot/initranfs-uname -r.img uname -r生成boot下的ramfs文件(可能需要加上force)
mount /dev/sr0 /mnt
cp /mnt/isolinux/vmlinuz /boot/vmlinuz-uname -r
rpm -ivh /mnt/cdrom/Packages/kernel-2.6.32-696.e16.x86_64.rpm --root=/mnt/sysimage/(boot的父目录) --force

内核初始化通过init进程 /etc/inittab 截取了比较重要的部分
17 # Default runlevel. The runlevels used are:
18 # 0 - halt (Do NOT set initdefault to this) 关机
19 # 1 - Single user mode
单用户模式(root自动登录), single, 维护模式 进入单用户模式可以破解root口令
20 # 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
多用户模式,启动网络功能,但不会启动NFS;维护模式
21 # 3 - Full multiuser mode 文本界面
22 # 4 - unused 预留级别;可同3级别
23 # 5 - X11 图形界面
24 # 6 - reboot (Do NOT set initdefault to this)
26 id:5:initdefault:
id:runlevel:action:process
id:是惟一标识该项的字符序列
runlevels: 定义了操作所使用的运行级别
action: 指定了要执行的特定操作
wait: 切换至此级别运行一次
respawn:此process终止,就重新启动之
initdefault:设定默认运行级别;process省略
sysinit:设定系统初始化方式
process:定义了要执行的进程
实验id:6:...设置成6无限重启,在重启的等待界面输入任意键进入一个启动界面选项
根据提示按键(在启动前更改内核参数)输入 a 可以输入0-6启动为什么模式
进入单用户更改用户口令passwd

/etc/rc.d/rc.sysinit: 系统初始化脚本规定了N多的参数,多看看,
si::sysinit:/etc/rc.d/rc.sysinit---centos5里面有这个的初始化脚本的设置

之前的0-6在/etc/rc.d/rc#.d 有一一对应的文件,选择什么则进入什么
每个文件里面都分只有两个开头的文件 K和S,K表式运行此模式时关闭此服务,S相反开启
K: K##:##运行次序;数字越小,越先运行;数字越小的服务,通常为依赖到别的服务
S: S##:##运行次序;数字越小,越先运行;数字越小的服务,通常为被依赖到的服务
ntsysv命令更改当前运行模式的服务下一次开机的开启和关闭(图形操作)
ntsysv --level=5更改5模式的服务的开机状态

既然这里有服务肯定要学的,这么好的格式,这么重要的东西,我就不写了

chkconfig --add testsrv /var/lock/subssy 观察目录,服务在这里创建对应服务文件
chkconfig命令查看服务在所有级别的启动或关闭设定情形
chkconfig [--list] [name] chkconfig --list
添加:SysV的服务脚本放置于/etc/rc.d/init.d (/etc/init.d)
chkconfig --add name 对应的创建name的rc.d里面的服务文件
#!/bin/bash
#LLLL 表示初始在哪个级别下启动,-表示都不启动
*# chkconfig: LLLL nn nn
chkconfig --del name 删除
修改指定的链接类型
chkconfig [--level levels] name <on|off|reset>
--level LLLL: 指定要设置的级别;省略时表示2345
chkconfig --level 345 atd on/off 定义下次开启还是关闭
chkconfig atd on 默认更改2-5
yum install atd;sercvice atd start;chkconfig atd on;配置服务开启
实验,某个服务出错
ctrl + alt + delete 重启,任意键进入 进入单用户模式 将出错的服务关闭
chkconfig testsrv on (/etc/inittab这个文件centos5是比较完整的,最好了解下这个好)

写到这里想起来 6的/etc/inittab里面注释的说明很重要,说了很多信息

xinetd管理的服务(服务那么多,这个就很实在了)
service 命令:手动管理服务
service 服务 start|stop|restart
service --status-all 列出所有服务的状态
瞬态(Transient)服务(非独立服务)被xinetd进程所管理(超级守护进程)
进入的请求首先被xinetd代理
配置文件:/etc/xinetd.conf、/etc/xinetd.d/<service>(里面是代理的服务)
与libwrap.so文件链接
用chkconfig控制的服务:
示例:chkconfig tftp on
telnet非独立服务被xinetd监控 安装yum install telnet
lsof -i :23 centos7 systemctl 代替了xinetd
xinetd默认装好的程序里面的是off状态,手动开启
修改/etc/xinted.d/telnet 里的disable=no 可以被激活状态
service xinetd start ss -ntlp
telnet 192.168.60.149 ss -nt
chkconfig telnet of

注意:正常级别下,最后启动一个服务S99local没有链接至/etc/rc.d/init.d一个服务脚本,而是指向了/etc/rc.d/rc.local脚本
不便或不需写为服务脚本放置于/etc/rc.d/init.d/目录,且又想开机时自动运行的命令,可直接放置于/etc/rc.d/rc.local文件中
东西过多,好好学吧

grub: GRand Unified Bootloader
grub 0.97: grub legacy(老的版本)
grub 2.x: grub2
grub legacy:
stage1: mbr (/boot/grup/stage1这里有备份)
stage1_5: mbr之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统
stage2:磁盘分区(/boot/grub/)
grub安装支持交互式命令方式
(1) grub-install
安装grub stage1和stage1_5到/dev/DISK磁盘上,并复制GRUB相关文件到 DIR/boot目录下
grub-install --root-directory=DIR /dev/DISK 修复MBR512

grup-install /dev/sda (grup.conf里的图片无法修复)
这里/boot/grub/grub.conf文件很重要 其他文件上面的命令都可以恢复,这个问价要手写
这是里面内容,6结束
1 # grub.conf generated by anaconda
3 # Note that you do not have to rerun grub after making changes to this file
4 # NOTICE: You have a /boot partition. This means that
5 # all kernel and initrd paths are relative to /boot/, eg.
6 # root (hd0,0)
7 # kernel /vmlinuz-version ro root=/dev/sda2
8 # initrd /initrd-[generic-]version.img
9 #boot=/dev/sda
10 default=0
11 timeout=5
12 splashimage=(hd0,0)/grub/splash.xpm.gz
13 hiddenmenu
14 title CentOS 6 (2.6.32-754.el6.x86_64)
15 root (hd0,0)
16 kernel /vmlinuz-2.6.32-754.el6.x86_64 ro root=UUID=f279775c-e233-4f26-b7ab-118dfe992d 2c rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=a uto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
17 initrd /initramfs-2.6.32-754.el6.x86_64.img
里面可以加 passwd 选项对单用户模式起到保护作用
grub加密生成grub口令
grub-md5-crypt 里面有salt(盐)输入相同口令出来的结果不一样
grub-crypt


记--201904101400

系统启动和内核管理(代码片段)

系统启动和内核管理1CentOS6的启动管理1.1Linux组成kernel实现进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能等功能rootfs包括程序和glibc库程序:二进制执行文件库:函数集合,function,调用接口(头文件负责描述)1.... 查看详情

linux课程总结(代码片段)

1.Linux系统如何启动Linux系统开机首先运行BootLoader,然后由BootLoader引导启动内核,由内核检查和初始化硬件设备,载入设备的驱动程序模块,安装root文件系统,然后内核将启动一个名为init的进程。在Init运行完成并启动其它必要... 查看详情

linux之系统启动和内核管理(代码片段)

系统启动常用命令:runlevelwho-r/etc/inittab:定义启动级别/etc/rc.d/init.d/NetworkManager定义网络管理程序的详细信息/etc/rc.d/rc.sysinit系统初始化脚本/etc/rc.d//rc[0-6].d/定义6个级别对应的服务程序开启或关闭/etc/rc.d/rc.local开机最后一步要执行... 查看详情

课程学习总结报告(代码片段)

@目录Linux概念模型Linux系统启动用户态和内核态进程管理和调度文件管理例子讲解例子LED灯心得体会与改进建议Linux概念模型在Linux系统分析这门课中,我们主要学习了中断,系统调用,程序加载执行,进程管理,文件系统,计时... 查看详情

liunx系统配置及服务管理-进程管理(代码片段)

1.进程是已启动的可执行程序的运行实例,进程有以下组成部分:?已分配内存的地址空间;?安全属性,包括所有权凭据和特权;?程序代码的一个或多个执行线程;?进程状态。程序:二进制文件,静态/usr/bin/passwd,/usr/sbin/useradd进... 查看详情

linux系统启动流程总结(代码片段)

CentOS6启动流程概述  理解操作系统开机引导和启动过程对于配置操作系统和解决相关启动问题是至关重要的。本文结合互联网上各类资料,做一些总结,希望对大家有一些帮助。启动流程总的划分可以分为4个阶段POST加电... 查看详情

linux系统启动流程总结(代码片段)

CentOS6启动流程概述  理解操作系统开机引导和启动过程对于配置操作系统和解决相关启动问题是至关重要的。本文结合互联网上各类资料,做一些总结,希望对大家有一些帮助。启动流程总的划分可以分为4个阶段POST加电... 查看详情

操作系统系统启动流程(代码片段)

文章目录系统启动流程(Linux)BIOSMBRGRUB2启动引导内核引导systemd固件和BIOSBIOS分类关于legacy关于uefibootloader启动管理器kernel初始化systemd-守护进程总结系统启动流程(Linux)1.BIOS加电自检2.把MBR加载到内存3.加载grub引... 查看详情

操作系统系统启动流程(代码片段)

文章目录系统启动流程(Linux)BIOSMBRGRUB2启动引导内核引导systemd固件和BIOSBIOS分类关于legacy关于uefibootloader启动管理器kernel初始化systemd-守护进程总结系统启动流程(Linux)1.BIOS加电自检2.把MBR加载到内存3.加载grub引... 查看详情

liunx基础知识总结

Liunx基础知识总结  Liunx基础知识总结包括:系统基础管理命令,文件基础管理命令,节点表介绍,软链接和硬链接,重定向,管道,用户和组管理及权限管理。一、系统基础管理命令  1、基础命令  tty:查... 查看详情

liunx开机启动流程(代码片段)

...;    BIOS(BasicInput/OutputSystem),基本输入输出系统,该系统存储于主板的ROM芯片上,计算机在开机时,会最先读取该系统,然后会有一个加电自检过程,这个过程其实就是检查CPU和内存,计算机最基本的组成单元(控... 查看详情

liunx内核1

...boot)1.硬件应用可以直接访问内核库 分装了很多代码系统启动过程吧内核加载。怎么把内核加载到操作系统需要内核引导程序。liunx哲学1.一切皆文件2.一个大需求 拆分成一群小程序。一个命令就是一个需求什么是shellshell... 查看详情

liunx磁盘存储和文件系统(代码片段)

Liunx--总结磁盘存储和文件系统磁盘存储机械硬盘:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成固态硬盘:用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片... 查看详情

liunx系统命令代码简记(代码片段)

系统uname-a查看内核/操作系统/CPU信息head-n1/etc/issue查看操作系统版本cat/proc/cpuinfo查看CPU信息hostname查看计算机名lspci-tv列出所有PCI设备lsusb-tv列出所有USB设备lsmod列出加载的内核模块env查看环境变量资源free-m查看内存使用量和交换... 查看详情

系统启动流程以及内核管理(代码片段)

linux的组成:linux是单内核的系统,而windows是多个微内核的组成的操作系统linux内核的作用:进程管理,内存管理,设备管理,网络管理,硬件驱动,安全机制启动流程:1,POST加电自检作用:对电脑的各种硬件进行检测,看是否... 查看详情

系统启动和内核管理

系统启动和内核管理CentOS5和6的启动流程 服务管理Grub管理 自制Linux 启动排错 编译安装内核Linux组成Linux:kernel+rootfs kernel:  进程管理、 内存管理、 网络管理、 驱动程序、 文件系统、 ... 查看详情

课程学习总结报告(代码片段)

Linux内核主要由以下几个功能:进程管理、文件系统、IO体系结构和设备驱动程序、内存管理等。一.进程管理在Linux中,进程是系统资源分配的基本单位,也是使用CPU运行的基本调度单位。它实现了对进程的控制和调度。进程管... 查看详情

docker学习(代码片段)

为什么使用docker?主要归纳一下几点:更高效的利用系统资源更快速的启动时间一致的运行环境持续交付和部署更轻松的迁移更轻松的维护和扩展对比传统虚拟机总结特性容器虚拟机启动秒级分钟级硬盘使用一般为MB一般为GB性能... 查看详情