Linux平台自动软件发布系统的设计和实现
| 摘要 | 第1-5页 |
| Abstract | 第5-12页 |
| 第1章 绪论 | 第12-17页 |
| ·研究背景 | 第12-14页 |
| ·ZSDT系统介绍 | 第12-14页 |
| ·相关研究的现状 | 第14-15页 |
| ·本项研究中面临的几个主要问题 | 第15-16页 |
| ·主要的工作 | 第16页 |
| ·文章的组织结构 | 第16-17页 |
| 第2章 系统架构分析 | 第17-22页 |
| ·设计中面对的几个主要问题 | 第17页 |
| ·设计方案的选择 | 第17-19页 |
| ·直接转换软件包格式 | 第17-18页 |
| ·记录用户操作 | 第18页 |
| ·软件安装行为抽象 | 第18-19页 |
| ·安装行为的抽象 | 第19-20页 |
| ·模块的划分 | 第20-21页 |
| ·截获系统调用模块(libsys.so) | 第20-21页 |
| ·分析打包模块(zsdtapp) | 第21页 |
| ·发布代理模块(zsdtinstaller) | 第21页 |
| ·小结 | 第21-22页 |
| 第3章 打包器中系统调用的截获 | 第22-36页 |
| ·打包器的结构 | 第22-23页 |
| ·Linux系统调用原理 | 第23-26页 |
| ·GLibc中系统调用的实现 | 第24-26页 |
| ·系统调用的截获 | 第26-28页 |
| ·LD_PRELOAD环境变量 | 第27-28页 |
| ·软件安装涉及到的系统调用分析 | 第28-30页 |
| ·创建文件的操作 | 第28-29页 |
| ·创建目录的操作 | 第29页 |
| ·创建符号链接的操作 | 第29页 |
| ·创建硬链接的操作 | 第29页 |
| ·文件/目录/链接的改名操作 | 第29页 |
| ·文件/目录/链接的删除操作 | 第29-30页 |
| ·文件的修改操作 | 第30页 |
| ·几种特殊的系统调用变体 | 第30-33页 |
| ·以文件描述符为基准目录的“xxxat”系列函数 | 第30-31页 |
| ·64位版本的系统调用变体 | 第31-33页 |
| ·系统调用分析总结 | 第33页 |
| ·系统调用截获的处理过程 | 第33-35页 |
| ·本章小结 | 第35-36页 |
| 第4章 文件系统变化的监控和打包 | 第36-49页 |
| ·inotify系统简介 | 第37-39页 |
| ·inotify的用户接口 | 第38-39页 |
| ·监控模块的设计和实现 | 第39-41页 |
| ·inotify的初始化 | 第39-40页 |
| ·监控目录的添加 | 第40-41页 |
| ·监控信息的读取 | 第41页 |
| ·日志模块的设计和实现 | 第41-47页 |
| ·日志文件的格式 | 第42-43页 |
| ·原始日志文件和打包器专用日志文件 | 第43-44页 |
| ·日志记录数据的内部存储格式 | 第44-45页 |
| ·日志记录数据的操作 | 第45-46页 |
| ·针对目录改名/移动的特殊操作 | 第46-47页 |
| ·日志的保存 | 第47页 |
| ·打包模块的设计和实现 | 第47-48页 |
| ·本章小结 | 第48-49页 |
| 第5章 软件发布程序的设计 | 第49-59页 |
| ·发布程序架构 | 第49-52页 |
| ·控制命令 | 第52-53页 |
| ·软件的下载 | 第53-55页 |
| ·下载进程的启动 | 第53页 |
| ·下载依赖的软件包 | 第53-54页 |
| ·下载失败的处理 | 第54-55页 |
| ·软件包的部署 | 第55-58页 |
| ·部署任务的执行步骤 | 第56-57页 |
| ·定时部署功能 | 第57-58页 |
| ·部署任务的取消 | 第58页 |
| ·软件包的回滚 | 第58页 |
| ·本章小结 | 第58-59页 |
| 第6章 总结与展望 | 第59-61页 |
| ·工作总结 | 第59页 |
| ·工作展望 | 第59-61页 |
| 参考文献 | 第61-64页 |
| 攻读硕士学位期间主要的研究成果 | 第64-65页 |
| 致谢 | 第65页 |