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----->单元测试。