linux启动时加载内核到内存中,那这样是不是意味着系统正常启动后就可以把内核删掉了啊?当然就没有办法
推荐回答
vmlinuzvmlinuz是可引导的、压缩的内核文件。该文件包含了一个最小功能的内核,在PC上通常是先执行vmlinuz,之后加载initrd.img文件,最后加载根分区。initrd文件initrd是“initialramdisk”的简写。就是由Bootloader初始化的内存盘。在linux内核启动之前,Bootloader会把存储介质中的initrd文件加载到内存,内核启动时会在访问到真正的根文件系统前访问内存中的initrd文件系统。
龙希庆2019-12-21 19:56:06
提示您:回答为网友贡献,仅供参考。
其他回答
-
,很高兴为您解答。可参考:http://www.educity.cn/linux/1607443.html如若满意,请点击右侧希望我的回答对您有所帮助,!~O∩_∩O~。
窦连福2019-12-21 20:54:52
-
开机--加电自检--读取CMOS设置--从硬盘引导记录查找系统所在位置--读取GRUB配置文件,打开默认运行级别,加载相应服务,开机启动项--完成启动过程。
黄盛琰2019-12-21 20:37:24
-
这是一个很好的问题;因为如果先加载驱动,那么没有内核启动,他是怎么加载驱动的呢?如果先加载内核那他是怎么识别文件系统和磁盘驱动的呢?是一个先有鸡还是先有蛋的问题;在rel系列的操作系统中;在/boot目录下有grub目录,还有initrd-XXX.img,还有vmlinuz.....其实这3个文件和目录是系统启动的关键;grub第一阶段在MBR中,功能就是引导第2阶段,第1.5阶段和第2阶段在/boot/grub当中;为什么叫他1.5阶段,是因为系统中就这么命名的;而1.5阶段中就启动需要的常见的文件系统类别,当然如果自制系统,可以把文件系统模块放到这个里面;第2阶段就是为了引导系统的;之后系统启动,然后通过rc.sysinit开始加载和初始化各种驱动;所以你的问题的总结是:先部分驱动,然后系统,然后全部驱动;当时学完了这个就自制了在手机上启动一个linux;当然也可以称为安卓;因为我也是用busybox实现的;只是没有好看画面,还有驱动不全;只是能启动而已。
齐月娥2019-12-21 20:19:43
-
linux的内核的确是由bootloader装载到内存中的。linux的bootloader有2个部分组成:bootstrap和uboot。所以更准确点的说法是:linux的内核是由uboot装载到内存中的。内核文件本身是存放在硬盘的文件系统中,这句话就是错的。内核和文件系统是分开存储的。uboot读取kernel到内存是从kernel开始存储的地址开始读取的,而读取开始位置和读取大小,是由环境变量决定的。所以这个时候不需要文件系统的。 给你张图片,便于理解吧。这张图片是bootstrap、uboot、环境变量、kernel、文件系统在nandflash里面的存储分布。其中rootfs.jfss2就是文件系统。
齐旭明2019-12-21 20:05:45