System.nanoTimeメソッドの実装について
ネイティブメソッドなので、ネイティブ側のCコードを追う必要があります。
- Windows OS
- 利用可能であればWin32 APIのQueryPerformCounterを使用しています。そうでなければ、System.currentTimeMillisメソッドと同様のGetSystemTimeAsFileTimeを使用します。
- Linux
- 利用可能であれば、clock_gettimeで第1引数にCLOCK_MONOTONICを渡しています。そうでなければ、gettimeofdayを使用します。
- Solaris
- gethrtimeを使用します。
InetAddress.isReachableメソッドの実装について
IPv4の場合、Inet4AddressImplクラスのisReachableメソッドの中で、nativeメソッドのisReachable0が呼び出されます。
- Windows OS
- WindowsのICMP/RAWソケットの実装があまりに信頼性がないためポート7へのTCPで実現しています。
- Solaris
- RAWソケットの作成にroot権限がないと失敗するので、そのときはポート7へのTCPで実現しています。