您的位置 首页 发布

结构Linux的图形化装置程序

这是一个向用户介绍如何构造Linux的图形化安装程序的专栏。介绍的内容包括:安装环境的定制,图形化启动,本地化支持,分区功能,如何支持reiserfs

这是一个向用户介绍怎么结构Linux的图形化装置程序的专栏。介绍的内容包含:装置环境的定制,图形化发动,本地化支撑,分区功用,怎么支撑reiserfs、raid、lvm,rpm包的装置,定制各种发动装备脚本等等。本文是这个系列文章的第一篇,首要是向您介绍怎么定制体系装置环境,包含生成装置内核,初始Ram盘的生成,最小化装置环境的定制。

自从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总线支撑

(Any)  PCI access mode           PCI硬件的存取方法

EISA support                内核级EISA总线支撑

Support for hot-pluggable devices    支撑热插拔设备

System V IPC                SystemV的进程间通讯机制

(ELF) Kernel core (/proc/kcore) format 内核文件格局为ELF

Kernel support for a.out binaries  内核模块支撑a.out文件

*> Kernel support for ELF binaries   内核支撑ELF格局

Kernel support for MISC binaries   内核模块支撑其他的格局

关于网络支撑和IPC机制的内核支撑是有必要的,由于Linux上的许多程序,即使它没有进行网络通讯,它也用这些方法进行进程间通讯。关于ELF的内核支撑也是有必要的,由于装置程序需求运用初始内存映像(initrd),这种方法需求调用程序完结一些初始化的作业,这就要求内核有必要能够支撑ELF可履行文件格局。其他关于PCI、EISA设备的支撑,是进步装置内核硬件兼容性的必要选项。

Parallel port support      并行端口支撑,要引进并口设备支撑时

Parallel port support     模块化的并行端口支撑

PC-style hardware     PC类型的硬件

IEEE 1284 transfer modes IEEE 1284传送形式支撑(支撑设备自检)

关于并口而言,为了自动检测连接到并口的设备,有必要将IEEE 1284传送形式支撑打入内核。关于不支撑IEEE 1284传送形式的并口设备,体系是无法进行自动检测的。

Plug and Play configuration

Plug and Play support      模块化的即插即用设备支撑

ISA Plug and Play support  模块化的ISA即插即用设备支撑

在2.4.x内核中,对ISA Plug and Play设备的支撑存在一些过错,关于部分设备,将此选项置入内核,设备是无法正常作业的。因而,主张在定制内核时,对此类设备的支撑选用内核模块方法。

Block devices              引进对块设备的支撑

*> RAM disk support         中心支撑RAM磁盘

(4096) Default RAM disk size

Initial RAM disk (initrd) support

初始RAM磁盘的内核支撑。由于装置程序需求设置初始内存镜像以加载设备模块,所以这一选项关于装置程序是有必要的。

其他的选项都作为设备模块存在,在需求时能够放入初始内存镜像中。

Multi-device support (RAID and LVM)

Multiple devices driver support (RAID and LVM)

*>  RAID support           将设备模块md.o打入内核

假如将md.o不置入内核,仅为模块方法,raid分区将无法作为根分区发动体系。这首要是由于raid设备需求在发动之初对硬盘进行读写,以决议raid分区的方位,类型等参数。

Linear (append) mode

RAID-0 (striping) mode

RAID-1 (mirroring) mode

RAID-4/RAID-5 mode

Multipath I/O support

Logical volu

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/fabu/297466.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部