新闻中心

EEPW首页>嵌入式系统>设计应用> 构造Linux的图形化安装程序(1)

构造Linux的图形化安装程序(1)

作者: 时间:2016-10-08 来源:网络 收藏

这是一个向用户介绍如何构造Linux的图形化安装程序的专栏。介绍的内容包括:安装环境的定制,图形化启动,本地化支持,分区功能,如何支持reiserfs、raid、lvm,rpm包的安装,定制各种启动配置脚本等等。本文是这个系列文章的第一篇,主要是向您介绍如何定制系统安装环境,包括生成安装内核,初始Ram盘的生成,最小化安装环境的定制。

本文引用地址://m.amcfsurvey.com/article/201610/305584.htm

自从Caldera推出了第一个Linux系统下的图形化安装程序以来,现在的主流Linux发布大多都使用图形化的安装程序进行系统环境的安装,比如RedHat的安装程序anaconda,Suse的安装程序yast2,Caldera的安装程序lizard,以及Mandrake的安装程序gi。

这些主流厂商的安装程序都有一个共同的特点,就是它们都是先构造一个完备的最小化的Linux运行环境,定制Linux的启动过程,使得系统内核启动后,加载一个系统装载程序,这个程序将定制好的Linux运行环境部分或者全部加载进入内存,然后将控制转移到图形化安装程序。最后再由此程序启动的图形环境(XFree86),设置对应的语言环境,启动对应的系统安装过程。

1 主流安装程序简介

Caldera的安装程序lizard是Linux世界的第一个图形化安装程序,它的全部程序使用c++语言编制,图形化的风格是基于kde和qt的。值得一提的是,caldera在定制图形化安装时,修改了内核,实现了内核的图形化启动,同时其安装程序的硬件检测功能很强大,可以检测到部分非即插即用的isa设备,而且还提供了类似html风格的帮助系统。因为安装程序要求精炼的环境,而此时通用的XWindows窗口管理器是无法满足需求的(太大而且占用资源太多),所以caldera中还提供了一个最小化的窗口管理器lwm。在caldera安装系统包的过程中,您还可以玩吃豆子游戏,这也是lizard的一大创意。

Redhat的安装程序anaconda可能是大家最熟悉的安装程序之一。它的全部程序都是由Python完成。Python是一种面向对象的脚本语言,您可以在http://www.python.org获得它的相关资料。Redhat使用Python Gtk作为图形界面的开发工具。在您解开anaconda的源码包之后,您会发现一个anaconda的文件,这是程序执行的主文件。它提供了一个最小化的slang库以支持文本方式的安装。Redhat的安装程序最大的特点就是很稳健,支持的驱动程序较多,对硬件的支持很强(这说明Redhat安装内核定制得非常好,而且得到了相当多的厂商支持)。但是Redhat安装程序的功能不是特别强,比如对于reiserfs、lvm不提供支持,不支持中文安装(7.2可能会推出中文版)。也有很多厂商的安装程序是稍微修改了RedHat源码构成的,比如VALinux、中科红旗等。

对于Mandrake的安装程序gi,它的全部程序都是使用Perl编制,您可以从Mandrake的CVS服务器上下载最新的安装程序。Perl是一种功能强大的脚本语言,可以非常方便的处理Linux上的各种配置脚本,它的图形界面使用Perl-GTK编制。Mandrake的安装程序是第一种提供中文安装的主流发布。它的安装程序的特点是新,支持的功能相当多,包括配置复杂的文件系统,支持无线通讯设备,多种打印机支持等等。

Redhat和Mandrake的安装程序都是由脚本构成的,它们虽然速度稍慢,但是其构成的安装程序一般都比较稳定,而且便于移植到其他平台上。Redhat的整个安装环境是保存在一个stage2.img的文件里。您可用命令:

mount -o loop stage2.img /mnt/tmp

将其挂接到指定的目录下,察看Redhat安装程序的结构。Mandrake的安装环境保存在mdkinst的目录下。

2 安装环境的构成

一个图形化的安装环境实际上就是一个最小化的Linux运行环境。一般由如下几部分构成:Linux系统安装内核,Linux系统的初始Ram磁盘,系统运行所需的一些shell命令和程序所必需的系统库,初始化程序,系统运行时必须的外部命令,XFree86子系统,字体集和本地化的环境设置,系统的桌面风格和贴图,键盘映射,设备配置数据库,系统安装程序等部分。

系统内核vmlinuz存在系统的启动映像之中,在系统启动时调入,然后Linux调入初始Ram磁盘,由此Ram磁盘上的程序加载运行安装程序的第一阶段加载程序。这是个可执行程序,它一般执行加载硬盘驱动模块,将磁盘上的整个安装环境调入内存,并作为根分区挂接。

这时就有一个在内存中的最小化的Linux系统了,一段映像程序结束运行,释放自己所占的内存,并将控制转移到真正的系统安装程序。这时系统安装程序开始启动XFree86子系统,设置正确的本地化环境,包括本地化环境变量,字体集,正确的键盘映射等,这时就允许用户进行交互,从而在用户的干预下,完成整个系统的安装过程。

整个安装过程的一般流程:

2.1 定制安装内核

一个好的安装程序内核是和安装程序紧密相关的,它必须是完备的和精简的。完备的内核是指:如果安装程序要对某方面的功能进行支持的话,必须在内核中也提供相应的支持。精简的内核是指:对于安装程序不需要的功能,内核一定不要支持,而且能作为模块存在的,就一定要把它设置为模块。这样定制出来的内核很小,保证了定制的内核以及必须的硬盘驱动模块能放入启动映像中。

例如,对于2.4.3内核一组选项是:(在下面的一组选项中没有注明的选项,可以在定制安装程序的内核时省略)

Loadable module support         可加载模块支持

Enable loadable module support   将可加载模块支持打入内核

Kernel module loader        将内核模块加载器打入内核

Processor type and features 内核支持的处理器类型

(386) Processor family     选择386兼容方式编译内核

Toshiba Laptop support    东芝笔记本支持作为模块

(off) High Memory Support    对大于2GB的内存不提供支持

选择386兼容方式是为了保证安装程序具有良好的兼容性,在某种程度上来说,速度的快慢并不是衡量安装程序的指标。一个好的安装程序,应该具有高稳定性和高兼容性。

General setup                一般选项

Networking support           内核级网络支持

PCI support               内核级PCI总线支持


上一页 1 2 下一页

关键词:

评论


相关推荐

技术专区

关闭