linux系统底层逻辑 开机顺序 ubuntu22.04系统

以下有免费的4090云主机提供ubuntu22.04系统的其他入门实践操作

地址:星宇科技 | GPU服务器 高性能云主机 云服务器-登录

相关兑换码星宇社区---4090算力卡免费体验、共享开发社区-CSDN博客

兑换码要是过期了,可以私信我获取最新兑换码!!!'

下面获取最新兑换码

之所以推荐给大家使用,是因为上面的云主机目前是免费使用的,不需要大家再去安装虚拟机,部署虚拟机,环境都搭配好了,非常适合新手入门,减少搭建的时间,把时间都用在实践上。

第一步 开机自检,加载BIOS

第二步 读取MBR 引导扇区

第三步 BOOT Loader grub 引导菜单

#grub启动文件

cat /etc/default/grub

#cp复制完整副本

sudo cp /etc/default/grub /etc/default/grub.bak

GRUB_DEFAULT

#设置加载哪个OS 单个OS时默认0 可以输入OS名称

sudo update-grub #收到done

GRUB_TIMEOUT #系统可选择其他OS时间

隐藏启动菜单

++当文件打开时,您需要设置以下几行:++

  • ++GRUB_TIMEOUT_STYLE=hidden++++-++++隐藏启动菜单。尽管它仍然会等待您通过++++GRUB_TIMEOUT++++设置的几秒钟。++
  • ++GRUB_TIMEOUT_STYLE=countdown++++-++++隐藏启动菜单并显示倒计时。甚至设置++++GRUB_TIMEOUT=0++++。数到++++3++++、++++2++++、++++1++++。++
  • ++GRUB_TIMEOUT=0++++-++++它将立即启动默认操作系统。但是,您可以将其设置为++ ++3++ ++或++ ++5++++,这样您就可以在需要时按++++ESC++++(++++F4++++或按住++++Shift++++)来显示启动菜单。++
  • ++GRUB_DISABLE_OS_PROBER=true++++-++++禁用++++"++++/etc/grub.d/30_os-prober++++"++++,因为它会覆盖++++GRUB_TIMEOUT_STYLE++++的值。但是,它将不再找到除++++Ubuntu++++之外的其他操作系统。++
  • ++GRUB_RECORDFAIL_TIMEOUT=0++++-++++设置上次启动失败时的超时时间。如果没有该键,它将显示并停止在启动菜单等待用户操作。++

第四步 加载kernel内核

内核解压-内核启动-调用start_kernel函数

start_kernel函数位于init/main.c文件中,负责完成大部分内核的初始化工作。

  • 初始化控制台:设置内核的打印机制,以便后续的输出可以显示出来。
  • 初始化内存管理子系统:建立初始的内存管理结构,准备好内存分配机制。
  • 检测和初始化硬件设备:内核会检测并初始化系统中的各种硬件设备和驱动程序。
  • 启动中断处理机制:设置和启动中断处理机制,使得内核可以响应硬件中断。
  • 初始化内核调度器:初始化内核调度器,以便管理进程调度。
  • 加载初始进程:内核创建并启动第一个用户空间进程,通常是/sbin/init。

第五步 init进程依据inittab文件夹来设定运行级别

内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。

其实/etc/inittab文件最主要的作用就是设定Linux的运行等级,其设定形式是":id:5:initdefault:",这就表明Linux需要运行在等级5上。Linux的运行等级设定如下:

0:关机

1:单用户模式

2:无网络支持的多用户模式

3:有网络支持的多用户模式

4:保留,未使用

5:有网络支持有X-Window支持的多用户模式

6:重新引导系统,即重启

关于/etc/inittab文件的学问,其实还有很多。

第六步 init进程执行rc.sysinit

在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。

第七步 启动内核模块

依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块

第八步 执行不同运行级别的脚本程序 /etc/rc.d/rc.RUNLEVEL # RUNLEVEL为缺省的运行模式

根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务

第九步 执行/etc/rc.d/rc.local ----可以追加自己要启动的脚本

你如果打开了此文件,里面有一句话,读过之后,你就会对此命令的作用一目了然:

This script will be executed *after* all the other init scripts.

You can put your own initialization stuff in here if you don't

want to do the full Sys V style init stuff.

rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放到这里。

第十步 执行 /bin/login程序 启动mingetty,进入登录状态

到此系统就启动完成了

后续更新请及时关注吧

请各位帅哥美女们多多支持!!小花花小心心 更多入门知识慢慢补充啦

后期持续关注!

相关推荐
草莓熊Lotso5 小时前
Linux 文件描述符与重定向实战:从原理到 minishell 实现
android·linux·运维·服务器·数据库·c++·人工智能
历程里程碑5 小时前
Linux22 文件系统
linux·运维·c语言·开发语言·数据结构·c++·算法
寻星探路10 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
wdfk_prog13 小时前
[Linux]学习笔记系列 -- [drivers][input]input
linux·笔记·学习
七夜zippoe13 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
盟接之桥13 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
忆~遂愿13 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
湘-枫叶情缘13 小时前
1990:种下那棵不落叶的树-第6集 圆明园的对话
linux·系统架构
Fcy64814 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满14 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器