手工定制Linux系统

引子

陆续研究LFS(Linux from Scratch) 有一段时了,发现一些问题,比如无论是官网教程,还是一些第三方的分析文章,都有一个共同点,描述过于的形而下,也就是太过于注重细节。过于实际和过于理论有同一样的缺点——不利提高学习效率[注]。另外,【形而下】风格的教程给人不通透的感觉,例如你是把东西做出来了,可是你很可能有几步是不解的,只是盲目照做。

到目前为止,我看官方教程没有提供足够的背景信息,因而它不是面向一般Linux普通用户,包括Linux下的应用开发者,它面向系统开发的程序员。如果定制Linux有客观真实的价值,并且定制OS是一项艰巨的任务,那么像这样的第三方补充信息还需要很多,本文只是以小结一下学习经验,对LFS教程补充一些【形而上】方面的信息,弥补一下学习市场对【自上而下】方式的缺失。

注:由于效率是功效与时间之比,功效本身很难准确度量,效率也变得无法捉摸,任意猜测。

自上而下与自下而上

学习和研究一个新事物到底以自下而上的顺序学习效率高,还是反之,自上而下的效率高?所谓【自上而下】是指是先学习抽象的概括性的内容,而【自下而上】是指先学习具体的细节性的内容。我个人一向使用自上而下的方式;不知道是否因为文化的原因,国人独爱具体的东西,国内很多教程和文章都是自下而上的方式讲述。自下而上有比较明显的优点和【不那么明显】的缺点,优点是可操作性强,容易上手;缺点是学习的【综合效率】不如自上而下。因为具体的东西一般在应用于一个特殊的场境里,有很多特殊的东西,而在【同样描述水平】的前提下,相对于具体的细节,概括性的内容【离我们更近】,由认知规律可知,概括性的内容更易于我们的大脑同化吸收它。

定制自己的Linux?

定制自己的Linux?这个目标听着都让熟悉Linux的人兴趣盎然,甚至兴奋异常。可是实际上又如何呢?真的每个人都有能力去定制一个OS么?如果只有少部分黑客和计算机爱好者有这个能力,OS对其他大部分人来还是有如洪水猛兽般的复杂,这个目标是不是空想呢?我认为如是。LFS的用意的很友好,目的也很正确,意义也很有意义,只是方式有点不符合实际;用教程方式引导一名Linux普通用户定制自己的Linux系统本身近似一种空想。因为难度太大,学习曲线太陡。我觉得,之所以有人觉得定制Linux是有可能是因为他们都“玩过”Linux,如果换为定制CPU呢,这就不认为有可能性和必要性了。CPU与OS除在实体形式的差别,它们的复杂度一定是OS低于CPU么?我不以为然。

为什么需要定制?

从学习的角度看,是为了透切理解Linux系统(内部结构)和训练对Linux系统全方位的掌控的能力。包括从源码构建系统模块、掌控系统的体积和安全性。

从生产的角度看,有各种各样的理由有自定义的Linux系统的需求,比如系统性能,比如嵌入式系统等。

定制什么?

LFS的作者说是因为想定制一下启动脚本的样式而发起这个项目的,显然这种定制任务太小case了,并且不实用。实用的定制当然要数为嵌入式系统定制了。由于定制的目标各异,定制什么也因情况而不同。不过有一个默认的假设,就是定制的系统是完整的系统,可用的系统。

那么一个完整的可用的LINUX系统除了内核外还有一些什么必需的工具(软件包)呢?

一个完整的可用的系统并不仅仅意味着一个内核,可能还需要有引导程序、登陆程序、汇编程序、编译程序、脚本解释程序、调试程序、文本编辑程序、邮件程序等。如果对【可用的系统】的定义是交叉的,那么需要的软件包也是有多种的可能组合。比如,桌面应用的发行版既可用作WEB服务器,亦可用作开发工作站,前者不需编译程序,后者需要。显然“完整的可用的LINUX系统”的完整性取决于你的【系统的目标用途】,也就是它是用于安装嵌入式设备、用作 WEB服务器、数据库服务器,还是用作桌面应用等。

系统定制

问题又来了,有没有【所有应用】都需要的【非内核】的通用软件包呢?答案是有的,一些软件包的确是可用的系统所必须的,像bootloader和glibc;但有一些软件包是因系统用途不同而可选的。系统应用可大致分为以三类:

  • 程序开发(需要编译调试程序、C静态代码库)
  • 系统管理及维护(包括软硬件安装、用户管理等)
  • 应用计算(包括网络应用和桌面应用)

另外,同一种应用系统,对于不同用户所需的软件包也不是同的,各种系统以及它们所需的软件包可参考以下表格:

package
安全网关
WEB服务器
开发工作站
桌面应用


web用户
系统用户
开发用户
系统用户
桌面用户
系统用户
bootloader (GRUB)







kernel







sysvinit
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值