易截截图软件、单文件、免安装、纯绿色、仅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 Bluetooth编程(三) HCI层编程

1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI)  就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......

实战Linux Bluetooth编程(六) L2CAP编程实例

例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
 如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......

Linux下的后门和日志工具

 攻入Linux系统后,很多入侵者往往就开始得意忘形了。这其中还有一个原因,就是技术性也要求更高了。下面,我们来看看一些常用的经典工具。(未经允许,谢绝转载!)
1、从这里延伸:后门和连接工具
(1)Httptunnel
Tunnel的意思是隧道,通常HTTPTunnel被称之为HTTP暗道,它的原理就是将数据伪装成HTTP的数据形式来 ......

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

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