zoukankan      html  css  js  c++  java
  • 如何剖析一个内核子系统

    1.前言

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

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

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

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

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

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

    2.包含的主要部分

    2.1 硬件部分

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

    2.2 framework整体介绍

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

    • 软件框架

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

    • 模块视图

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

    • 领域视图

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

    • 总体流程

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

    2.3 基本组件的属性和API

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

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

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

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

    3. 遵循的重要原则

    • 遵循先硬件后软件,先抽象后具体,结构与流程相结合的原则进行分析
  • 相关阅读:
    Session_End引发的性能问题!
    可能引发性能问题的几个写法,看看你占哪一个.
    优化你的DiscuzNT3.0,让它跑起来(2)发帖回帖篇
    什么是经济学
    生产可能性边界和机会成本
    九宫格的实现(转)
    LAMP的安装和配置
    iPhone 开发过程中的一些小技术的总结(转)
    有效的利用资源边际成本与边际利益
    Dijkstra算法(注:单源最短路径的贪心算法)和数学归纳法<转>
  • 原文地址:https://www.cnblogs.com/smartjourneys/p/6723071.html
Copyright © 2011-2022 走看看