从2005年7月到现在大学毕业3年多了,在嵌入式领域也搞了3年多了,早就闻过这个迷你工具,现在有些私人时间,开始研究研究busybox源码.
到官网下载busybox源码,我们就可以从busybox这个能够自成体系的牛程序中汲取一些养料.
[luther@gp open_sources]$ tar jxvf busybox-1.12.0.tar.bz2 -C /vobs
[luther@gp busybox-1.12.0]$ make menuconfig
[luther@gp busybox-1.12.0]$ make
SPLIT include/autoconf.h -> include/config/*
GEN include/bbconfigopts.h
HOSTCC applets/usage
GEN include/usage_compressed.h
HOSTCC applets/applet_tables
GEN include/applet_tables.h
CC applets/applets.o
LD applets/built-in.o
LD archival/built-in.o
CC archival/ar.o
CC archival/bbunzip.o
CC archival/bzip2.o
......
CC util-linux/setarch.o
CC util-linux/swaponoff.o
CC util-linux/switch_root.o
CC util-linux/umount.o
AR util-linux/lib.a
LD util-linux/volume_id/built-in.o
AR util-linux/volume_id/lib.a
LINK busybox_unstripped
Trying libraries: crypt m
Library crypt is not needed
Library m is needed
Final link with: m
[luther@gp busybox-1.12.0]$ ll busybox
-rwxrwxr-x 1 luther luther 612K 09-14 10:41 busybox
好了编译完了,可以运行试试,
[luther@gp busybox-1.12.0]$ ./busybox ash 进入ash
/vobs/busybox-1.12.0 $ pwd ok,正常进入了
/vobs/busybox-1.12.0
/vobs/busybox-1.12.0 $ exit 退出ash
[luther@gp busybox-1.12.0]$ 看来一切运行正常
所以有了上面的源码,我们还等什么,赶紧开始研究吧,对了,make menuconfig时选中debug调试,如果不行,进入Makefile,把-O2改成-g,
这样就可以用insight或者kdbg调试了,这么复杂的程序,不先借助GDBTUI等辅助工具,恐怕要花很多时间,看到头大才能搞清[luther.gliethttp].
阅读(7811) | 评论(2) | 转发(2) |