如何剖析一个内核子系统

1.前言

本文档主要讲述如何去剖析一个内核子系统的常规方法。

一般来讲比较全面的分析一个内核子系统,大概包含如下几个部分:

1) 介绍硬件相关,包含硬件的整体框图,以及硬件框图各个组件的介绍

2)framework的整体介绍,包括软件框架、模块视图、领域模型、总体流程;

3)基本组件的属性和API介绍;

4) 分析主要流程,主要包含各个组件的初始化流程以及顶层组件的调用流程

2.包含的主要部分

2.1 硬件部分

硬件部分的工作机制很大程度上能够折射软件的工作机制,至少为分析软件框架给出参考。在硬件部分一般给出硬件的框图架构,并对框图中相关的实体和接口给出解释,同时对硬件的工作机制加以说明

2.2 framework整体介绍

这部分可以通过相关的资料收集完成,包括搜索、内核文档、其它人撰写的博客等等一切可以利用的有用资源,力求展现内核子系统的整体面貌

  • 软件框架

给出软件的框图架构,并对组成软件框图架构的实体文件及它们之间的关联进行说明,也可以联系硬件框架给出相关的解释

  • 模块视图

是软件框架的具体化,将软件框架中的各个组成部分替换成组件,并对每个组件的功能进行说明.模块一般与文件对应

  • 领域视图

也就是类图,描述各个组件之间的关系,包括:关联、继承、组合、聚合等

  • 总体流程

主要介绍各个组件整体的初始化顺序

2.3 基本组件的属性和API

这部分往往是对上一节模块视图和领域视图的详细介绍

  • 介绍各个组件(模块或类)的属性和重要API,此处可以只给出属性和重要API大概的理解和说明,详细的说明可以在主要流程部分加以细化

2.4 分析主要流程和策略机制

  • 对于主要流程应当首先给出抽象概括性的说明,之后再详细说明调用流程
  • 可以先给出框架部分的初始化流程,再给出组件的相关流程
  • 顶层组件的调用流程会贯穿所有的组件,通过抓住顶层组件的调用流程就可以找到各个组件的调用流程
  • 组件的主要流程涵盖两部分:各个组件的初始化流程+各个组件的调用流程,所有的流程不会出其右
  • 在分析流程的过程中加深对各个组件属性及API的理解,并补全对组件属性和API的说明
  • 在介绍组件调用流程的时候不是对每个组件都统一着墨,而是只以当前介绍的组件为主,对其它组件的行为可以只做抽象描述,等到介绍该组件时再详细分析

3. 遵循的重要原则

  • 遵循先硬件后软件,先抽象后具体,结构与流程相结合的原则进行分析

 

posted @ 2017-04-17 15:16  jasonactions  阅读(342)  评论(0编辑  收藏  举报