You are here

MBS设计初稿 V0.0.2

Primary tabs

MBS设计初稿 V0.0.2

作者:lanzinc

1.简介:
MBS是Magic Build System的缩写。MBS是一套运行在一个相对完整的Linux系统环境中
的软件系统,这套系统在一个XML主控配置文件的控制下自动完成子配置文件和源代码包的
下载,工具链的构建,打包环境的建立,和编译打包工作。最终得到构建一个发行ISO所需
的RPM包,配合MI能构成一个完整的ISO发行。

2.MBS主要的工作流程:

MBS解析“XML主控文件”根据优先级构建需要下载的文件的队列。
MBS启动若干进程,从队列中取出下载任务,并行进行文件的下载,某个进程完成下载
后到下载完成列表中登记,然后从队列中取出新的下载任务,继续工作。
当建立工具链需要的文件下载完成后,MBS根据“XML主控文件”在宿主系统(host)
上建立编译包的基础环境,工具链。
MBS根据下载任务的完成情况合包的依赖关系构建并动态维护一个可以开始编译打包的
包队列(队列成员包含下一工作需要的资源的索引)。
同时MBS启动若干进程,每个进程独立加载Shell,构建合适的环境,然后从4中队列中
取出任务进行编译打包。完成后到完成列表中登记,退出。
整个过程中, MBS维持一个独立的进程,接受各个进程的信息,并负责记录到log,和
向各个负责和用户交互的前台进程进行交互。
3.MBS的几个主要的子目标

完整的日志系统方便对整个过程进行监视和分析。
前后台分离,前台可以是本地的一个X窗口,也可以是一个文本界面的前台,也可以是
一个web 服务器。前台停止工作不干扰后台的工作。
尽可能使用中文作为交互和日志的工作语言。
有一个进度记录系统,当过程意外停止后能重新启动系统从合适的位置继续该过程。
MBS的部分组成可以作为MGC3.0用户打包和交流的工具。
4.详细设计:
1.“XML主控文件”的设计
2. 子配置文件的设计
子配置文件由spec文件和一个附加配置文件构成
3. 几个主要队列和列表的数据结结构
4. MBS要实现的类:
Class-主控XML文档:
其实例化的对象完成对主控XML文的加载和解析,完成一个磁盘文件到一个抽象对象
的转换。
Class-待下载文件队列:
封装了一个待下载文件的队列,和维护该队列的代码
Class-文件下载器:
Class-完成下载文件的表:
封装了一个完成下载文件的表,和维护该完成下载文件的表的代码
Class-工具链建设者
Class-编译打包进程
Class-完成包列表
Class-需打包包列表
Class-待打包包队列
封装了一个具备打包条件等待编译打包的包的队列,和维护该队列的代码
Class-控制与记录进程
Class-前台接口

评论

比如说:不再像其他的一样,就是太多的文件夹。如果像Windows一样有分区,但不是C、D盘什么的,而是直接中文命名,这个有点像“卷标”。

比如说:不再像其他的一样,就是太多的文件夹。如果像Windows一样有分区,但不是C、D盘什么的,而是直接中文命名,这个有点像“卷标”。