当前位置: 技术问答>linux和unix
那儿有Linux裁剪方面的资料,最好是RedHat,回复都接分!!
来源: 互联网 发布时间:2015-09-11
本文导语: 那儿有Linux裁剪方面的资料,最好是RedHat,回复都接分!! | 转贴 最小的 Linux kernel 这篇文章有些奇怪,在文章的一开始,我就要宣称本文是没有太大意义的。 Linux 能有多小呢 ? 每一个...
那儿有Linux裁剪方面的资料,最好是RedHat,回复都接分!!
|
转贴
最小的 Linux kernel
这篇文章有些奇怪,在文章的一开始,我就要宣称本文是没有太大意义的。
Linux 能有多小呢 ? 每一个做 embedded 系统的人都把小看成第一要务,其实这是不对的。如果我们对系统的好坏和大小作图,它应该长得像
|
|----
|
| -----
|
| --------
| ---
|-----------------------
小当然不会比较坏,但不一定比较好。如果系统使用 4MB 和 5MB 没有价格或性能上的差别,那 4MB 和 5MB 是一样好的。
到底有多小
废话说了一堆,那到底 Linux 有多小呢? 好吧,各位这么有小牛顿的精神。我也只好想办法生一个答案出来了。
首先我必须声明,我的不一定最小。不要说我在欺骗世人,你的核心比我小。我无意比较,我的数据只是给大家一个参考而己。不过我欢迎大家提出自己的心得,告诉大家怎么样做出更小的核心。
我使用的是 Mandrake 内付的 2.2.15,我没有修改任何一行程序码,完全只靠修改组态档得到这些数据。
首先,使用 make xconfig 把所有可以拿掉的选项都拿得。
不要 floppy
不要 SMP,MTRR
不要 networking,SCSI
把所有的 block device 移除,只留下 old IDE device
把所有的 character device 移除
把所有的 filesystem 移除,只留下 minix
不要 sound 支援
相信我,我己经把所有的选项都移除了。这样做之后,我得到了一个 188K 的核心。
还不够小吗? OK,再加上一招,请把下列二个档案中的 -O3,-O2 用 -Os 取代。
./Makefile
./arch/i386/kernel/Makefile
这样一来,整个核心水小了 9K,成为 179K。
不过这个核心恐怕很难发挥 Linux 的功能,因此我决定把网络加回去。把 General 中的 network support 加回去,重新编译,核心变成 189 K。10K 换个 TCP/IP stack,似乎是很上算的生意。
不过有 stack 没有 driver 也是惘然,所以我把 embedded board 常用的 RTL8139 的 driver 加回去,195K。
如果你需要 DOS 档案系统,那大小成为 213K。如果 minix 用 ext2 换代,则大小成长至 222K。
不过大家要注意,那里的大小指的是核心档的大小。那和所需要的随取记忆体是二回事。这个数字代表的意义是你需要多小的 ROM 来存放你的核心。
Linux 所需的记忆体大约在 600~800 K 之间。1MB 可能可以开机了,但可能不太有用。因为可能连载入 C 程序库都有困难。2MB 应该就可以做点事了,但可能要到 4MB 以上才可以执行一个比较完整的系统。
最小的 Linux kernel
这篇文章有些奇怪,在文章的一开始,我就要宣称本文是没有太大意义的。
Linux 能有多小呢 ? 每一个做 embedded 系统的人都把小看成第一要务,其实这是不对的。如果我们对系统的好坏和大小作图,它应该长得像
|
|----
|
| -----
|
| --------
| ---
|-----------------------
小当然不会比较坏,但不一定比较好。如果系统使用 4MB 和 5MB 没有价格或性能上的差别,那 4MB 和 5MB 是一样好的。
到底有多小
废话说了一堆,那到底 Linux 有多小呢? 好吧,各位这么有小牛顿的精神。我也只好想办法生一个答案出来了。
首先我必须声明,我的不一定最小。不要说我在欺骗世人,你的核心比我小。我无意比较,我的数据只是给大家一个参考而己。不过我欢迎大家提出自己的心得,告诉大家怎么样做出更小的核心。
我使用的是 Mandrake 内付的 2.2.15,我没有修改任何一行程序码,完全只靠修改组态档得到这些数据。
首先,使用 make xconfig 把所有可以拿掉的选项都拿得。
不要 floppy
不要 SMP,MTRR
不要 networking,SCSI
把所有的 block device 移除,只留下 old IDE device
把所有的 character device 移除
把所有的 filesystem 移除,只留下 minix
不要 sound 支援
相信我,我己经把所有的选项都移除了。这样做之后,我得到了一个 188K 的核心。
还不够小吗? OK,再加上一招,请把下列二个档案中的 -O3,-O2 用 -Os 取代。
./Makefile
./arch/i386/kernel/Makefile
这样一来,整个核心水小了 9K,成为 179K。
不过这个核心恐怕很难发挥 Linux 的功能,因此我决定把网络加回去。把 General 中的 network support 加回去,重新编译,核心变成 189 K。10K 换个 TCP/IP stack,似乎是很上算的生意。
不过有 stack 没有 driver 也是惘然,所以我把 embedded board 常用的 RTL8139 的 driver 加回去,195K。
如果你需要 DOS 档案系统,那大小成为 213K。如果 minix 用 ext2 换代,则大小成长至 222K。
不过大家要注意,那里的大小指的是核心档的大小。那和所需要的随取记忆体是二回事。这个数字代表的意义是你需要多小的 ROM 来存放你的核心。
Linux 所需的记忆体大约在 600~800 K 之间。1MB 可能可以开机了,但可能不太有用。因为可能连载入 C 程序库都有困难。2MB 应该就可以做点事了,但可能要到 4MB 以上才可以执行一个比较完整的系统。
|
我觉得可以先学着裁减设备什么的,至于内核本身可以先看看内核分析方面的书,再慢慢裁减。
比较系统的资料还真没找到过,只是能零星的找到一些了。
比较系统的资料还真没找到过,只是能零星的找到一些了。
|
http://www.linuxsir.org/bbs/showthread.php?t=168710&highlight=%C4%DA%BA%CB
比较好的资料。
比较好的资料。