OpenJDK 源码目录详解

OpenJDK 源码目录详解

OpenJDK 源码目录详解

下面我就介绍下每个目录:

agent--->主要是Serviceability Agent的实现。

make--->用来build出HotSpot的各种配置文件。

src------>HotSpot VM的源代码。

        |

        |

        cpu---->CPU相关代码。

        os----->操作系统相关的代码。

        os_cpu--->操作系统 + CPU组合的相关代码。

        share ---->平台无关的共通代码。

                |

                |

             tools---->相关工具

                    |

                    |

                    hsdis---->反汇编插件

                    IdealGraphVisualizer----->将Server编译器的中间代码可视化工 具 

                    launcher---->启动程序 "java"

                    LogCompilation-->将-XX:LogCompilation输出的日志

                                                 整理成更容易阅读的格式的工具。

                    ProjectCreator--->生成Visual Studio的project文件的工具。

               vm------->HotSpot VM 的核心代码

                    |

                    |

                    adlc--->平台描述文件

                    asm--->汇编器接口。

                    c1------>Client编译器。

                    ci------->动态编译器的公共服务/接口。

                    classfile--->类文件的处理(包括类加载和系统符号表符)

·                   code---->动态生成的代码管理。

                    compiler-->编译器接口。

                    gc_implementation-->GC的实现

                            |

                            |

                           concurrentMarkSweep--->Concurrent Mark Sweep GC的实现

                            g1-->Garbage-First GC的实现(不使用老的分带GC框架)

                            parallelScavenge-->ParallelScavenge GC的实现

                            parNew---->ParNew GC实现。

                            shared---->GC的共通实现。

                     gc_interface -----> GC的接口

                     interpreter --->解释器,包括模板解释器。

                     libadt  ----->一些抽象数据结构。

                     memory---->内存管理相关(老的分代式GC框架也在这里面)。

                    oops---->HotSpot VM的对象系统的实现。

                    opto------>Server编译器。

                    prims------>HotSpot VM 的对外接口,包括部分标准库的

                                     native部分和JVMTI的实现。

                    runtime---->运行时支持库(包括线程管理,编译器调度,锁,反                                         射等)。

                    services---->主要是用来支持JMX之类的管理功能的接口。

                    shark------->基于LLVM的JIT编译器。

                    utilities----->一些基本的工具类。

test----->单元测试。