首页 > 系统相关 >linux引导和服务

linux引导和服务

时间:2024-04-16 16:01:47浏览次数:24  
标签:引导 服务 GRUB 启动 Linux 系统 内核 linux

kernel 实现进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能等功能

1引导过程

1.1开机自检

服务器主机开机以后,将根据主板 BIOS 中的设置对 CPU(Central Processing Unit, 中央处理器)、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移 交系统控制权,大多时候会移交给本机硬盘。 网络启动 加载 网络批量pxe

硬件启动POST:Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘等硬件情况的检测

主板的ROM:BIOS,Basic Input and Output System,保存着有关计算机系统最重要的基本输入输出程序,系统信息设置、开机加电自检程序和系统启动自举程序等

1.2.MBR引导

当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中 MBR(Master Boot Record, 主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据 MBR 记录中的引导信息调用启动菜单(如 GRUB)。
总结:运行放在MBR扇区里的启动 GRUB引导程序

1.3GRUB菜单 系统类型双西雅图 内核文件 默认值

对于 Linux 操作系统来说,GRUB(GRand Unified Bootloader,统一启动加载器)是 使用最为广泛的多系统引导器程序。系统控制权传递给 GRUB 以后,将会显示启动菜单给 用户选择,并根据所选项(或采用默认值)准备加载 Linux 内核文件,然后将系统控制权转交给 内核。需要注意的是,CentOS 7 采用的是 GRUB2 启动引导器。
总结:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置

grub功能和组成

bootloader: 引导加载器,引导硬件去找到 内核(操作系统的核心)

  • Windows: ntloader,仅是启动OS
  • Linux:功能丰富,提供菜单,允许用户选择要启动系统或不同的内核版本;把用户选定的内核装载到内存中的特定空间中,解压、展开,并把系统控制权移交给内核

Linux的bootloader

  • LILO:LInux LOader,早期的bootloader,功能单一
  • GRUB: GRand Unified Bootloader, CentOS 5,6 GRUB 0.97: GRUB Legacy, CentOS 7 以后使用GRUB 2.02

GRUB 启动阶段

  • primary boot loader :

    1st stage:MBR的前446个字节 引导 硬件去找 内核

    1.5 stage:MBR 之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统

  • secondary boot loader :2nd stage,分区文件/boot/grub2/grub.cfg

1.4加载Linux内核 操作系统 调度硬件

Linux 内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间, 负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个 Linux 操作系统的运行过 程。在 CentOS 系统中,默认的内核文件位于“/boot/vmlinuz-3.10.0-514.el7.x86_64”。
总结:把内核和镜像文件系统加载到内存中 可以使用

1.5init进程初始化 这是linux 系统运行的第一个程序

为了完成进一步的系统引导过程,Linux内核首先将系统中的“/sbin/init”程序加载到内 存中运行(运行中的程序称为进程),init 进程负责完成一系列的系统初始化过程,最后等待用户进行登录
总结:加载硬件驱动程序,内核把init进程加载到内存中运行

传统init依赖于串行执行Shell 脚本启动服务,导致效率低下,系统启动速度较慢 排队
systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度 大家一起

标签:引导,服务,GRUB,启动,Linux,系统,内核,linux
From: https://www.cnblogs.com/leikj/p/18138398

相关文章

  • linux免密登陆设置
    要实现免密登录Linux服务器,你需要将本机的SSH公钥添加到服务器的~/.ssh/authorized_keys文件中。以下是具体步骤:生成SSH密钥对(如果尚未生成):如果你还没有SSH密钥对,可以使用ssh-keygen命令生成。例如,执行ssh-keygen-trsa来生成RSA类型的密钥对。按照提示操作,通常可以直接按......
  • linux的raid
    raid独立硬盘冗余阵列(RAID,RedundantArrayofIndependentDisks),旧称廉价磁盘冗余阵列(RedundantArrayofInexpensiveDisks),简称磁盘阵列。利用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵列组,目的为提升性能或数据冗余,或是两者同时提升。简单来说,RAID把多个硬盘......
  • windows使用/服务(15)windows Server【开机启动和任务计划程序】实现服务器重启后项目自
    版权声明:本文为博客园博主「yclizq」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:windowsServer【开机启动和任务计划程序】实现服务器重启后项目自启动1.说明有些时候我们希望计算机开机后就启动一些服务或应用程序。2.开机启动使用Win+R......
  • 服务与引导
    服务与引导引导过程开机自检bios1.开机检测硬件是否有故障。2.指引硬件去哪里寻找操作系统。mbr(硬盘)1.开机引导程序。2.分区表。grub根据引导加载器(bootloader)引导硬件去找到内核。加载内核加载内核并放在内存中启动程序在Centos7中第一次启动的程序是systemd在Cen......
  • nuxt3_使用pinia实现服务器端渲染状态管理
    目录安装nuxt3的pinia包修改nuxt.config.ts的配置在项目中创建pinia仓库创建本地的测试服务器用于测试ssr在nuxt项目中创建服务器端请求接口在/article/[id]路由页面中实现服务器端渲染使用postman向http://localhost:3000/article/95发送请求修改路由配置实现页面数据缓存安装nu......
  • net6 类中获取服务
    第一种实现方式(不推荐)varservices=newServiceCollection();varprovider=services.BuildServiceProvider();var_demoService=provider.GetService<IDemoService>();varservices=newServiceCollection();varprovider=services.BuildServiceProvider();v......
  • flask框架图书管理系统服务器端
    fromflaskimportFlask,request,jsonifyapp=Flask(__name__)books=[{'id':1,'title':'book1','author':'au1'},{'id':2,'title':'book2','author':'au2'},......
  • 在Linux中,如何使用文件系统监控工具?
    在Linux中,iostat和vmstat是两个重要的系统监控工具,它们用于分析系统的性能和资源使用情况,特别是在文件系统和内存管理方面。1.iostatiostat是Linux系统性能监控工具,它可以报告CPU统计信息和所有块设备的I/O统计数据,帮助识别I/O性能问题。基本使用:查看所有设备的I/O统计信息......
  • 在Linux中,如何配置DNS服务器和解析服务?
    在Linux中,配置DNS服务器和解析服务通常涉及安装和配置DNS服务器软件,如BIND(BerkeleyInternetNameDomain),或使用操作系统自带的DNS服务。以下是配置DNS服务器的基本步骤:1.安装BIND安装BIND软件包:根据你的Linux发行版,使用包管理器安装BIND。sudoapt-getinstallbind9#......
  • 在Linux中,如何配置静态和动态IP地址?
    在Linux中,配置静态和动态IP地址通常涉及到编辑网络配置文件或使用命令行工具。以下是配置静态和动态IP地址的步骤:1.配置静态IP地址确定网络接口名称:使用ipaddr或ifconfig命令查看可用的网络接口。编辑网络配置文件:根据你的Linux发行版,网络配置文件可能位于/etc/network......