linux安装分析anaconda

linux安装分析anaconda

ID:8907048

大小:60.00 KB

页数:9页

时间:2018-04-11

linux安装分析anaconda_第1页
linux安装分析anaconda_第2页
linux安装分析anaconda_第3页
linux安装分析anaconda_第4页
linux安装分析anaconda_第5页
资源描述:

《linux安装分析anaconda》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、级别:初级王柏生(baisheng@ios.cn),中科院软件所软件工程师2005年1月01日本文作者结合自己在实践中的心得体会,针对redhat9.0的安装程序anaconda作了粗略的分析。引言Linux的安装过程可以分为两个阶段,第一个阶段就是加载内核,创建供后续安装过程使用的系统环境,第二阶段就是加载系统安装程序,执行具体的安装过程。对于第一阶段,有不少资料作了比较详细的介绍,而对于第二阶段,也就是具体的安装过程,却鲜有资料介绍,本文作者结合自己在实践中的心得体会,针对redhat9.0的安装程序anaconda作了粗略的分析。为了抓住主线

2、,文中所列代码片断基本都经过格式调整,并裁减掉了不影响理解的细节,读者可参照源代码。另外,anaconda是用python语言写的,所以读者最好具备一些python语言的基础和面向对象的基本知识,如果有过图形界面程序的设计的经验,则无论是对图形安装模式还是字符安装模式安装过程(本文只讨论图形安装模式)的理解都会有很大帮助。1概述系统启动,加载启动映像,在内存中建立了linux系统环境后,解析安装程序映像文件,将安装程序载入内存,执行主执行程序anaconda,该程序是具体安装程序的一个口,负责启动具体的安转过程,完成linux系统的安装。我们首先看

3、一下安装映像文件。进入redhat9.0第一张系统盘的redhat/base目录,其中stage2.img就是当安装介质为CD-ROM时的安装映像文件。我们采用如下命令解析该映像文件(注意:命令中的挂载点/mnt/stage2要根据读者的实际情况修改):mount-oloop/mnt/cdrom/Redhat/base/stage2.img/mnt/stage2解析后,我们可以看到,安装程序的主执行体anaconda在/mnt/stag2/usr/bin目录下,其它安装脚本模块均在/mnt/stage2/usr/lib/anaconda目录下,今后

4、的行文中,除非是anaconda主执行体,其余均指/mnt/stage2/usr/lib/anaconda目录下的模块,并将该目录简称为anaconda主目录。我们先看一下anaconda主目录的结构:·installclasses子目录中的各个模块定义了在安装过程中用户可选择的安装类型。redhat9.0下包含了四个文件workstation.py,server.py,custom.py和personal_desktop.py。其中,workstation.py描述了工作站安装类型,server.py描述了服务器安装类型,custom.py描述了

5、用户自定义安装类型,personal_desktop.py描述了个人桌面安装类型。每个安装类型描述文件根据相应安装类型的特点,分别对安装步骤、分区策略以及安装包的取舍给出了不同的方案。·Iw子目录下包含所有安装图形界面类所在的模块,每个图形界面对应一个类,负责相应安装步骤图形界面的具体外观显示及与用户的交互,(可能)调用anaconda主目录下的相关安装行为模块完成具体的安装操作。·textw子目录和iw子目录含义是一致的,只是包含的是字符安装模式的前端字符用户界面类所在的模块,每个字符用户界面对应一个类,负责与用户的交互,字符界面的采用了pyth

6、on的snack库。·如果说用户界面类是处理安装程序外观的话,则anaconda主目录下的各python模块则执行每个安装界面背后具体的安装行为,包括那些无用户界面安装步骤的安装操作。Python的许多内置模块在目录/mnt/stage2/usr/lib/pythonXX下,其中XX指版本号。另外可参考redhat的anaconda源码包,所有的相关工具都在源码包里,读者在理解了安装过程的原理后,可修改源码,重新编译,然后搭建测试环境进行测试。2总体分析图形安装界面采用python+Gtk开发,各个模块(类)之间的逻辑关系可用下图表示:图1图形安装

7、模式下模块(类)逻辑关系图安装程序逻辑上可划分为三个层次,我们先看最主要的一层:调度中心。可以说,Dispatcher类和InstallControlWindow类控制了整个安装程序的运转,理解这两个核心类的功能及其与用户界面类和安装行为类的逻辑关系,就基本上理解了整个安装程序。Dispatcher类在anaconda主目录下的dispatch.py模块中,负责整个安装流程的控制,在安装过程中,某些安装步骤有的需要前置安装操作,有的又需要后置安装操作,而某些安装操作则是没有用户界面的,我们统称这些安装操作为无用户界面的安装操作,那么,这些没有用户界

8、面的安装操作由谁来调度运行呢?答案就是Dispatcher。InstallControlWindow类在anaconda主

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。