zoukankan      html  css  js  c++  java
  • HotSpot项目结构

    之前已经介绍了在Ubuntu 16.04上编译OpenJDK8的源代码调试HotSpot源代码。这一章将介绍HotSpot项目的目录结构。

    HotSpot目录下主要由agent、make、src和test这4个子目录构成。其中agent目录下包含了Serviceability Agent的客户端实现;make目录下包含了用于编译HotSpot的各种配置文件;src目录是最重要的一个目录,本书讲解的所有源代码都包含在这个目录下;test目录下包含HotSpot相关的一些单元测试用例。

    src目录的结构如下图所示。

    src目录下包含了HotSpot项目的主体源代码,主要由cpu、os、os_cpu与share这4个子目录构成。下面简单介绍一下这4个子目录,如下:

    • cpu目录:此目录下包含一些依赖具体处理器架构的代码,现在主流的处理器架构主要有sparc、x86和zero,其中x86又最为常见,笔者的电脑cpu也是x86架构,所以在在涉及到相关源代码实现时,只会讲解x86目录下的源代码实现。

    • os目录:此目录下包含一些依赖操作系统的代码,主要的操作系统有基于linux内核的操作系统、基于unix的操作系统(posix)、windows和solaris。笔者的电脑是基于linux内核的Ubuntu操作系统,所以在涉及到相关源代码实现时,只会讲解linux目录下的源代码实现。

    • os_cpu目录:此目录下包含一些依赖操作系统和处理器架构的代码,如linux_x86目录。linux_x86目录下包含的就是基于linux内核的操作系统和x86处理器架构相关的代码,也是笔者本书要讲解的源代码实现。

    • share目录:此目录下包含了独立于操作系统和处理器架构的代码,尤其是vm子目录,这个子目录中包含的内容比较多,HotSpot主要的一些功能模块都包含在这个子目录下。下表介绍了vm目录下一些重要子目录的功能。

     

    目录

    描述

    adlc

    平台描述文件

    asm

    汇编器

    c1

    C1编译器,即client编译器

    ci

    动态编译器

    classfile

    Class文件解析和类的链接等

    code

    机器码生成

    compiler

    调用动态编译器的接口

    Opto

    C2编译器,即server编译器

    gc_interface

    GC接口

    gc_implementation

    垃圾收集器的具体实现

    interpreter

    解释器

    libadt

    抽象数据结构

    memory

    内存管理

    oops

    JVM内部对象表示

    prims

    HotSpot对外接口

    runtime

    运行时

    services

    JMX接口

    utilizes

    内部工具类和公共函数

    相关文章的链接如下:

    1、在Ubuntu 16.04上编译OpenJDK8的源代码 

    2、调试HotSpot源代码

    3、HotSpot项目结构 

    4、HotSpot的启动过程 

    5、HotSpot二分模型 (1)

    6、HotSpot的类模型(2)  

    7、HotSpot的类模型(3) 

    关注公众号,有HotSpot源码剖析系列文章!  

  • 相关阅读:
    Linux下 find 命令用法
    MVC3 ViewBage 输出的值 被编码
    C#枚举数值与名称的转换实例分享
    关于Js的那些面试题
    Javascript Event事件中IE与标准DOM的区别
    原生js选项卡
    js之事件冒泡和事件捕获详细介绍
    js事件的三个阶段
    js对象中关于this关键字的作用
    css的相对定位与绝对定位
  • 原文地址:https://www.cnblogs.com/mazhimazhi/p/13222664.html
Copyright © 2011-2022 走看看