嵌入式LINUX系统安装时,内核映像只有2M左右,但文件系统却有100M,为什么?
另外,我正在用的开发板(mini2440)手册说:“以前的目标文件系统有4个版本:root_default,root_nfs,root_qtopia_tp,root_qt...
另外,我正在用的开发板(mini2440)手册说:“以前的目标文件系统有 4 个版本:root_default, root_nfs, root_qtopia_tp, root_qtopia_mouse,它们分别是为实现不同的启动方式和功能外设而创建的”
文件系统比如FAT32之类只要实现了一种管理存储器文件的函数就行,跟启动方式和功能外设有啥关系?
难道是指所以文件系统映像也包括以此文件系统方式存放的LINUX系统外设驱动程序等等吗?那LINUX内核映像是应该存放在这种文件系统管理的存储器上,为什么能先于文件系统映像烧写呢? 展开
文件系统比如FAT32之类只要实现了一种管理存储器文件的函数就行,跟启动方式和功能外设有啥关系?
难道是指所以文件系统映像也包括以此文件系统方式存放的LINUX系统外设驱动程序等等吗?那LINUX内核映像是应该存放在这种文件系统管理的存储器上,为什么能先于文件系统映像烧写呢? 展开
1个回答
展开全部
嵌入式LINUX系统安装时,内核映像只有2M左右,但文件系统却有100M,为什么?
你说的"文件系统"实际上说的是”根文件系统“,这个根文件系统当中至少包括了一些基本目录,如/etc, /lib,/bin ...等等。
还有一个概念叫”最小(根)文件系统“,他只包括了启动所需要的最基本的文件,例如/etc/init.d/rcS, /bin/busybox, /lib/libc.so ...等等,它的大小实际上也只要几M。如果仅仅是完成最基本的启动,那么这个文件系统已经足够了。
好了,那为什么你用到的根文件系统会有100M,而不是几M呢,因为我们的系统跑起来之后还要运行一系列的应用程序,看你给出的文件系统命名,应该会有一个叫qtopia的图形应用程序。
qtopia是 基于Qt的,那么我们要让qtopia跑起来,就需要Qt的库文件如libqtcore.so, libqtgui.so等,当然还需要Qt所需要的其它库如C++库libc++, 图片库,如libpng 之类的,这些库文件加起来就是几十M。另外qtopia应用程序本身也应该放在文件系统上吧,又需要空间。
当然除了qtopia之外还有很多其它应用程序和所需要的其它库,还有一些以模块方式(Moudle,后缀.ko)存在的驱动程序需要放在根文件系统中,当然还有诸如配置文件之类的东西,所以你看到的文件系统从只需要几M的最小根文件系统变成了100M的文件系统。
==========================================================================
文件系统比如FAT32之类只要实现了一种管理存储器文件的函数就行,跟启动方式和功能外设有啥关系?
如前所述,所有的东西都放在文件系统中,包括以模块方式存在的驱动,那么很明显root_nfs是以nfs(net file system)方式启动,那么你至少需要网络支持吧,其它的几个也是相同的道理,我估计这几个文件系统的主要区别就是驱动模块和配置文件不同而已。
=========================================================================
难道是指所以文件系统映像也包括以此文件系统方式存放的LINUX系统外设驱动程序等等吗?
是的
========================================================================
那LINUX内核映像是应该存放在这种文件系统管理的存储器上,为什么能先于文件系统映像烧写呢?
因为在内核启动之前有一个叫bootloader的东西,它负责把内核从存储设备上读到内存当中然后跳转运行。
你在启动内核之前应该会有一个叫vivi或者u-boot或者其它类似的东西吧,它已经完成了flash的驱动,并根据提供的参数,从flash的固定区域读取并加载内核。
希望对你有帮助
你说的"文件系统"实际上说的是”根文件系统“,这个根文件系统当中至少包括了一些基本目录,如/etc, /lib,/bin ...等等。
还有一个概念叫”最小(根)文件系统“,他只包括了启动所需要的最基本的文件,例如/etc/init.d/rcS, /bin/busybox, /lib/libc.so ...等等,它的大小实际上也只要几M。如果仅仅是完成最基本的启动,那么这个文件系统已经足够了。
好了,那为什么你用到的根文件系统会有100M,而不是几M呢,因为我们的系统跑起来之后还要运行一系列的应用程序,看你给出的文件系统命名,应该会有一个叫qtopia的图形应用程序。
qtopia是 基于Qt的,那么我们要让qtopia跑起来,就需要Qt的库文件如libqtcore.so, libqtgui.so等,当然还需要Qt所需要的其它库如C++库libc++, 图片库,如libpng 之类的,这些库文件加起来就是几十M。另外qtopia应用程序本身也应该放在文件系统上吧,又需要空间。
当然除了qtopia之外还有很多其它应用程序和所需要的其它库,还有一些以模块方式(Moudle,后缀.ko)存在的驱动程序需要放在根文件系统中,当然还有诸如配置文件之类的东西,所以你看到的文件系统从只需要几M的最小根文件系统变成了100M的文件系统。
==========================================================================
文件系统比如FAT32之类只要实现了一种管理存储器文件的函数就行,跟启动方式和功能外设有啥关系?
如前所述,所有的东西都放在文件系统中,包括以模块方式存在的驱动,那么很明显root_nfs是以nfs(net file system)方式启动,那么你至少需要网络支持吧,其它的几个也是相同的道理,我估计这几个文件系统的主要区别就是驱动模块和配置文件不同而已。
=========================================================================
难道是指所以文件系统映像也包括以此文件系统方式存放的LINUX系统外设驱动程序等等吗?
是的
========================================================================
那LINUX内核映像是应该存放在这种文件系统管理的存储器上,为什么能先于文件系统映像烧写呢?
因为在内核启动之前有一个叫bootloader的东西,它负责把内核从存储设备上读到内存当中然后跳转运行。
你在启动内核之前应该会有一个叫vivi或者u-boot或者其它类似的东西吧,它已经完成了flash的驱动,并根据提供的参数,从flash的固定区域读取并加载内核。
希望对你有帮助
力控科技
2024-08-19 广告
2024-08-19 广告
ForceSCADA是力控科技信创产品的重要组成部分,具备完全自主知识产权,支持部署在Linux桌面版、服务器版、嵌入式等系统架构下。使用ForceSCADA可以搭建创新性高、扩展性佳、融合度强的SCADA平台,进而构建高效、智能化的监控中...
点击进入详情页
本回答由力控科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询