欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年farsight构建Linux根文件系统 .pdf

    • 资源ID:39732396       资源大小:44.66KB        全文页数:5页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年farsight构建Linux根文件系统 .pdf

    构建 Linux根文件系统1.根文件系统1.1 定义存放系统启动所必需的文件内核映像文件(嵌入式系统中,内核一般单独存放在一个分区中);内核启动后运行的第一个程序(init);shell程序;应用程序所依赖的库;.1.2 目录结构1.2.1 FHS标准:(Filesystem Hierarchy Standard,文件系统层次标准);定义文件系统中目录、文件存放的原则,不是强制性标准。1.2.2 目录:/bin存放所有用户都可以使用的、基本的命令;比须和根文件系统在一个分区中。/sbin存放系统命令,只有管理员可以使用的命令必须和根文件系统在同一分区中。/-/sbin*基本的系统命令,用于启动系统、修复系统等。*-/usr/sbin*不是急迫需要使用的系统命令。*-/usr/local/sbin/本地安装的系统命令。/dev:存放设备文件。/etc:存放配置文件。/lib/-libc.so.*动态链接C库。*-ld*链接器、加载器。/-modules内核可加载模块存放的目录。/home:用户目录。/root:根用户目录。/usr存放共享、只读的数据和程序;可以存放在另一个分区中,系统启动后再挂接到根文件系统的/usr目录下。/var:存放可变的数据。/procproc文件系统的挂接点;proc文件系统是一个虚拟的文件系统,用来表示系统的运行状态。/mnt:用于临时挂接某个文件系统的挂接点。/tmp用于存放临时文件;为减少对Flash的操作,可以在/tmp目录上挂接内存文件系统。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 5 页 -2.Busybox2.1 init进程2.1.1 定义由内核启动的第一个(唯一的一个)用户进程(ID=1);是后续所有进程的发起者,根据配置文件决定启动哪些程序;执行的程序通常是/sbin/init,也可以传入命令行参数指定一个程序作为init进程运行。2.1.2 内核如何启动init进程内核启动的最后一步是启动init进程,代码在linux内核源码的init/main.c中。static int noinline init_post(void)free_initmem();unlock_kernel();mark_rodata_ro();system_state=SYSTEM_RUNNING;numa_default_policy();/*打开标准输入(stdin)、标准输出(stdout)、标准错误(stderr);*对应的文件描述符分别是0,1,2。*/打开/dev/console设备文件,他是init进程的标准输入设备。if(sys_open(const char _user*)/dev/console,O_RDWR,0)0)printk(KERN_WARNING Warning:unable to open an initial console.n);/将文件描述符0复制给文件描述符1,2;/标准输入、标准输出、标准错误对应同一个文件(设备)。(void)sys_dup(0);(void)sys_dup(0);/*ramdisk_execute_command*指定了要执行的程序*1.”如果命令行参数中指定了rdinit=.”*ramdisk_execute_command等于此指定值。*2.如果/init程序存在*ramdisk_execute_command=/init*3.ramdisk_execute_command为空。*/if(ramdisk_execute_command)/*run_init_process函数*使用他的参数所指定的程序来创建一个用户进程;*一旦创建进程成功,此函数将不会返回。*/run_init_process(ramdisk_execute_command);printk(KERN_WARNING Failed to execute%sn,ramdisk_execute_command);/*execute_command*指定了要执行的程序*1.”如果命令行参数中指定了init=.”名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 5 页 -*execute_command等于此指定值。*2.execute_command为空*/if(execute_command)run_init_process(execute_command);printk(KERN_WARNING Failed to execute%s.Attempting defaults.n,execute_command);/依次尝试执行/sbin/init、/etc/init、/bin/init、/bin/sh。run_init_process(/sbin/init);run_init_process(/etc/init);run_init_process(/bin/init);run_init_process(/bin/sh);panic(No init found.Try passing init=option to kernel.);static char*argv_initMAX_INIT_ARGS+2=init,NULL,;char*envp_initMAX_INIT_ENVS+2=HOME=/,TERM=linux,NULL,;static void run_init_process(char*init_filename)argv_init0=init_filename;kernel_execve(init_filename,argv_init,envp_init);2.1.3 Busybox init程序流程设置信号处理函数;初始化控制台;解析inittab。2.1.4 初始化控制台内核启动init”进程时打开了/dev/console”设备作为控制台,一般情况下Busybox init程序使用/dev/console;如果内核启动init进程时设置了环境变量CONSOLE或是console,则使用环境变量所指定的设备。Busybox init”程序中,会检查这个设备是否可以打开,如果不能打开则使用/dev/null”。2.1.5 解析/etc/inittab文件/etc/inittab文件中的每个条目用来定义一个子进程,并确定他的启动方法。格式:::这个子进程要使用的控制台,若省略则使用与init进程一样的控制台。:对Busybox init程序无意义,省略。:要执行的程序,可以是可执行程序,或是脚本;”如果程序是交互的,字段前加上-”字符。:表示init进程如何控制这个子进程/*sysinit*系统启动后最先执行,只执行一次;*init进程等他结束后继续执行其他动作。*wait*系统执行完sysinit后,只执行一次;*init进程等他结束后继续执行其他动作。*once*系统执行完wait进程后,只执行一次;名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 5 页 -*init进程不等待他结束。*respawn*启动once进程后;*init进程监测发现该子进程退出时,重新启动他。*askfirst*启动respawn后;*与respawn类似,但init进程等用户输入回车确认后才启动子进程。*shutdown*系统关机时执行。*restart*Busybox中配置了CONFIG_FEATURE_USE_INITTAB,并且init进*程接收到SIGHUP信号时,先重新读取、解析/etc/inittab文件,再执行*restart程序。*ctrlaltdel*按下Ctrl+Alt+Del组合 键时执行。*/2.2 编译 和安装 Busybox详见 文档 系统 移植。2.3 构建根文件系统2.3.1 创建etc/inittab文件如busybox下的examples/inittab文件:#/etc/inittab:sysinit:/etc/init.d/rcS:askfirst:-/bin/sh:ctrlaltdel:/sbin/reboot:shutdown:/bin/umount-a-r:restart:/sbin/init2.3.2 创建etc/init.d/rcS文件为脚本文件,可在里面添 加想自 动执行的命令。如:#!/bin/shifconfig eth0 192.168.1.2mount-a/*ifconfig eth0 192.168.1.2*设置IP地址。*mount-a*按 照文件/etc/fstab中的配置挂接文件系统*/2.3.3 创建etc/fstab文件例如:#devicemount-pointtype optionsdumpfsck orderproc/procproc defaults00tmpfs/tmptmpfs defaults00/*device:要挂接的设备。*mount-point:挂接点。*type:文件系统类 型。*options:挂接参数。*dump:决定这个文件系统是否要备份。*fsck order:决定 磁盘 的检查 顺序。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 5 页 -*/名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 5 页 -

    注意事项

    本文(2022年farsight构建Linux根文件系统 .pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开