个人随笔
目录
openjdk源码目录结构
2020-05-28 23:53:00

1.整个目录结构

1.1 openjdk9

tree -L 2 -d

  1. ├── build
  2. └── linux-x86_64-normal-server-slowdebug
  3. ├── common
  4. ├── autoconf
  5. ├── bin
  6. ├── conf
  7. ├── doc
  8. ├── nb_native
  9. └── src
  10. ├── corba Common Object Request Broker Architecture,通用对象请求代理架构
  11. 是基于“对象-服务”机制设计,与 JavaBeanCOM 等是同种范畴。
  12. ├── make
  13. └── src
  14. ├── hotspot
  15. ├── make
  16. ├── src
  17. └── test
  18. ├── jaxp 全称 Java API for XML Processing,处理 XML Java API,是 Java XML
  19. 程序设计的应用程序接口之一,它提供解析和验证XML文档的能力。
  20. ├── nbproject
  21. ├── src
  22. └── test
  23. ├── jaxws 全称 Java API for Web ServicesJAX-WS 允许开发者选择 RPC-oriented
  24. (面向 RPC 或者 message-oriented(消息通信,erlang 使用的就是消息通信,
  25. 不过 Java 内存模型是内存共享)来实现自己的web services。通过 Web Services
  26. 提供的环境,可以实现 Java 与其他编程语言的交互(事实上就是 thrift 所做的,
  27. 任何一种语言都可以通过 Web Services 实现与其他语言的通信,客户端用一种语言,
  28. 服务器端可以用其他语言)。
  29. ├── nbproject
  30. └── src
  31. ├── jdk Java Development Kit
  32. ├── make
  33. ├── src
  34. └── test
  35. ├── langtools Java 语言工具。包含 javacjavap 等实用程序的源码。
  36. ├── make
  37. ├── src
  38. └── test
  39. ├── make
  40. ├── common
  41. ├── devkit
  42. ├── idea
  43. ├── scripts
  44. ├── templates
  45. └── test
  46. ├── nashorn Nashorn 项目的目的是基于 Java JVM 上实现一个轻量级高性能的 JavaScript
  47. 运行环境。基于 JSR-223 协议,Java 程序员可在 Java 程序中嵌入 JavaScript 代码。
  48. 该项目使用了 JSR-229 里描述的新连接机制(从 Java 7 起开始使用的连接机制):
  49. 新的字节码(invokedynamic)以及新的基于方法句柄(method handle)的连接机制。
  50. 通过接口注入(interface injection)在运行时修改类也是 JSR-229 里的内容。
  51. ├── bin
  52. ├── buildtools
  53. ├── docs
  54. ├── exclude
  55. ├── make
  56. ├── samples
  57. ├── src
  58. └── test
  59. └── test
  60. ├── failure_handler
  61. ├── fmw
  62. ├── jtreg-ext
  63. ├── lib
  64. ├── lib-test
  65. └── make

1.2 openjdk8

  1. .
  2. ├── common
  3. ├── autoconf
  4. ├── bin
  5. ├── nb_native
  6. └── src
  7. ├── corba
  8. ├── make
  9. └── src
  10. ├── hotspot
  11. ├── agent
  12. ├── make
  13. ├── src
  14. └── test
  15. ├── jaxp
  16. ├── make
  17. ├── nbproject
  18. └── src
  19. ├── jaxws
  20. ├── make
  21. ├── nbproject
  22. └── src
  23. ├── jdk
  24. ├── make
  25. ├── src
  26. ├── aix
  27. ├── bsd
  28. ├── linux
  29. ├── macosx
  30. ├── share
  31. ├── back
  32. ├── bin
  33. ├── classes
  34. ├── com
  35. ├── oracle
  36. └── sun
  37. ├── java
  38. ├── applet
  39. ├── awt
  40. ├── beans
  41. ├── io
  42. ├── lang
  43. ├── math
  44. ├── net
  45. ├── nio
  46. ├── rmi
  47. ├── security
  48. ├── sql
  49. ├── text
  50. ├── time
  51. └── util
  52. ├── javax
  53. ├── accessibility
  54. ├── crypto
  55. ├── imageio
  56. ├── management
  57. ├── naming
  58. ├── net
  59. ├── print
  60. ├── rmi
  61. ├── script
  62. ├── security
  63. ├── smartcardio
  64. ├── sound
  65. ├── sql
  66. ├── swing
  67. └── xml
  68. ├── jdk
  69. ├── internal
  70. └── net
  71. ├── org
  72. ├── ietf
  73. └── jcp
  74. └── sun
  75. ├── applet
  76. ├── audio
  77. ├── awt
  78. ├── dc
  79. ├── font
  80. ├── instrument
  81. ├── invoke
  82. ├── java2d
  83. ├── jvmstat
  84. ├── launcher
  85. ├── management
  86. ├── misc
  87. ├── net
  88. ├── nio
  89. ├── print
  90. ├── reflect
  91. ├── rmi
  92. ├── security
  93. ├── swing
  94. ├── text
  95. ├── tools
  96. ├── tracing
  97. └── util
  98. ├── demo
  99. ├── doc
  100. ├── instrument
  101. ├── javavm
  102. ├── lib
  103. ├── native
  104. ├── com
  105. └── sun
  106. ├── common
  107. ├── java
  108. ├── io
  109. ├── lang
  110. ├── net
  111. ├── nio
  112. ├── security
  113. └── util
  114. └── sun
  115. ├── awt
  116. ├── font
  117. ├── java2d
  118. ├── management
  119. ├── misc
  120. ├── nio
  121. ├── reflect
  122. ├── security
  123. └── tracing
  124. ├── npt
  125. ├── sample
  126. └── transport
  127. ├── solaris
  128. └── windows
  129. └── test
  130. ├── langtools
  131. ├── make
  132. ├── src
  133. └── test
  134. ├── make
  135. ├── common
  136. ├── devkit
  137. ├── scripts
  138. └── templates
  139. ├── nashorn
  140. ├── bin
  141. ├── buildtools
  142. ├── docs
  143. ├── exclude
  144. ├── make
  145. ├── samples
  146. ├── src
  147. ├── test
  148. └── tools
  149. └── test
  150. └── projects
  151. classes 目录里的是 Java 的实现,native 目录里的是 C++ 的实现,两部分基本对应。这两个目录里的结构与 java 的包也是对应。
  152. classes/
  153. ├── com
  154. ├── oracle
  155. └── sun
  156. ├── java
  157. ├── applet
  158. ├── awt
  159. ├── beans
  160. ├── io
  161. ├── lang
  162. ├── math
  163. ├── net
  164. ├── nio
  165. ├── rmi
  166. ├── security
  167. ├── sql
  168. ├── text
  169. ├── time
  170. └── util
  171. ├── javax
  172. ├── accessibility
  173. ├── crypto
  174. ├── imageio
  175. ├── management
  176. ├── naming
  177. ├── net
  178. ├── print
  179. ├── rmi
  180. ├── script
  181. ├── security
  182. ├── smartcardio
  183. ├── sound
  184. ├── sql
  185. ├── swing
  186. └── xml
  187. ├── jdk
  188. ├── internal
  189. └── net
  190. ├── org
  191. ├── ietf
  192. └── jcp
  193. └── sun
  194. ├── applet
  195. ├── audio
  196. ├── awt
  197. ├── dc
  198. ├── font
  199. ├── instrument
  200. ├── invoke
  201. ├── java2d
  202. ├── jvmstat
  203. ├── launcher
  204. ├── management
  205. ├── misc
  206. ├── net
  207. ├── nio
  208. ├── print
  209. ├── reflect
  210. ├── rmi
  211. ├── security
  212. ├── swing
  213. ├── text
  214. ├── tools
  215. ├── tracing
  216. └── util
  217. native/
  218. ├── com
  219. └── sun
  220. ├── common
  221. ├── java
  222. ├── io
  223. ├── lang
  224. ├── net
  225. ├── nio
  226. ├── security
  227. └── util
  228. └── sun
  229. ├── awt
  230. ├── font
  231. ├── java2d
  232. ├── management
  233. ├── misc
  234. ├── nio
  235. ├── reflect
  236. ├── security
  237. └── tracing

2.hotspot目录结构

2.1 openjdk9

tree -L 2 -d hotspot

  1. hotspot/
  2. ├── make
  3. ├── copy
  4. ├── gensrc
  5. ├── ide
  6. ├── lib
  7. ├── mapfiles
  8. ├── src
  9. ├── symbols
  10. └── test
  11. ├── src
  12. ├── cpu
  13. ├── jdk.aot
  14. ├── jdk.hotspot.agent
  15. ├── jdk.internal.vm.ci
  16. ├── jdk.internal.vm.compiler
  17. ├── os
  18. ├── os_cpu
  19. └── share
  20. └── test
  21. ├── compiler
  22. ├── gc
  23. ├── native
  24. ├── native_sanity
  25. ├── runtime
  26. ├── sanity
  27. ├── serviceability
  28. ├── testlibrary
  29. └── testlibrary_tests
  30. tree -L 3 -d hotspot/src
  31. src
  32. ├── cpu
  33. ├── aarch64
  34. └── vm
  35. ├── arm
  36. └── vm
  37. ├── ppc
  38. └── vm
  39. ├── s390
  40. └── vm
  41. ├── sparc
  42. └── vm
  43. ├── x86
  44. └── vm
  45. └── zero
  46. └── vm
  47. ├── jdk.aot
  48. ├── share
  49. └── classes
  50. └── unix
  51. └── native
  52. ├── jdk.hotspot.agent
  53. ├── doc
  54. ├── linux
  55. └── native
  56. ├── macosx
  57. └── native
  58. ├── scripts
  59. ├── share
  60. ├── classes
  61. └── native
  62. ├── solaris
  63. └── native
  64. ├── test
  65. └── libproc
  66. └── windows
  67. └── native
  68. ├── jdk.internal.vm.ci
  69. └── share
  70. └── classes
  71. ├── jdk.internal.vm.compiler
  72. └── share
  73. └── classes
  74. ├── os
  75. ├── aix
  76. └── vm
  77. ├── bsd
  78. ├── dtrace
  79. ├── launcher
  80. └── vm
  81. ├── linux
  82. └── vm
  83. ├── posix
  84. ├── dtrace
  85. └── vm
  86. ├── solaris
  87. ├── dtrace
  88. └── vm
  89. └── windows
  90. └── vm
  91. ├── os_cpu
  92. ├── aix_ppc
  93. └── vm
  94. ├── bsd_x86
  95. └── vm
  96. ├── bsd_zero
  97. └── vm
  98. ├── linux_aarch64
  99. └── vm
  100. ├── linux_arm
  101. └── vm
  102. ├── linux_ppc
  103. └── vm
  104. ├── linux_s390
  105. └── vm
  106. ├── linux_sparc
  107. └── vm
  108. ├── linux_x86
  109. └── vm
  110. ├── linux_zero
  111. └── vm
  112. ├── solaris_sparc
  113. └── vm
  114. ├── solaris_x86
  115. └── vm
  116. └── windows_x86
  117. └── vm
  118. └── share
  119. ├── tools
  120. ├── hsdis
  121. ├── IdealGraphVisualizer
  122. └── LogCompilation
  123. └── vm
  124. ├── adlc
  125. ├── aot
  126. ├── asm
  127. ├── c1
  128. ├── ci
  129. ├── classfile
  130. ├── code
  131. ├── compiler
  132. ├── gc
  133. ├── interpreter
  134. ├── jvmci
  135. ├── libadt
  136. ├── logging
  137. ├── memory
  138. ├── oops
  139. ├── opto
  140. ├── precompiled
  141. ├── prims
  142. ├── runtime
  143. ├── services
  144. ├── shark
  145. ├── trace
  146. └── utilities

2.2 openjdk8

  1. hotspot/
  2. ├── agent Serviceability Agent的实现
  3. ├── doc
  4. ├── make
  5. ├── src
  6. └── test
  7. ├── make 用来buildHotSpot的各种配置文件
  8. ├── aix
  9. ├── bsd
  10. ├── linux
  11. ├── solaris
  12. ├── templates
  13. └── windows
  14. ├── src HotSpot VM的源代码
  15. ├── cpu CPU相关代码(汇编器、模板解释器、ad文件、部分runtime函数在这里实现)
  16. ├── os 操作系相关代码
  17. ├── os_cpu 操作系统+CPU的组合相关的代码
  18. └── share 平台无关的公共代码
  19. └── test
  20. ├── compiler
  21. ├── gc
  22. ├── gc_implementation
  23. ├── runtime
  24. ├── sanity
  25. ├── serviceability
  26. ├── stress
  27. ├── testlibrary
  28. └── testlibrary_tests
  29. tree -L 3 -d src
  30. src/
  31. ├── cpu
  32. ├── ppc
  33. └── vm
  34. ├── sparc
  35. └── vm
  36. ├── x86
  37. └── vm
  38. └── zero
  39. └── vm
  40. ├── os
  41. ├── aix
  42. └── vm
  43. ├── bsd
  44. ├── dtrace
  45. ├── launcher
  46. └── vm
  47. ├── linux
  48. └── vm
  49. ├── posix
  50. └── vm
  51. ├── solaris
  52. ├── dtrace
  53. └── vm
  54. └── windows
  55. └── vm
  56. ├── os_cpu
  57. ├── aix_ppc
  58. └── vm
  59. ├── bsd_x86
  60. └── vm
  61. ├── bsd_zero
  62. └── vm
  63. ├── linux_ppc
  64. └── vm
  65. ├── linux_sparc
  66. └── vm
  67. ├── linux_x86
  68. └── vm
  69. ├── linux_zero
  70. └── vm
  71. ├── solaris_sparc
  72. └── vm
  73. ├── solaris_x86
  74. └── vm
  75. └── windows_x86
  76. └── vm
  77. └── share
  78. ├── tools
  79. ├── hsdis 反汇编插件
  80. ├── IdealGraphVisualizer server编译器的中间代码可视化的工具
  81. ├── LogCompilation 将-XX:+LogCompilation输出的日志(hotspot.log)整理成更容易阅读的格式的工具
  82. └── ProjectCreator 生成Visual Studioproject文件的工具
  83. └── vm HotSpot VM的核心代码
  84. ├── adlc 平台描述文件(上面的cpuos_cpu里的*.ad文件)的编译器
  85. ├── asm 汇编器接口
  86. ├── c1 client编译器(又称“C1”)
  87. ├── ci 动态编译器的公共服务/从动态编译器到VM的接口
  88. ├── classfile 类文件的处理(包括类加载和系统符号表等)
  89. ├── code 动态生成的代码的管理
  90. ├── compiler VM调用动态编译器的接口
  91. ├── gc_implementation GC的实现
  92. ├── concurrentMarkSweep
  93. ├── g1
  94. ├── parallelScavenge
  95. ├── parNew
  96. └── shared GC的通用实现
  97. ├── gc_interface GC接口
  98. ├── interpreter 解释器,包括“模板解释器”(官方版在用)和“C++解释器”(官方版不在用)
  99. ├── libadt 一些抽象数据结构
  100. ├── memory 内存管理相关(老的分代式GC框架也在这里)
  101. ├── oops HotSpot VM的对象系统的实现
  102. ├── opto server编译器(又称“C2”或“Opto”)
  103. ├── precompiled
  104. ├── prims HotSpot VM的对外接口,包括部分标准库的native部分和JVMTI实现
  105. ├── runtime 运行时支持库(包括线程管理、编译器调度、锁、反射等)
  106. ├── services 主要是用来支持JMX之类的管理功能的接口
  107. ├── shark 基于LLVMJIT编译器(官方版里没有使用)
  108. ├── trace
  109. └── utilities 一些基本的工具类
 490

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2