首页 > 系统相关 > 内核在Linux启动中的中流砥柱

内核在Linux启动中的中流砥柱

时间:2023-06-12 15:38:32浏览次数:49  
标签:systemd 系统启动 target 目标 中流砥柱 内核 Linux 加载

       内核时操作系统中最基本的部分,它在系统启动时被加载到内存里面,然后留在内存中管理系统的资源、调度进程等。

  •  内核可以管理进程、用户、内存等主要部分。
  • 在编译过程中静态链接到主机的内核模块中。
  • 有一种可加载的内核模块,在编译时没有链接到主机,但是在系统启动时或启动后被加载到动态加载到内核中。分析图如下:

 

                                           内核在Linux启动中的中流砥柱_系统启动

           内核在/boot目录下,引导顺序期间的内核处理由引导加载程序GRUB2加载到内核中,内核执行自解压,然后在内核中初始化。之后解压在内存中加载到inittramfs文件,内核会重新执行systemd程序。

          inittramfs是一个小型的根文件系统,在引导时回加载到内存中。系统顺利运行之后会写在掉它,挂载系统真正的根目录。实际上inittramfs是载入到系统启动过程中会用到的一个模块。

        内核在初始化时做了以下事情:

  1. 检测计算机里面的设倍。
  2. 发现设备后将设备的驱动程序初始化并加载内核中。
  3. 载入必要的驱动程序后,以只读的方式挂载到根目录文件系统中。
  4. 内核将载入第一个Linux内核中。

                                                    systemd守护进程

          systemd是内核主动调用的第一个程序,它的主要功能就是准备软件环境,为用户使用系统做准备。在systemd的启动序列中可以通过default.target来设置系统启动到图形目标(graphical.tartget)还是多用户目标(muti-user.target)。图形目标将显示登录界面,用户可以登录到桌面环境;多用户目标将显示命令提示符,用户可以在没有桌面环境的情况下登录到GUI环境。

        target可以为系统提供不同的目标服务,相当于Linux之前System V的运行级别。除了之前两个目标,还有rescue.target等不同的目标。systemd的启动顺序如下图:

                                           内核在Linux启动中的中流砥柱_系统启动_02

         systemd的目标扩展单元的扩展名是“.target”它取代了之前的运行级别(runlevel),允许用户在启动时只启动某一个特定的服务。运行级别可以用来定义操作系统当前正在运行的功能级别,级别从0到6具有不同的功能。另外,系统启动完成之后,会创建很多的进程。而systemd的目标单元之间的对应关系。

目标

说明

运行级别

default.target

系统启动时的默认目标

——

sysinit.target

在系统启动时进行初始化的设置目标

——

rescue.target

管理员在发生故障或者维护时的使用目标,管理员输入root密码登录来执行维护工作

1

basic.target

系统启动时进行基本设置的目标

——

muti-user.target

基于文本的多用户设置目标

3

graphical.target

图形界面登录目标

5

      如果你想查看自己系统中的目标是哪一个,可以使用systemctl命令查看,不过要在这个命令后边加一个子命令get-default才行。那如果想修改这个默认的目标该怎么办。可以利用另一个子命令set-default就可以。结果如下:

                                           内核在Linux启动中的中流砥柱_加载_03

从上面可以看出属于图形化界面。

如果将当前正在运行的目标迁移到另外一个目标,需要执行systemctl命令的子命令isolate和init命令。

目标迁移

systemctl isolate

init5

至graphical.target

systemctl isolate graphical.target

init3

移至muti-user.target

systemctl isolate muti-user.target

init3

转到rescue。target

systemctl isolate rescue.target

init1


标签:systemd,系统启动,target,目标,中流砥柱,内核,Linux,加载
From: https://blog.51cto.com/u_15912723/6462890

相关文章

  • Linux RDP 会话中无法打开VSCode 解决办法
    githubissue:VSCode"andstill"won'topeninaLinuxxrdpsessionWorkaround-LinuxRDP会话中无法打开VSCode解决办法ThistimearoundIresolvedtheissuebynarrowingthefollowingHackintwosteps:Copythesystemfile'libxcb.so.1.1.0'......
  • 字符设备驱动-9.内核定时器
    1引入定时器前面的gpio按键驱动引入了中断,当按键按下会记录按键信息,理想状况是按下一次按键记录一组数据,但实际上按下机械振动导致电平反复跳动最后才稳定,按下一次gpioirq会触发多次,这个被叫做“抖动”,那么可以利用定时器进行“去抖”。到linux_5.10版本structtimer_list......
  • 为Linux配置固定IP(Windows)
    配置固定IP地址目前我们虚拟机的Linux操作系统,其IP地址是通过DHCP服务获取的。DHCP:动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP地址频繁变更。为什么需要配置固定IP地址原因1:办公电脑IP地址变化无所谓,但是要远程连接到Linux系统,如果IP地址经常变化就要频繁修改适......
  • Linux控制服务启动关闭
    systemctl命令Linux系统很多软件(内置或第三方)均支持使用systemctl命令。系统内置服务均可被systemct控制第三方软件,如果自动注册了可以被systemct控制第三方软件,如果没有自动注册,可以手动注册。systemctl命令控制:启动,停止,开机自启。能够被systemctl管理的软件,一般称之为:服......
  • linux占用内存查询 --------------Linux内存占用分析的几个方法
    Linux内存占用分析的几个方法原创 入门小站 入门小站 2023-06-0121:30 发表于湖北收录于合集#Linux804个入门小站分享运维技巧及10k+Stars的开源项目265篇原创内容公众号【Linux250个常用命令速查手册】关注【入门小站】,后台回复「1001」自取......
  • Linux操作系统实训操作(一)
    Linux操作系统实训操作(一)原创 宇翔2020 网路小栈 2023-03-1519:00 发表于山东收录于合集#linux操作系统12个1、查看内核版本的命令(截图)     2、查看发行版本的命令(截图)3、在root用户和sdws用户之间进行切换,并分别查看他们的家目录。(截图)4、查看历史命令(截图......
  • laravel 队列linux环境下的部署与使用 supervisor 的使用
    由于上一章写了laravel队列本地开发的注意事项,但真实项目是要上线到linux服务器上,所以还得借助supervisor工具,网上资料很多,但良莠不齐,所以自己基于实践总结了下: linux下laravel队列操作1.安装yuminstallsupervisor查看版本 supervisord-v 我使用的是4.2.2 2.......
  • Linux中软连接详解
    Linux中软连接详解原创 weijishu 微技术之家 2023-06-0206:06 发表于上海Linux软连接详解 软连接是linux中一个常用命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。换句话说,也可以理解成Windows中的快捷方式。linux创建软连接命令: ln-s[dir1]......
  • Linux操作系统实训操作五(实验效果)
    Linux操作系统实训操作五(实验效果)原创 宇翔2020 网路小栈 2023-04-1007:00 发表于山东收录于合集#Linux操作系统2个#CentOS4个 1、新建用户jyzy(计应专业)、dmzy(动漫专业)、shzy(书画专业)、hkzy(航空专业),用tail命令查看/etc/passwd文件的后四行内容。(截图)。 ......
  • linux之安装gitlab
    1.安装gitlab安装gitlab1.下载gitlab先https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ee-15.11.3-ee.0.el7.x86_64.rpm2.利用xftp传上去2.1检查依赖rpm-qa|grep-iopenssh-serverrpm-qa|grep-ipolicycoreutils-python3.安装3.1安......