易截截图软件、单文件、免安装、纯绿色、仅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设备模型之input子系统详解

一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......

Linux设置环境变量小结

 
1、总结背景
在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“command not found”的提示内容。如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐了。这涉及到环境变量PATH的设置问题,而PATH的设置也是在linux下定制环境变量的一个组成部分。本案例基于RedH ......

linux 与windows netstat命令查看端口是否占用

 netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息,这里我只用到其中的部分功能.
netstat 的常用参数: - t、- u、- w和- x分别表示TCP、UDP、RAW和UNIX套接字连接。-a标记,还会显示出等待连接(也就是说处于监听模式)的套接字。-l 显示正在被 ......

Linux内核裁剪的步骤

在menuconfig中配置,可以对进行Linux内核配置选项及删改。本文介绍详细配置方法。
第一部分:全部删除
Code maturity level options ---> 代码成熟等级选项
[]Prompt for development and/or incomplete code/drivers 默认情况下是选择的,这将会在设置界面中显示还在开发或者还没有完成的代码与驱动.不选。
第二部 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号