电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

试试一张软盘可装下linux

8页
  • 卖家[上传人]:kms****20
  • 文档编号:40528133
  • 上传时间:2018-05-26
  • 文档格式:DOC
  • 文档大小:31KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、试试一张软盘可装下试试一张软盘可装下 LinuxLinux试试一张软盘可装下 Linux(嵌入式 Linux) 本文出自:赛迪网-中国计算机报 作者:张宏伟、欧阳平平 (2001-08-24 08:00:01) 嵌入式 Linux 由一个几百 KB 的 kernel(内核)和一些根据需要进行定制的系统模块组成。由于 Linux 是开放源代 码的操作系统,因此,其在嵌入式领域有其不可替代的成本和高度灵活性等优势。 将 Linux 系统裁减到就像 DOS 一样只要一张软盘就能启动,是制作嵌入式 Linux 的基础。网络上有许多实现方法 的介绍,但是在实践过程中都或多或少存在着一些问题或不方便之处。我们结合自己在这方面的实践经验,详细介 绍基于软盘 Linux 的制作过程。 三个基本元素 一个嵌入式 Linux 系统只需要下面三个基本元素:引导程序、Linux 微内核(由内存管理、进程管理和事务处理 构成)和初始化进程。如果要让它有更多的功能且保持小型化,还可以加上文件系统、TCP/IP 网络支持、GUI(图形 用户界面)和设计精简的应用程序,并将其放在 ROM、RAM、FLASH或 Dis

      2、k On Chip 中启动。由于嵌入式 Linux 操作系 统的高度灵活性,开发者可以很容易地对它进行定制或作适当开发,来满足实际应用需要。 将 Linux 的系统裁减到只要一张软盘就能启动,不但是制作嵌入式 Linux 的基础,而且自己也有广泛的应用前景。 这些应用包括简单路由器管理、三层交换机管理、floppy-boot 防火墙管理等。国外有专门的组织致力于这方面的工 作,如 LOAF(Linux on a floopy)等组织。 选择内核 创建一个启动盘首先必须创建系统内核。由于软盘容量有限,因此常采用对内核进行手工配置,去掉不必要的 模块的方法来裁减内核。 要想裁减内核体积,创建它时就得把不必要的功能去掉,如去掉对网络的支持和对不必要设备的支持。但是一 定要记住保留内核对 RAMDISK 和 ext2 的支持,否则启动盘将不能工作。其过程如下: 1)以 root 超级用户登录,进入目录/usr/src/linux。 2)执行#make menuconfig 来对内核模块进行配置(也可以在 X Window 中运行 make xconfig)。 3)依次执行#make dep 和

      3、#make bzImage (如果内核不大则执行#make zImage),执行该命令后,将在 /usr/src/linux/arch/i386/boot 目录下生成内核文件 bzImage(或zImage)。若配置中加入了模块的支持(选项为 M), 还需要执行#make modules 和#make modules_install。 4)用命令#cp usr/src/linux/arch/i386/ boot/bzImage /boot拷贝新内核到/boot 目录,修改文件 /etc/lilo.conf,加入: image = /boot/bzImage label = new root =/dev/hdxx(你自己的启动硬盘分区) read-only 执行命令#lilo 载入新内核,#reboot 重启系统,在出现“lilo:”时键入 new。若系统正常引导,则执行下一步, 若不行则用老内核引导后,到步骤 1)重新配置编译内核。 5)插入软盘执行 #dd bs=1k if=/usr/src/linux/arch/i386/ boot/bzImage of=/dev/fd0 这样将内

      4、核拷贝到软盘上。 6)用命令#ls -s 将在/usr/src/linux/ arch/i386/boot/bzImage 得到内核的大小(假定为 476),将这个大小记 录下来以备后用。 这样就制作了包含裁减内核的可供启动的 Linux 启动软盘。但是由于没有 root 文件系统,使用这张软盘启动系 统后,系统会显示“VFS: cannot open root device x:x”和 “kernel panic: VFS: unalbe to boot root fs on x:x”的错误。root 文件系统 一个 root 文件系统必须包括支持完整 Linux 系统的全部东西,因此,它至少应包括:基本文件系统结构;至少 含有目录/dev、/proc、/bin、/etc、/lib、/usr、/tmp;最基本的应用程序,如 sh、ls、cp、mv 等;最低限度的 配置文件,如 rc、inittab、fstab 等;设备:/dev/hd*、/dev/ tty*、/dev/fd0;基本程序运行所需的函数库。 由于以上所需文件远超过 1.44M,因此我们通常的做法是在准备好内容后将其压缩到

      5、软盘中。当用软盘启动时, 再把文件解压到内存中,形成一个虚拟盘(RAMDISK),通过 RAMDISK控制系统启动。如果你使用 LILO 控制启动,先检 查一下 LILO 的配置文件/etc/lilo.conf 中定义的 RAMDISK 的大小:RAMDISK_SIZE = nnn 创建 root 文件系统 回到根目录或用户的缺省目录,用#mkdir flop 建立工作目录flop。在这个目录下用 mkdir 建立以下一些目录: /dev,设备;/proc - proc,文件系统所需目录;/etc,系统配置文件;/sbin,重要的系统程序;/bin,基本应 用程序;/lib,共享函数库;/mnt,装载其他磁盘节点;/usr,附加应用程序。 其中/proc、/mnt 和/usr 在此情况下都是空的,只需要用mkdir 创建它们即可。其余的目录应根据需要分别创建。 下面对它们一个一个地详细叙述。 /dev:这个目录中含有系统不可缺少的设备文件。你可以把现有系统中/dev 的文件拷贝过来,然后删除不必要 的文件。不过一定要保留 console、kmem、mem、null、ram、tty*等文

      6、件。其余的都可以根据需要删除。 /etc:这个目录中含有一些必不可少的系统配置文件。一般可以包含 rc.d/* (系统启动脚本)、fstab(列出要登 录的文件系统)、inittab(包含启动过程参数)、passwd (用户名和目录)、group(用户组)、shadow(用户加密密码)。 如果不使用 init 作为登录进程,而将 init 链接到/bin/bash,则/etc 目录下可以不含有任何文件。 /bin 和/sbin:该目录中包含有必不可少的应用程序,如ls、mv、cat、cp、getty(mingettty)。也可以根据自 己的需要选择,不过一定要记住包括以下程序:init、getty、login、mount、bash。 /lib:该目录中包含有你的启动盘启动过程中所需要的共享函数库。在/lib 目录下还必须有函数库装载器,这个 装载器或是 ld.so (对 a.out 库)或是 ld-linux.so (对 ELF 库)。 模块 如果有一个模块化的内核,你还得必须考虑需要加载的模块。它们都位于/lib/modules。你可以把不是很重要的 模块放到别的盘上,当系统启动后再

      7、加载,这样会节省启动盘的空间。 打包 1)建立 loop 设备的临时挂接点和一个大小为 4.6 兆(大小可以调节)的临时文件,并将其清零: #mkdir /mnt/loop 2/dev/null #dd if=/dev/zero of=/tmp/loop_tmp bs=1k count=4600 /dev/null 2)将 loop 设备与临时文件联系起来 #losetup /dev/loop0 /tmp/loop_tmp 3)Linux 内核识别两种可以直接拷贝到 RAMDISK 的文件系统,它们是 minix 和 ext2,ext2 性能更好: #mke2fs -m 0 /dev/loop0 2/dev/null #mke2fs 将会自动判断设备容量的大小并相应地配置自身,-m 0 参数防止它给 root 保留空间,这样会腾出更多 的有用空间。 4)接着把虚拟盘挂在节点/mnt 上: #mount /dev/loop0 /mnt/loop -t ext2 5)将制作好的 root 文件系统拷贝到所挂的节点上,卸下挂接点,删除建立的挂接点,再取消 loop 设备与临时挂 接点的联系。

      8、 #cp -a ./tree/* /mnt/loop #umount /mnt/loop #rmdir /mnt/loop 2/dev/null #losetup -d /dev/loop0 6)压缩文件系统后,就拥有了一个压缩的 root 文件系统,删除建立的临时文件。 #dd if=/tmp/loop_tmp | gzip -9 rootfs.gz #rm -f /tmp/loop_tmp 7)检查压缩后的 root 文件系统的大小,如果大了,还得去掉一些东西。 #ls -s ./zImage|cut -f2 -d 整合 有了 root 文件系统和内核之后,最后的工作就是把它们整合在一起。 先检查总文件的大小,包括已经制作的内核和打包的 root 文件系统。如果超出 1.44M,就得考虑重新创建。root 文 件系统所需的所有文件都准备就绪,你就可以运行它了,运行结果应该没有错误,否则就应该仔细检查一下。 真正的嵌入式 Linux 系统 到这里基于软盘的 Linux 盘已经做好了,剩下的工作就是测试这张盘的正确性,如果有问题还得从头再来。 现在许多 Linux 的发行套件中都有厂家做好的启动盘,它们的制做原理和以上介绍的大同小异,但是它们常常使用 许多不同的技巧,因为它们要面对更多的硬件和各种可能发生的情况。 真正的基于 IA 应用的嵌入式 Linux 还必须加入 GUI(图形用户界面)和设计精简的应用程序,如网络浏览器等。GUI 方 面开放源代码的,国外有 Microwindows(可访问www.microwindows.org),国内有 miniGUI(可访问 www.minigui.org)。它们的源代码都可以在网上找到。浏览器方面用得较广的是ViewML(www.viewml.org),它也是开放源代码的。结合以 上一些工具,再加上对硬件驱动程序的开发,就可以形成一套嵌入式的 Linux 操作系统。

      《试试一张软盘可装下linux》由会员kms****20分享,可在线阅读,更多相关《试试一张软盘可装下linux》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.