Linux教程Linux
首页
基础知识
Linux业界
Linux系统
Linux人物
Linux文化
Linux资讯
Linux综合
当前位置:
Linux教程
-
Linux
- 从源代码打造一个最小化的Linux系统实作指南
从源代码打造一个最小化的Linux系统实作指南
作者:arneo
v0.8, Sep 2000 翻译日期: 2001年01月第0.8版
_________________________________________________________________
以下就是从源代码中打造一个最小化的Linux系统的操作说明.它曾经是《从加电启动到Bash提示符(From PowerUp to Bash Prompt)》的一部分.但是我将它们分离开来,以便使得它们更简短而更为集中化.我们在此所要打造的系统是非常小的,而且并不准备作为工作产品来使用.如果您想从头开始打造一个有实际用途的系统,请参阅Gerard Beekmans所撰写的 Linux空手道实作指南篇 (Linux From Scratch HOWTO).
_________________________________________________________________
1. 您所需要具备的条件
我们首先要安装一个Linux发行套件比如小红帽(RedHat)到一个分区上,然后使用它来在另一个分区上打造一个新的Linux系统.我将我们所要打造的系统称为目标系统(target)而把我们所使用来打造新系统的系统称为源头系统(source).可别把这个源头(source)系统同我们同时使用的源码(source code)相混淆了哦.:)
因此,您得需要一台具有两个独立分区的机器.如果可能,请尽量使用一台没有重要资料在里头的机器,以免数据受损.您可以使用一个已经存在的Linux系统作重要资料在里头的机器,以免数据受损.您可以使用一个已经存在的Linux系统作为源头系统,但是我并不推荐这种方式.如果您不慎遗漏了我们打造的指令的某些参数,您有可能会意外地在这个系统上安装了一些没有必要的东西,有可能会导致不兼容和冲突.
旧型的PC机硬件,大部分的486机器或者更早的机型,其BIOS都有一些极其烦人的限制.它们没有办法读取硬盘超过前512兆之后的空间.当然,这个对于Linux来说并不是什么大问题,因为只要Linux能够引导启动了,将使用Linux自己的磁盘IO,略过BIOS的调用.但是为了能够让这些旧型机器能够引导Linux,那么Linux内核必须存放在硬盘的前512兆之前的某个位置.如果您正好有这么个旧型机器,您得准备好一个独立的且完全在前512兆范围内的硬盘分区,并将其挂载为/boot.其它的分区就可以在任何位置,可以任意处理而不必担心是在硬盘的什么位置了.
上一次我打造这个系统时,所使用的源头系统是小红帽6.1(RedHat 6.1),我安装了基本系统,附加有以下软件包∶
* cpp (C++编译器)
* egcs (增强型C编译器)
* egcs-c++ (增强型C++语言编译器)
* patch (打补丁程序)
* make (编译批处理解释器)
* dev86 (设备文件包) * dev86 (设备文件包)
* ncurses-devel (ncurses库开发包)
* glibc-devel (glibc库开发包)
* kernel-headers(内核源码头文件包)
我还安装了X Window视窗系统和Mozilla网络浏览器以便更轻松地阅读文档,而实际上这两个东东并不是必要的.在我竣工之时,这个源头系统大概使用了350兆的磁盘空间(看起来是多了一些,可是我还在纳闷为什么呢).
竣工之时的目标系统占用了650兆磁盘空间,但是这个数值包含了所有的源码以及中途打造出来的文件.如果空间比较紧凑,您应该在每个软件包都打造完毕之后执行一下make clean来清除临时文件.当然了,我对这个也是有点吃惊的.
最后,您的准备好我们所要用来打造系统的源码包.这些就是我在本文所讨论的软件包.这些软件包都可以从源码盘里面找到,或者从国际互联网上找到.我会给出美国的站点和位于澳大利亚的镜像站点的地址.
* MAKEDEV (设备生成器包)
美国站点:
ftp://tsx-11.mit.edu/pub/linux/sources/sbin
另外一个美国站点:
ftp://sunsite.unc.edu/pub/Linux/system/admin
* Lilo (Linux引导器包)
美国站点:
ftp://lrcftp.epfl.ch/pub/linux/local/lilo/
澳大利亚:
ftp://mirror.aarnet.edu.au/pub/linux/metalab/system/boot/lilo
澳大利亚:
ftp://mirror.aarnet.edu.au/pub/linux/metalab/system/boot/lilo
* Linux内核包(Kernel) 使用 主页上所列举的镜像站点而最好不要使用美国站点站点下载,因为这些站点通常是超负荷运转的.
美国站点:
ftp://ftp.kernel.org/pub/linux/kernel
澳大利亚站点:
ftp://kernel.mirror.aarnet.edu.au/pub/linux/kernel/
* GNU libc库包 其本身,以及liuxthreads线程附加库可在以下地址下载到∶
美国站点:
ftp://ftp.gnu.org/pub/gnu/glibc
澳大利亚站点:
ftp://mirror.aarnet.edu.au/pub/gnu/glibc
* GNU libc附加库包 您可能还会需要linuxthreads线程附加库和libcrypt加密附加库. 如果libcrypt没在那个站点找到,那就是因为美国出口法律限制的原因, 那么您就可以从这里弄到libcrypt加密附加库. 通常linuxthreads 线程附加库跟libc库是放在同一个地方的.
libcrypt加密附加库:
ftp://ftp.gwdg.de/pub/linux/glibc
* GNU ncurses
美国站点:
ftp://ftp.gnu.org/gnu/ncurses
澳大利亚站点:
ftp://mirror.aarnet.edu.au/pub/gnu/ncurses
* SysVinit (初始化脚本包)
美国站点:
ftp://sunsite.unc.edu/pub/Linux/system/daemons/init
澳大利亚:
ftp://mirror.aarnet.edu.au/pub/linux/metalab/system/daemons/init
* GNU Bash (命令解释器包)
美国站点:
ftp://ftp.gnu.org/gnu/bash
澳大利亚站点:
ftp://mirror.aarnet.edu.au/pub/gnu/bash
澳大利亚站点:
ftp://mirror.aarnet.edu.au/pub/gnu/bash
* GNU sh-utils (命令解释器工具包)
美国站点:
ftp://ftp.gnu.org/gnu/sh-utils
澳大利亚站点:
ftp://mirror.aarnet.edu.au/pub/gnu/sh-utils
* util-linux (Linux常用工具包) 本软件包包含有agetty和login。
另外一个站点:
ftp://ftp.win.tue.nl/pub/linux/utils/util-linux/
澳大利亚站点:
ftp://mirror.aarnet.edu.au/pub/linux/metalab/system/misc
总结一下,您所需要的就是∶
* 一台具有两个分别是400兆和700兆独立分区的机器,或许您可能会需要少一些.
* 一个Linux发行套件(譬如一个RedHat光盘)和安装方式(譬如一个光驱)
* 以上所列举的源码的tar包.
我假定您可以自己安装源头系统,而用不着我来帮忙.从这里开始,我假定源头系统已经安装好了.
本小项目的第一个里程碑就是使得内核启动起来然后死翘翘,因为它没找到init初始化程序.也就是说我们得安装一个内核和安装lilo.为了顺利安装lilo,我们要用上在目标系统上/dev目录下的设备文件.lilo需要它们来实现底层必需的磁盘存取来写入引导扇区.MAKEDEV正是用来创建这些设备文件的脚本程序(您当然可以只需要从源头系统当中复制出来,不过这可是作弊不劳而获哦).但是最重要的事情就是,我们需要一个文件系统来放置所有的这些东西.
发布人:netbull 来自:奥索网
Linux应用“花开”两朵
如何追踪黑客
Solaris x86, Linux, FreeBSD的比较
Make程式和重编核心
高质量C++/C编程指南 -- 前言
熟悉Linux系统安全和优化(下)
ISDN常见故障及排除
如何设置串口多用户卡
大战黑客传之军营遭袭
xf86config使用说明
Wget的用法
配置一个可靠的防火墙
幸福LINUX家用版1.0使用体会
构造未来Web页面的工具语言XML
后门技术及rootkit工具-Knark分析及防范
站点导航
Linux教程
Php
Linux
非技术类
指令大全
Shell
安装启动
Xwindow
Kde
Gnome
输入法类
美化汉化
网络配置
存储备份
杂项工具
编程技术
网络安全
内核技术
速度优化
Apache
Email
Ftp服务
Cvs服务
代理服务
Samba
域名服务
网络过滤
其他服务
Nfs
Oracle
Dhcp
Mysql
Ldap
RedHat
赞助商链接