- 博客(11)
- 收藏
- 关注
原创 initrd解析
initrd主要被设计用来执行系统的两阶段启动,在initrd中,内核完成最简单的驱动设置,加载initrd中的基本模块。initrd RAM磁盘最初是设计用来通过一个临时根文件系统来作为内核到最终的根文件系统之间的桥梁。/dev/initrd是一个只读块设备,其主设备号是1,次设备号是250。该设备是一个在内核被启动前被bootloader用于初始化的RAM disk,内核使用/dev/initrd的内容用于两阶段启动。BootLoader加载内核程序和/dev/initrd的内容到内存;
2023-08-16 20:22:56
675
原创 linux引导initrd流程解析
因此early_initrd()函数在start_kernel()–>setup_arch()–>parse_early_param();unpack_to_rootfs()调用decompress()解压initrd, 不断调用flush_buffer()流式的获取到解压结果,使用状态机处理cpio格式的结果。init/do_mounts.h 文件中根据是否支持RAMDISK(即是否定义了CONFIG_BLK_DEV_RAM宏)定义不同的函数。2.2 根据initrd的物理地址填充initrd虚拟地址。
2023-08-16 20:16:01
847
原创 我的技术之路
今天开通了优快云博客,真的好开心!一个是作为我今后的技术文档记录,另一方面也是对自己技术成长的总结吧!以前移植ARM9处理器uboot和linux的时候参考了大量的别的文档,每当遇到一个可能很简单的问题,但限于对相关知识的了解程度或技术知识积累,往往会在一个小问题上卡好久,若别人做过相同的事情,又有记录,问题一下就解决了。这样可以节省好多时间。以前都是索取,以后也写一点自己的文档,希望对别人提供
2016-12-24 09:58:09
867
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人