⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000003.htm

📁 关于embedded的文章
💻 HTM
📖 第 1 页 / 共 4 页
字号:
完整linux的/dev目录下有很多设备文件,不过仔细辨别一下就会发现很多其实&nbsp;<BR>用不上。我列出在我的最小Linux下面用到的设备文件:&nbsp;<BR>[root@MiniLinux&nbsp;dev]#&nbsp;ls&nbsp;<BR>agpgart&nbsp;&nbsp;hda&nbsp;&nbsp;&nbsp;hda6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input&nbsp;&nbsp;loop3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;psaux&nbsp;&nbsp;ptyp3&nbsp;&nbsp;ram3&nbsp;&nbsp;tty3&nbsp;&nbsp;&nbsp;ttyp4&nbsp;<BR>console&nbsp;&nbsp;hda1&nbsp;&nbsp;hda7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kbd&nbsp;&nbsp;&nbsp;&nbsp;loop4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ptmx&nbsp;&nbsp;&nbsp;ptyp4&nbsp;&nbsp;ram4&nbsp;&nbsp;tty4&nbsp;&nbsp;&nbsp;urandom&nbsp;<BR>fb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hda2&nbsp;&nbsp;hda8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kmem&nbsp;&nbsp;&nbsp;loop5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pts&nbsp;&nbsp;&nbsp;&nbsp;ram&nbsp;&nbsp;&nbsp;&nbsp;shm&nbsp;&nbsp;&nbsp;ttyp0&nbsp;&nbsp;zero&nbsp;<BR>fb0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hda3&nbsp;&nbsp;hda9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loop0&nbsp;&nbsp;mem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ptyp0&nbsp;&nbsp;ram0&nbsp;&nbsp;&nbsp;tty0&nbsp;&nbsp;ttyp1&nbsp;<BR>fd0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hda4&nbsp;&nbsp;initctl&nbsp;&nbsp;loop1&nbsp;&nbsp;null&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ptyp1&nbsp;&nbsp;ram1&nbsp;&nbsp;&nbsp;tty1&nbsp;&nbsp;ttyp2&nbsp;<BR>fd1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hda5&nbsp;&nbsp;initrd&nbsp;&nbsp;&nbsp;loop2&nbsp;&nbsp;openprom&nbsp;&nbsp;ptyp2&nbsp;&nbsp;ram2&nbsp;&nbsp;&nbsp;tty2&nbsp;&nbsp;ttyp3&nbsp;<BR>&nbsp;<BR>其中input、shm、pts是目录,似乎是系统自己生成的,fb连接到fb0,ram连接到ram0&nbsp;<BR>关于硬盘的保留了hda?,loop[0-5]用于支持回环设备(loopback&nbsp;devices),&nbsp;<BR>tty[0-4]用于支持主机直接操作,ttyp[0-4]&nbsp;&amp;&nbsp;ptyp[0-4]用于共同支持ssh登陆,&nbsp;<BR>ram?用于支持虚拟盘,urandom是sshd服务必须的设备。&nbsp;<BR>&nbsp;<BR>所有的设备文件均可以用cp&nbsp;-dpR从原系统的/dev目录下复制过来。&nbsp;<BR>&nbsp;<BR>裁减Linux(15)&nbsp;&nbsp;<BR>关于/linuxrc&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>linuxrc是一个在initrd.img里面展开后直接自动执行的一个脚本。关于这个脚本&nbsp;&nbsp;<BR>的用途,建议大家读一下/usr/src/linux-2.4/Documentation/initrd.txt,&nbsp;&nbsp;<BR>我也是直接把系统提供的initrd-2.4.18-3.img里面带的linuxrc拿来用而已:&nbsp;&nbsp;<BR>[root@MiniLinux&nbsp;/]#&nbsp;cat&nbsp;linuxrc&nbsp;&nbsp;<BR>#!/bin/nash&nbsp;&nbsp;<BR>echo&nbsp;Mounting&nbsp;/proc&nbsp;filesystem&nbsp;&nbsp;<BR>mount&nbsp;-t&nbsp;proc&nbsp;/proc&nbsp;/proc&nbsp;&nbsp;<BR>echo&nbsp;Creating&nbsp;root&nbsp;device&nbsp;&nbsp;<BR>mkrootdev&nbsp;/dev/root&nbsp;&nbsp;<BR>echo&nbsp;0x0100&nbsp;&gt;&nbsp;/proc/sys/kernel/real-root-dev&nbsp;&nbsp;<BR>echo&nbsp;Mounting&nbsp;root&nbsp;filesystem&nbsp;&nbsp;<BR>mount&nbsp;--ro&nbsp;-t&nbsp;ext2&nbsp;/dev/root&nbsp;/sysroot&nbsp;&nbsp;<BR>umount&nbsp;/proc&nbsp;&nbsp;<BR>pivot_root&nbsp;/sysroot&nbsp;/sysroot/initrd&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>注意,它用的shell是/bin/nash,而不是通常用的/bin/sh,大家man&nbsp;nash可以&nbsp;&nbsp;<BR>&nbsp;<BR>看到很多有意思的东西。&nbsp;&nbsp;<BR>&nbsp;<BR>裁减Linux(16)&nbsp;&nbsp;&nbsp;<BR>最后的一些工作&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>当你把一个文件虚拟为一个磁盘并挂接在系统上,复制了需要的可执行文件、&nbsp;&nbsp;<BR>库文件、配置文件并做了必要的修改之后,一个文件系统基本上已经成形了。&nbsp;&nbsp;<BR>前面列出的最小系统的目录,如果没有特别提到都是留空的。这里要说的&nbsp;&nbsp;<BR>最后的工作就是如何把kernel和文件系统结合起来。&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>我看到过很多讲一张或者两张软盘启动的linux,里面都提到用rdev定位文件系统,&nbsp;&nbsp;<BR>还要如何如何算。我是看明白了,不过觉得特别繁琐,就投机取巧了一番。&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>首先假定刚才我们挂载的根文件系统是挂载到现在的/mnt目录下,文件名是/root/newfs&nbsp;<BR>&nbsp;&nbsp;<BR>则首先umount&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>#umount&nbsp;/root/newfs&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>接着将newfs压缩&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>#gzip&nbsp;-v9&nbsp;/root/newfs&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>此时会生成newfs.gz,接着rename:&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>#mv&nbsp;newfs.gz&nbsp;newfs.img&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>把它和前面编译的内核bzImage放到/boot目录下去。&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>我用的Linux引导器是grub。为什么不用LILO?我基本上没有用过LILO,是出道&nbsp;&nbsp;<BR>很晚很晚的Linux使用者,从grub的介绍上我发现它比LILO功能强很多,使用新&nbsp;&nbsp;<BR>内核不需要像grub那样重新安装,而且内置支持一些常见的文件系统。&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>看看/boot/grub/grub.conf吧,在其中增加一段:&nbsp;&nbsp;<BR>title&nbsp;Test&nbsp;Combine&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;(hd0,4)&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kernel&nbsp;/bzImage&nbsp;ro&nbsp;ramdisk_size=8192&nbsp;root=/dev/ram0&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;initrd&nbsp;/newfs.img&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>当然,你不可照抄我的配置,需要按照你的系统更改root&nbsp;(hd?,?),如果&nbsp;&nbsp;<BR>你建立的文件系统(未压缩前)容量是其他数值的,请用合适的值替代8192,&nbsp;&nbsp;<BR>单位是KB(还记得我前面说过的编译内核的时候不需要刻意更改缺省ramdisk容量&nbsp;&nbsp;<BR>吗?就在这里指定即可)&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;<BR>好了,可以试试裁减以后的系统了。大概有多大呢?我裁减出来的系统内核大约是&nbsp;&nbsp;<BR>&lt;800k,文件系统8M,压缩成.img的是约3M,很小吧。&nbsp;&nbsp;<BR>&nbsp;<BR>裁减Linux(17)(完)&nbsp;<BR>&nbsp;<BR>感想&nbsp;&amp;&nbsp;说明&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>先说说这个最小Linux的启动过程。grub将内核载入以后,让内核将newfs.img载入内存&nbsp;&nbsp;<BR>并展开(自动展开到/dev/ram0)为临时根文件系统,此时执行/linuxrc,在linuxrc&nbsp;&nbsp;<BR>中又指定了新的文件系统。接着内核按照grub带入的参数root=/dev/ram0作为根文件&nbsp;&nbsp;<BR>系统正式init,此时/dev/ram0中的内容正是newfs.img的内容(如果你仔细观察的话,&nbsp;&nbsp;<BR>会发现完整linux启动过程中有Unmounting&nbsp;initrd....的字样,说明initrd.img是&nbsp;&nbsp;<BR>在进入init脚本的过程中才被卸载的),按照/etc/inittab脚本执行,缺省为&nbsp;&nbsp;<BR>runlevel&nbsp;3,执行/etc/rc,最后由mingetty启动login完成引导。&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>我个人感觉,/linuxrc里面的脚本似乎对内核正式init时的根分区指定没有多少&nbsp;&nbsp;<BR>影响,并不像/usr/src/linux-2.4/Documentation/initrd.txt里面linuxrc例子&nbsp;&nbsp;<BR>那样要求严格。好像决定正式init根分区的是由grub带入内核的参数root=...&nbsp;&nbsp;<BR>来决定的更多。有经验的大侠请多指点。&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>经过这次实验,感受颇多。首先对linux引导过程以及/etc下面的很多配置文件&nbsp;&nbsp;<BR>有了深入了解。Linux可改变的弹性很大,不过也需要大家沉得住气,慢慢去研究,&nbsp;&nbsp;<BR>man、HOWTO等等是少不了看的,第一手的资料还是man和英文HOWTO最权威,其次,&nbsp;&nbsp;<BR>&nbsp;<BR>缩减以后的大小让人非常振奋,裁减以后,系统加载重启登陆的速度都变得非常快,&nbsp;&nbsp;<BR>很多东西简直就是一眨眼就过去了。&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>文末,感谢各位耐心看完,不对之处请斧正。本人也是linux的新手,万望海涵。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>--&nbsp;<BR>&nbsp;&nbsp;&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;<BR>&nbsp;&nbsp;&nbsp;/&nbsp;/&nbsp;/&nbsp;这个秋季/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;<BR>&nbsp;&nbsp;&nbsp;/&nbsp;/&nbsp;/&nbsp;雨又开始不停的下/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;<BR>&nbsp;&nbsp;&nbsp;/&nbsp;/&nbsp;/&nbsp;我仍在期待与你碰面的那一刻/&nbsp;/&nbsp;&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;<BR>&nbsp;&nbsp;&nbsp;/&nbsp;/&nbsp;/&nbsp;那雨中的浪漫情怀..../&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;<BR>&nbsp;&nbsp;&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;/&nbsp;<BR>※&nbsp;修改:·withhope&nbsp;於&nbsp;01月16日14:27:02&nbsp;修改本文·[FROM:&nbsp;211.69.196.70]&nbsp;<BR>※&nbsp;来源:·武汉白云黄鹤站&nbsp;bbs.whnet.edu.cn·[FROM:&nbsp;211.69.196.70]&nbsp;<BR>--&nbsp;<BR>※&nbsp;转载:·武汉白云黄鹤站&nbsp;bbs.whnet.edu.cn·[FROM:&nbsp;202.38.64.3]&nbsp;<BR><CENTER><H1>华中地区网络中心</H1></CENTER></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -