从头开始构建LINUX [LFS],linuxlfs


“LINUX就是这个范”有一章专门介绍了Linux的构建,过程详细,很有意思。结合这方面的资料简要汇集一下

 

LFS

这个站点提供了从源代码构建一个Linux的详细步骤

http://archive.linuxfromscratch.org/lfs-museum/stable/LFS-BOOK-7.5.pdf

wget-list 经验证的包地址

http://archive.linuxfromscratch.org/lfs-museum/stable/wget-list

有的包拿不到的话,参考这个 http://www.linuxfromscratch.org/lfs/packages.html

如 ftp://ftp.lfs-matrix.net/pub/lfs/lfs-packages/lfs-packages-7.5.tar 

   http://ftp.lfs-matrix.net/pub/lfs/lfs-packages/lfs-packages-7.5.tar

   这些是完整的包,找到

脚本

http://archive.linuxfromscratch.org/lfs-museum/stable/lfs-bootscripts-20130821.tar.bz2

 

 

Ubuntu10.0.4 64位实战

HOST机器检查

依赖的内容如下:

bash, version 4.1.5(1)-release

/bin/sh -> /bin/dash

Binutils: (GNU Binutils for Ubuntu) 2.20.1-system.20100303

bison (GNU Bison) 2.4.1

/usr/bin/yacc -> /usr/bin/bison.yacc

bzip2,  Version 1.0.5, 10-Dec-2007.

Coreutils:  7.4

diff (GNU diffutils) 2.8.1

find (GNU findutils) 4.4.2

GNU Awk 3.1.6

/usr/bin/awk -> /usr/bin/gawk

gcc (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3

g++ (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3

(GNU libc) 2.19

GNU grep 2.5.4

gzip 1.3.12

Linux version 2.6.32-38-generic (buildd@allspice) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) ) #83-Ubuntu SMP Wed Jan 4 11:12:07 UTC 2012

m4 (GNU M4) 1.4.13

GNU Make 3.81

patch 2.6

Perl version='5.10.1';

GNU sed version 4.2.1

tar (GNU tar) 1.22

xz (XZ Utils) 4.999.9beta

 

gmp mpfr mpc库需要安装

具体的脚本如下:

#!/bin/bash

tar xf pkg/gawk-4.1.0.tar.xz

pushd gawk-4.1.0

 ./configure

 make

 sudo make install

 gawk --version

popd

 

tar xf pkg/xz-5.0.5.tar.xz

pushd xz-5.0.5

 ./configure

 make

 sudo make install

 xz --version 

popd

 

#xz进行了ldconfig,第二次独立执行

ldconfig

tar xf pkg/gmp-5.1.3.tar.xz

pushd gmp-5.1.3

 ./configure --prefix=/usr

 make

 make check

 sudo make install

popd

 

ldconfig

tar xf pkg/mpfr-3.1.2.tar.xz

pushd mpfr-3.1.2

 ./configure --prefix=/usr

 make

 make check

 sudo make install

popd

 

ldconfig

tar xf pkg/mpc-1.0.2.tar.gz

pushd mpc-1.0.2

 ./configure --prefix=/usr

 make

 make check

 sudo make install

popd

 

ldconfig

 

加新的磁盘

fdsik /dev/sdb

依次建立几个分区 n

分区类型 t    82 -- Linux Swap 83 -- LINUX

 

mkfs -v -t ext4 /dev/sdb1

mkswap /dev/sdb2

http://blog.csdn.net/mirage1993/article/category/2450253

http://blog.csdn.net/mirage1993/article/details/38356559 建立新分区并挂载
http://blog.csdn.net/mirage1993/article/details/38364823

参考信息

  • Linux文档和一些基础书  http://www.tldp.org
  • Linux参考部分标准

   LSB/FHS http://www.linuxfoundation.org/

   POSIX 


LFS linux 要怎弄

去linuxsir看看吧,lfs这东西太难配置。。。
 

怎构建自己的 Linux 发行版

风格的书籍,深入研究了调度、内存管理、多进程和线程、文件系统,以及用户与内核之间的交互。写作 Linux 书籍的作家相对于 UNIX 作家来说有一个优势:尽管团体发生了剧变,但是 Linux 内核不可能分成几个相互竞争的分支,由于 GNU Public License (GPL)、集中式研究实验室 Open Source Development Lab (OSDL) 和 Linus Torvalds 不可动摇的地位,使得 Linux 有幸成为一个缓慢移动的目标(slow-moving target)。为什么 UNIX 内核很重要除了某些方面具有一定的相似性之外,不同的 Unix 内核并不怎么相同。各种 UNIX 风格也具有一个 Linux 所缺少的优点:所有 UNIX 风格都被假定是完全的操作系统。Linux 通常被描述为“只是一个内核”(如果有这样的定义的话,也是一个武断的定义),它给出公共功能和实现的核心,不管内核是运行在不太强大的 Pentium? II 机器上还是 Symmetric Multiprocessing (SMP) 系统上,这些公共功能和实现都不会发生本质上的改变。为了更加简化,有人可能会说,离 Linux 内核越远,就会发现更多的变化,而 UNIX 系统则趋向于是各种 UNIX/POSIX 标准的离散实现。事情并没有这么简单。检测 Linux 内核和系统级代码可能是一件很费时间的事情,并且在现实世界中会限制使用。LFS 项目旨在解决 Linux 上有限的系统级可理解性问题。关于内核需要大量的库和工具来让 Linux 系统执行最基本的任务这一事实,已经做过讨论了,但是如果一个比较熟练的用户具有一个 slim-line Linux 发行版,他不想下载几吉字节不让他优化系统、也不让他抛开所有这些麻烦且不必要的工具的二进制代码,那该怎么办?如果一个非常熟练的用户拒绝接受各种社团发行版的 苛刻条件(diktat),而想要运行一个来自 CD 的 Linux/Apache/MySQL/PHP (LAMP) 类型的应用程序堆栈,那该怎么办?LFS 可以解决这些问题。回页首Linux From ScratchLFS 项目显然建立于那些对于构成基本的 Linux 系统来说充分而不必要的源文件的基础之上。它已经超越了 Linux 内核和设备驱动程序,因为要产生一个可工作的 Linux 系统,您必须添加一个完整的编译器工具链、许多 Linux 汇编程序实用工具、glibc 系统库、系统配置工具和连接到 userland shell 访问的工具。LFS 建立在这样一个假设的基础之上,即 Linux 或 UNIX 允许具有一些脚本编写知识的用户,了解一个完全有用的系统的工作方式,而不用深入研究内核代码本身。为了了解 Linux 系统的工作方式,LFS 的创建者们确定,通过遵循模块依赖性来编译系统,可能是了解一般操作系统和特定的 Linux 的机制最自然的方式。用户掌握了编译过程之后,就可以开始消除依赖性树的那些连接到与支持操作系统基本目的无关的系统组件的部件。例如,在编译完成之后,消除编译器工具链本身是可行的。在没有全套的命令行实用工具时,可以凑合使用嵌入式 LAMP 堆栈。配置实用工具也可以被丢弃,大多数用户可以凑合着用一个而不是太多 Linux 将会支持的文件系统。Linux 部件LFS 系统的一个重要部件是,可以作为 tar ball 得到的大量源文件。文档是另一个重要部件,并且是最重要的。实际上,很有可能利用一个......余下全文>>
 

相关内容