LFS(Linux From Scratch)

LFS──Linux from Scratch,就是一种从网上直接下载源码,从头编译LINUX的安装方式。它不是发行版,只是一个菜谱,告诉你到哪里去买菜(下载源码),怎么把这些生东西( raw code) 作成符合自己口味的菜肴──个性化的linux,不单单是个性的桌面。

Linux From Scratch项目简称

编辑

Linux From Scratch项目简称LFS,它提供具体的步骤、特定的补丁、必须的脚本,从而提供一个简便的创建Linux发行版的途径。LFS并不是一个发行版,但是它可以作为制作初级发行版的良好练习。

制作

  • 制作过程
    快速浏览官方文档即可(没必要仔细翻阅,抓几个关键点即可)
  • 一般套路
    以下步骤在LFS制作中会重复几次乃至几十次:
1,
tar xf foo-version.tar.*
cd foo-version
./configure --prefix=xxx --xxx=xxxx ······
make
make install
cd ..
rm -rf foo-version
2tar xf foo-version.tar.*
cd foo-version
patch -Np1 -i ../xxx.patch
mkdir ../foo-build
cd foo-build
../foo-version/configure --prefix=xxx --xxx=xxxx ······
make
make install
cd ..
rm -rf foo-version foo-build

 

具体编译参数复制文档中对应部分即可
  • 实际意义
    LFS的意义不在于机械地编译,事实上,按照文档描述,简单地点击键盘即可生成一个简略的发行版,这并不是存在时间达13年的LFS的目的。LFS的意义在于让使用者理解编译参数的作用,理解补丁的作用,理解LFS附带的脚本的工作过程,从而达到脱离LFS、独立制作并完善发行版的目的。
    由于LFS提供的是一个通用的Linux发行版制作流程,LFS并不能保证制作最终产物符合制作者个人口味,也不能保证质量。

计算机程序

编辑
Log-structured file system,是影响近代高效能档案系统很深远的设计,有许多效能导向的特殊应用档案系统,像WAFL,Sprint,ZFS,都以LFS概念为设计的基础. 因为一般的档案系统,只能利用10~15%的磁碟频宽,LFS却可以提升到80%.
这是因为如今的磁碟机的IO频宽已经很快,但是受限于磁头磁轨移动的机械动作加速有限,和磁碟转动到所需的磁区也需要的时间,让机械动作比较少的连续磁区读取,速度远比需要大量机械动作的随机读取快. 但是根据研究,UNIX的档案系统,约略80%是8K以下小档,分散在各地的小档,会造成大量随机读取,而让磁碟I/O明显变慢. LFS就是想解决这样的问题.
LFS为了能充份的利用磁碟I/O频宽,减少随机读写,他定义了Segment为基本的磁碟存取单位,Segment 是由连续的小磁区组成,大小为512KB(1024个磁区). LFS假设系统有足够大的快取记忆体,让磁碟机的动作会集中在写入(因为读取大多会从快取),因此我们只要把小档集中起来成为一个个segment 大小再集中写入,就可以理想上使用100%磁碟频宽.
顾名思义,LFS本身就是把档案系统当成一个巨大的log,他的好处是可以很容易处理异常关机产生的问题,只需要检查最后写入的磁区就可以. 但相对有个缺点,就是必须保持log尾端有足够的free space 才能新增/异动档案. 因此,一但log 满了,就必须清理log中所有删除的档案来释放空间,并且把空出来的空间往后移,移到尾端再利用,这个动作称做Segment Clean.
Segment Clean 是一项非常繁重的工作,会占用绝大多部分的磁碟频宽,以致于系统效能受到拖累,形成LFS实作非常大的问题.
此外,LFS 虽然把小档案clusted 起来成为Segment,让写入效能大增,但读取时仍可能需要到各个Segments中读取小档,由于Segment是很大的IO单位,造成IO瓶颈. 当快取没有这些档案,读取效率就会变慢.
这些都是有待改进的地方.Linux卷结构文件系统LogFS
Linux对数结构闪存文件系统(Linux log-structured Flash file System,LogFS)是在Linux上,使用对数结构,并可扩展的闪存文件系统之一,打算用于大容量闪存存储设备上,并与UBIFS相互竞争,作为JFFS2的后继文件系统之一。这个文件系统主要是由Jörn Engel,部分是由Linux消费电子论坛(CE Linux Forum)所撰写。
截至2008年11月,LogFS的测试包终于能够通过所有的测试案例──这表示LogFS趋于成熟。但是由于还有大量的开发工作正在进行,现今在业界还没有任何已知的系统安装LogFS。
 

LFS

在开始之前,我总结了一些有关 LFS 的内容,如下:

1. 那些想要打造他们自己的 Linux 发行版的人应该了解打造一个 Linux 发行版(打造意味着从头开始)与配置一个已有的 Linux 发行版的不同

如果您只是想调整下启动屏幕、定制登录页面以及拥有更好的外观和使用体验。您可以选择任何一个 Linux 发行版并且按照您的喜好进行个性化配置。此外,有许多配置工具可以帮助您。

如果您想打包所有必须的文件、引导加载器和内核,并选择什么该被包括进来,然后依靠自己编译这一切东西。那么您需要的就是 Linux From Scratch (LFS)。

注意:如果您只想要定制 Linux 系统的外表和体验,这个指南并不适合您。但如果您真的想打造一个 Linux 发行版,并且向了解怎么开始以及一些其他的信息,那么这个指南正是为您而写。

2. 打造一个 Linux 发行版(LFS)的好处

  • 您将了解 Linux 系统的内部工作机制
  • 您将开发一个灵活的适应您需求的系统
  • 您开发的系统(LFS)将会非常紧凑,因为您对该包含/不该包含什么拥有绝对的掌控
  • 您开发的系统(LFS)在安全性上会更好

3. 打造一个Linux发行版(LFS)的坏处

打造一个 Linux 系统意味着将所有需要的东西放在一起并且编译之。这需要许多查阅、耐心和时间。而且您需要一个可用的 Linux 系统和足够的磁盘空间来打造 LFS。

4. 有趣的是,Gentoo/GNU Linux 在某种意义上最接近于 LFS。Gentoo 和 LFS 都是完全从源码编译的定制的 Linux 系统

5. 您应该是一个有经验的Linux用户,对编译包、解决依赖有相当的了解,并且是个 shell 脚本的专家。

了解一门编程语言(最好是 C 语言)将会使事情变得容易些。但哪怕您是一个新手,只要您是一个优秀的学习者,可以很快的掌握知识,您也可以开始。最重要的是不要在 LFS 过程中丢失您的热情。

如果您不够坚定,恐怕会在 LFS 进行到一半时放弃。

**6. 现在您需要一步一步的指导来打造一个 Linux 。LFS 手册是打造 LFS 的官方指南。我们的合作站点 tradepub 也为我们的读者制作了 LFS 的指南,这同样是免费的。 ###

您可以从下面的链接下载 Linux From Scratch 的电子书:

下载: Linux From Scratch

7. 当前 LFS 的版本是 7.7,分为 systemd 版本和非 systemd 版本。

LFS 的官方网站是: http://www.linuxfromscratch.org/

您可以在官网在线浏览 LFS 以及类似 BLFS 这样的相关项目的手册,也可以下载不同格式的版本。

8. Linux 中国/LCTT 翻译了一份 LFS 手册(7.7,systemd 版本)

经过 LCTT 成员的努力,我们终于完成了对 LFS 7.7 systemd 版本手册的翻译。

手册在线访问地址:https://linux.cn/lfs/LFS-BOOK-7.7-systemd/index.html

其它格式的版本稍后推出。

感谢参与翻译的成员: wxy, ictlyh, dongfengweixiao, zpl1025, H-mudcup, Yuking-net, kevinSJ 。

 

关于:Linux From Scratch

这本手册是由 LFS 的项目领头人 Gerard Beekmans 创作的, Matthew Burgess 和 Bruse Dubbs 参与编辑,两人都是LFS 项目的联合领导人。这本书内容很广泛,有 338 页之多。

手册中内容包括:介绍 LFS、准备构建、构建 LFS、建立启动脚本、使 LFS 可以引导,以及附录。其中涵盖了您想知道的 LFS 项目中的所有东西。

这本手册还给出了编译一个包的预估时间。预估的时间以编译第一个包的时间作为参考。所有的东西都以易于理解的方式呈现,甚至对于新手来说也是这样。

如果您有充裕的时间并且真正对构建自己的 Linux 发行版感兴趣,那么您绝对不会错过下载这个电子书(免费下载)的机会。您需要做的,便是照着这本手册在一个工作的 Linux 系统(任何 Linux 发行版,足够的磁盘空间即可)中开始构建您自己的 Linux 系统,付出时间和热情。

如果 Linux 使您着迷,如果您想自己动手构建一个自己的 Linux 发行版,这便是现阶段您应该知道的全部了,其他的信息您可以参考上面链接的手册中的内容。

请让我了解您阅读/使用这本手册的经历,这本详尽的 LFS 指南的使用是否足够简单?如果您已经构建了一个 LFS 并且想给我们的读者一些建议,欢迎留言和反馈。

BLFS阶段,startx后firefox等程序中文全部乱码问题的解决 http://www.linuxidc.com/Linux/2007-05/3789.htm

用LFS从零开始构建完整Linux系统 http://www.linuxidc.com/Linux/2011-08/40706.htm

基于Ubuntu 10.10 构建LFS 6.7[图文] http://www.linuxidc.com/Linux/2011-02/32545.htm


via: http://www.tecmint.com/create-custom-linux-distribution-from-scratch/

作者:Avishek Kumar 译者:wwy-hust 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-07/119840.htm

posted @ 2016-10-17 00:42  林博士  阅读(1604)  评论(0编辑  收藏  举报