内核与ramdisk到底是什么关系
ramdisk一个作用就是用来解决boot过程中mount根文件系统的“先有鸡还是先有蛋”的问题的。
一般来说,根文件系统在形形色色的存储设备上,不同的设备又要不同的硬件厂商的驱动,比如intel的南桥自然需要intel的ide/sata驱动,VIA的南桥需要VIA的ide/sata驱动,根文件系统也有不同的文件系统的可能,比如ubuntu发行版可能一般用ext3,suse可能就不是了,不同的文件系统也需要不同的文件系统模块;假如把所有驱动/模块都编译进内核(注:即编一个通用的、万能的内核),那自然没问题,但是这样就违背了“内核”的精神或本质,所以一般来说驱动/模块都驻留在根文件系统本身上/lib/modules/xxx,那么“鸡蛋”问题就来了,现在要mount根文件系统却需要根文件系统上的模块文件,怎么办?于是,就想出ramdisk,内核总是能安装ramdisk的(注:这是因为ramdisk临时文件系统和内核一样,也是由bootloader通过低级读写命令(如uboot用nand read,而不用通过文件系统层提供的高级读写接口)加载进内存,因此内核可以挂载内存里ramdisk文件系统),然后把所有可能需要的驱动/模块都放在ramdisk上,首先,让内核将ramdisk当作根文件系统来安装,然后再用这个根文件系统上的驱动来安装真正的根文件系统,就将这个矛盾问题解决了
ramdisk还举出一个作用,现在的发行版在boot时一般都是图形界面的,那么,ramdisk就可以放framebuffer驱动和一些图片来做这种简单的动画。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
2018-01-12 服务提供流程
2016-01-12 Altium Designer 15 原理图器件隐藏引脚设置
2016-01-12 Altium Designer 15 铺铜