问一个关于/dev/ram /dev/shm的问题
我理解内存是(可能)可以当一个设备使用,特别是把内存挂到/的优势。 但是内核开始运行的时候没有根目录,那怎么能使用/dev/ram 呢
而且我查了一下,shm是个目录,还跟共巷内存有关呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我理解内存是(可能)可以当一个设备使用,特别是把内存挂到/的优势。 但是内核开始运行的时候没有根目录,那怎么能使用/dev/ram 呢
而且我查了一下,shm是个目录,还跟共巷内存有关呢?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
内核初始化时会创建虚拟的根的super_block, 和对应的 虚拟的根 inode, 然后挂载initrd, initrd文件系统里面 会有/dev/ram的
initrd是一个压缩的文件系统 ,先使用:cp initrd initrd.gz, 然后gunzip initrd.gz
现在可以使用 loop设备挂载 解压后的 initrd了 , mount -o loop initrd /initrd
然后你可以在 /initrd中看到里面的东东 了
谢谢,可是我还是理解我了,我连initrd是什么都不知道。
是压缩后的东西,但是不知道这个步骤是怎么样,
内核启动的时候,/位于加载initrd的空间
可能是/boot所在分区,可能是/dev/ram
但内核认为这就是/,并不知道这个/是将来的/boot还是什么的
然后mkdev
然后mount
然后调用pivot root到系统启动后的/
原先的/就变成/dev/initrd
最后umount initrd
如果/挂在/dev/ram,那么就不执行umount initrd