Linux开机启动,如何启动内核? (linux怎么启动内核)

Linux操作系统在开机时,需要启动内核,以便让系统能够正常运行。内核是操作系统的核心组件,它负责管理操作系统的资源,控制系统的运行,处理外部设备的数据等。本文将介绍Linux开机启动过程中如何启动内核。

1. BIOS加载

在电脑开机时,计算机会首先加载Basic Input/Output System(BIOS),BIOS是一种固化在主板固件中用于在开机时初始化硬件和启动操作系统的程序。首先BIOS会进行硬件自检,然后扫描并加载硬盘上的引导扇区。

2. 引导扇区的加载

引导扇区是硬盘上的一个区域,它负责加载操作系统的引导程序。在Linux系统中,引导程序位于/boot/grub/目录下的grub.cfg文件中。该文件包含了操作系统的启动选项和引导顺序。

当BIOS加载了引导扇区后,它会扫描引导扇区的内容,并将控制权交给引导程序。引导程序的主要作用是加载内核,并将操作系统的控制权转交给内核。

3. 内核加载

引导程序将加载内核的过程分为两个阶段:之一个阶段和第二个阶段。

之一个阶段:引导程序会从硬盘中找到内核文件,并将内核文件加载到内存中。内存地址通常是0x100000(1MB),然后跳转到此地址,进入第二个阶段。

第二个阶段:内核已经在内存中运行,操作系统从此时开始启动。内核启动时会执行一些初始化操作:

1. 内核会检测系统的硬件设备,如处理器、内存、硬盘、输入设备等。

2. 内核会初始化CPU,并分配CPU时间片,就像操作系统分配CPU时间片一样,以便让各个进程可以轮流执行。

3. 内核还会加载一些模块,如驱动程序等,以便系统能够识别硬件设备并进行相应的操作。

4. 内核会加载root文件系统,这是Linux操作系统中的核心文件系统。root文件系统包含了所有操作系统的文件和目录。

5. 内核会运行init程序,init程序是Linux操作系统中的之一个进程,它会初始化操作系统,并启动其他服务进程。

在Linux操作系统中,内核是最重要的组件之一,它是操作系统的核心,并负责管理硬件资源和控制系统的运行。在Linux开机启动过程中,首先BIOS会加载引导扇区,然后引导程序会加载内核,并将控制权交给内核。内核会执行一些初始化操作,包括检测硬件、初始化CPU、加载驱动程序和root文件系统等。内核会运行init进程,初始化操作系统,并启动其他服务进程。

相关问题拓展阅读:

  • 如何使linux开机时选择要进入的内核版本
  • 如何使用bochs启动linux2.6.0版本内核

如何使linux开机时选择要进入的内核版本

开机一直按E键即可进入内核选择界面。

找了蛮久解决方案的一个问题……

编辑 /etc/default/grub (比如命令:sudo gedit /etc/default/grub)

找到 hidden_timeout 数字改为10,保存

终端执行命令:sudo update-grub

sudo reboot重启 ,正常的话 会有一个

倒计时

那个时候按住shift 然后在菜单栏里选就ok了

启动Linux操作系统后,按‘e’键进入Grub引导界面,选择指定内核进行引导。

在开机后的引导菜单里面用键盘上的上下方向键选择,回车就可以了

修改grub.cfg

如何使用bochs启动linux2.6.0版本内核

当然不能真正启动就panic了,但是单步调试和理解内核在x86平台启动已经够了灶罩逗。

bochs下运隐卖行linux3.0内核(已验证)

1. 构造调试环境

由于bochs内建调试功能, 且支持gdb, 用它调试内核会很方便.

(文章中大部分命令的运行需要root权限,以sudo方式运行)

1.1 构建磁盘镜像

Shell代码

dd if=/dev/zero of=hd0.img

count=$((63*16*100))

用这个命令可以构建一个50MB左右的磁盘镜像, 输出结果如下:

100800+0 records in

100800+0 records out

bytes (52 MB) copied, 0.s, 70.3

MB/s

注意count必须为63*16的倍数, 否则bochs识别硬盘会有问题.

1.2 挂载磁盘镜像

Shell代码

losetup /dev/loop0 hd0.img

这个命令可以将文件绑定到一个loop设备. 如果/dev/loop0不存闷首在, 可以尝试 modprobe

loop.

然后进行设备初始化:

Shell代码

cfdisk -s63 -h16/dev/loop0

只创建一个主分区就可以. 写入后, 用命令fdisk检查结果:

Shell代码

fdisk -lu /dev/loop0

Disk /dev/loop0: 51 MB,bytes

16 heads, 63 sectors/track, 100 cylinders, total

sectors

Units = sectors of 1 * 512 = 512 bytes

Disk identifier: 0x

Device Boot Start End Blocks Id System

/dev/loop0p368+ 83 Linux

将分区1挂载到/dev/loop1.

Shell代码

losetup /dev/loop1 hd0.img -o

$((63*512))

格式化/dev/loop1为ext3格式.

Shell代码

mkfs.ext3 /dev/loop1

在mnt下创建img目录, 做以后维护用.

Shell代码

mkdir -p /mnt/img

将loop1挂载到/mnt/img

Shell代码

mount /dev/loop1 /mnt/img/

安装引导程序. 因为我狂热倾向于模块化架构, 所以选择GRUB2.

本文以grub-1.97~beta3为示例,

读者可自行安装其他的引导系统如lilo.

Shell代码

mkdir /mnt/img/boot

cp -r /usr/lib/grub/i386-pc/

/mnt/img/boot/grub

生成一个core.img, biosdisk负责读取磁盘, part_msdos负责处理MBR,

ext2负责读取ext3分区.

Shell代码

cd /mnt/img/boot/grub/

grub-mkimage -O i386-pc -o core.img biosdisk part_msdos

ext2

Shell代码

ls -lh core.img

-rw-r–r–1 root root 25K Sep2114:28

core.img

只有区区的25K.. 里面甚至还包含一个小的应急shell, 不过作用不大.

安装grub2到(hd0), 根目录在(hd0,1)

Shell代码

echo”(hd0) /dev/loop0″ >

./device.map

grub-setup -m ./device.map -d /mnt/img/boot/grub/ -r

‘(hd0,1)’ ‘(hd0)’

检查一下安装成果:

Shell代码

hexdump -C /dev/loop0 | less

如果你能看到:

Shell代码

d e8 2e00 cd18 eb

fe65|}…….GRUB .Ge|

f 6d6973 6b|om.Hard

Disk.Rea|

就说明安装成功.

清理一下.

Shell代码

cd

umount /mnt/img

losetup -d /dev/loop1

losetup -d /dev/loop0

1.3 启动测试.

给上面的hd0.img配一个bochsrc文件, 可以拿bochs示例dlxlinux的配置文件来改,

只需将硬盘换为:

Shell代码

ata0-master: type=disk, path=”hd0.img”, cylinders=100,

heads=16, spt=63

然后启动Bochs, 顺利的话, 你能看到传说中的grub2 shell.

2. 从启动到保护模式.

为我们的bochs虚拟机编译一个内核. 不必太复杂,

目前我们只关心启动部分.

2.1 安装内核

退出bochs, 挂载hd0.img:

Shell代码

mount hd0.img /mnt/img/ -o

loop,offset=$((63*512))

拷贝bzImage.

Shell代码

cp /usr/src/linux/arch/i386/boot/bzImage

/mnt/img/boot/vmlinuz-3.0.00

这两个步骤可以放到内核的Makefile中, 以后每次编译完成后,

自动更新到hd0.img里.

然后将下列配置写到/mnt/img/boot/grub/grub.cfg

Shell代码

# Timeout for menu

set timeout=10

# Set default boot entry as Entry0

set default=0

# Entry0- Load Linux kernel

menuentry”Linux-3.0.00″{

set root=(hd0,1)

linux

/boot/vmlinuz-3.0.00root=/dev/hda1

关于linux怎么启动内核的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

香港服务器首选树叶云,2H2G首月10元开通。
树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/178124.html<

(0)
运维的头像运维
上一篇2025-03-25 23:06
下一篇 2025-03-25 23:08

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注