易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux on floppy的尝试

这一段时间一直进行Linux on floppy的尝试,借此希望能对如何构造一个Linux发行版本、Linux的启动、Linux系统的裁剪有一个深刻的认识。
在进行中,我有一些自己的心得体会,尤其是如何构造一个较小的Linux系统。这里贴出其中的一部分,希望能与各位共同分享。有不对的地方,也望各位高手能不吝赐教。
构造Linux on floppy系统的过程中,一个必须得面对的问题是如何减小内核和各种应用的大小,使他们即可以存放在有限的空间中(通常是1.44M的磁盘),又可以完成预定的功能。通常有以下几种做法:
1.裁剪内核,在进行内核配置时去除一些用不到的模块,尽量降低内核的大小
我所编译的内核只包括了一些必要的内核功能、网卡的驱动、TCP/IP的实现、Netfilter、PPP/PPPoE。内核的大小为700911。由于内核中一些核心的功能不可能去除,所以裁剪后的内核至少也要400k左右。
2.使用专门为嵌入式系统设计的应用,如TinyLogin、Busybox
Linux系统上总要跑一些应用程序,当然我们可以把桌面Linux系统上的应用搬移到Linux on floppy上,但是由于这些应用功能较强或没有严格的进行代码优化,通常要占用较大的空间。所以很可能几个小应用就把我们有限的磁盘空间就给占满了。解决办法是,使用专门为嵌入式应用所设计的程序,这里强烈推荐busybox。Busybox把100多种常见的应用都集中到一个程序中来,大大节省了磁盘空间。而且,busybox还可以根据需要配置提供哪些应用,从而可以进行进一步的调节。我所使用的busybox中,选用了80多种应用,采用静态连接方式大小为679048,采用动态连接方式的大小为154316
3.剔除应用程序中的一些调试符号信息和其他的一些无用信息
在编译程序的时候,有时为了方便调试,生成的最后代码中包括了一些调试信息( gcc -g ... ), 除此之外,编译链接中的重加载过程也会在目标代码中加入一些与实际运行无关的信息,通过file命令可以查看目标代码是否包括这些信息,下面是程序openvt的信息:
# file openvt
openvt: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), not stripped
注意“not stripped”,说明openvt中包含这些无用信息。这些信息无疑是对我们宝贵的磁盘空间的浪费。通过"strip -s ..."或
“objcopy --strip-all ...”可以去除这些信息。
#objcopy --strip-all openvt openvt-new
strip之前,openvt的大小为25716,strip之后openvt的


相关文档:

Linux/CentOS 使用 iptables封ip段

 linux下实用iptables封ip段的一些常见命令:
封单个IP的命令是:
iptables -I INPUT -s 211.1.0.0 -j DROP
封IP段的命令是:
iptables -I INPUT -s 211.1.0.0/16 -j DROP
iptables -I INPUT -s 211.2.0.0/16 -j DROP
iptables -I INPUT -s 211.3.0.0/16 -j DROP
封整个段的命令是:
iptables -I INPU ......

Linux编程make命令介绍

  摘要:在开发一个系统时,一般是将一个系统分成几个模块,这样做提高了系统的可维护性,但由于各个模块间不可避免存在关联,所以当一个模块改动后,其他模 块也许会有所更新,当然对小系统来说,手工编译连接是没问题,但是如果是一个大系统,存在很多个模块,那么手工编译的方法就不适用了。为此,在Linux系统中,专 ......

linux vi命令使用

 linux下vi编辑器命令
文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充!
  进入vi的命令
  vi filename :打开或新建文件,并将光标置于第一行首
  vi +n filena ......

Linux的裁剪

 
 
Linux的裁剪
=======================================
好些时候,我们需要一个只要一张软盘就能启动Linux 的系统,比如说做路由器。但是我们该怎样做呢? 也就是说我们要把Kernel和FileSystem都做在一张3.5'的盘上。我们先把FileSystem 分解成如下几个部分吧。
  1. /bin目录下的文件
  bin目录通 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号