分享好友 最新动态首页 最新动态分类 切换频道
通过Linux内核源码制作操作系统
2024-12-27 12:04

Linux源码只有运行起来才能成为操作系统,否则她只能静静的躺在存储介质上沉睡,本文就讲解如何将这个睡美人唤醒,唤醒后给他穿上旗袍她就成为RedHat,给她换上包臀裙她就成为SUSE,再或者给她换上超短裙,她就成为Ubuntu,总之就是你可以按照自己的想象,随意打扮这个小姑娘,当然我们也可让她裸奔。

没有编译过内核的朋友,可以查看我之前写过的一篇文章

CentOS下编译Linux内核_巭犇的博客-CSDN博客_centos 编译内核,本文在此基础之上,将唤醒这个沉睡的美人。

如果想要唤醒这个沉睡的少女(睡你MB,起来嗨,需要对计算机启动过程的原理有基本的认识,这里不再赘述,我只简单的讲解下关键的过程。

PC上电--->BIOS--->Bootloader加载OS kernel和initramfs

创建磁盘文件

 

对磁盘分区

 

将磁盘分区关联到/dev/loop设备

 

磁盘第一个扇区是MBR,紧跟着MBR的是2043个空闲的扇区,实际上GRUB就嵌入到这个空闲的扇区,因此磁盘真正用于保存数据是从2049扇区开始

 

losetup用于将磁盘文件与linux中的设备文件进行关联,为后续磁盘分区与格式化做准备, 命令中的“-o“”表示磁盘正在用于存储数据的起始位置(单位是字节,即2048 x 512 = 1048576 )


格式化分区并挂载分区

 

挂载分区

 

安装grub到MBR之后的空闲分区

 

配置内核文件

将编译好的内核文件放入/boot/目录下

 

配置initramfs文件

 

制作initramfs时,需要与内核版本一致,因为我当前的内核正是系统使用的内核,因此直接用uname -r 代替。


配置grub.cfg

 

hd0表示第一个硬盘,而msdos1表示该硬盘的第一个分区

linux (hd0,msdos1)/boot/bzImage console=tty0
表示:系统第一个硬盘,第一个分区的boot/bzImage文件是内核压缩镜像,而后面的console=tty0是内核启动参数,告诉内核输出到控制台上,而非图形化界面。

initrd (hd0,msdos1)/boot/initramfs
表示:系统第一个硬盘,第一个分区的boot/initramfs是内存文件系统。

到此为止,磁盘文件已制作完成,只需卸载磁盘文件即可,如下所示

 

唤醒沉睡的少女(从磁盘运行Linux

通过qemu-system-x86_64命令启动磁盘文件

至此内核已载入内存并通过cpu控制计算机

截止到目前,系统一直在使用initramfs作为临时的根文件系统,initramfs的主要目的之一就是辅助系统顺利地切换到真正的根文件系统。既然现在已经正确的驱动了硬盘,那么接下来,我们就切换到硬盘上的真正的根文件系统。

在grub.cfg中的内核文件后通过添加“root=/dev/sda2”可以指定根文件系统所在的介质,并通在修改initramfs中的init脚本即可以实现根文件系统的挂载。

接下来请尽情蹂躏吧,比如给她配个房子(切换到真正的根)、给房子配把锁(ssh)。。。

想进一步了解操作系统如何启动的道友,强烈推荐阅读《深度探索Linux操作系统》以及访问Welcome to Linux From Scratch!,Linux From Scratch (LFS) 完全通过源码一步一步引导你构建自己的Linux操作系统。

以下输出分为三部分

  1. 关机
  2. 加载内核与initramfs
  3. 切换到真正的根文件系统,并启动相关服务

最新文章
抖音付费推广有几种方式?有什么效果?
在抖音这个庞大的短视频平台上,付费推广成为了许多品牌和创作者快速提升曝光和影响力的有效手段。本文将详细介绍抖音付费推广的几种方式及其效果。一、抖音付费推广有几种方式?1.Dou+推广Dou+是抖音官方推出的付费推广工具,可以让视频获
招聘海外广告优化师
招海外广告投放(赤子城广州分)12-20K1、负责海外社交产品在Facebook/Google/Tiktok等及网盟等广告渠道的账户搭建,用户定位,数据监控及分析,优化广告数据,对广告效果负责2、制定海外社交产品项目整体的投放策略,负责素材方向及预算把控
哥普顿热水器快速售后24小时人工400-(问题解决) - 生活 - 百科知识-蓝心网
哥普顿热水器售后24小时维修服务热线:400-658-8618。哥普顿热水器全市各区售后服务点热线号码。☎:400-658-8618哥普顿热水器售后服务,秉承“诚信为本、客户至上”的服务态度和“以客户为中心”的服务指导思想,不仅真诚地为用户提供先进
爬虫大全:从零开始学习爬虫的基础知识,小白也能学
爬虫的实现原理其实很简单,就是模拟浏览器发送请求、获取响应、解析HTML代码、保存数据的过程。具体来说,可以分为以下几个步骤:我们在浏览器里输入网址访问网页时,其实就是在向服务器发送一条请求。在爬虫中&#
谷歌账号购买 谷歌邮箱批发 24小时自动发货
在当今数字化时代,谷歌账户(Google Account)已成为用户进入互联网世界的重要工具。无论是使用Gmail进行日常通信,还是通过YouTube获取丰富的娱乐内容,谷歌账户的影响力无处不在。对于希望在海外市场拓展业务或个人用户而言,购买谷歌账
网页转二维码:简单实用的在线工具
在如今的信息时代,二维码已经成为人们生活中不可或缺的一部分。二维码可以承载大量的信息,并且可以通过扫描进行快速的读取。在网页设计和推广中,将网页转为二维码是一项非常重要的工作。本文将介绍一种简单实用的在线工具,帮助用户将网
水排的汉语大词典
水排的汉语大词典是:古代一种利用水力推动革囊鼓风的冶铁装置。《三国志·魏志·韩暨传》:“旧时冶,作马排,每一熟石用马百匹;更作人排,又费功力;暨乃因长流为水排,计其利益,三倍于前。”明徐光启《农政全书》卷十八:“水排,韦囊
PyTorch深度学习模型训练加速指南2021
点击上方“AI公园”,关注公众号,选择加“星标“或“置顶” 作者:LORENZ KUHN 编译:ronghuaiyang导读简要介绍在PyTorch中加速深度学习模型训练的一些最小改动、影响最大的方法。我既喜欢效率又喜欢ML,所
网站怎么优化电池推荐
优化您的网站以推荐电池产品涉及几个方面,包括SEO(搜索引擎优化)、用户体验和内容策略。以下是一些关键步骤: 1. 关键词和SEO优化- 关键词研究: 使用工具如Google Keyword Planner、Ahrefs或SEMrush来识别与电池相关的高搜索量关键词,
虾皮店铺转让多少钱?如何转让?
现在很多卖家选择在跨境平台虾皮上注册开店,但是由于平台上的店铺是非常激烈的,很多卖家无法继续将店铺经营下去,就会想要将店铺进行转让,那么虾皮店铺转让是多少钱了?shopee店铺转让价格并不是一定的,主要还是看店铺的运营情况。一般
相关文章
推荐文章
发表评论
0评